Skip to content

Get started / 5. Release it

5. Release it ​

A release is an immutable, SemVer-tagged revision of main. Serving endpoints, MCP servers, exports and the assistant all read releases, so consumers only see what you have reviewed.

Merge the change request ​

Open Change requests › #n (/models/:id/change-requests/:n). The checks run when the request opens and again on Re-run checks:

CheckBlocks the merge?
Validation — names, unknown entities and columns, join keys, ambiguous join paths, non-additive sums, unresolved or cyclic metric references, time metrics without a time dimension. Fan and chasm traps are warnings.Yes, on errors
Breaking changes — objects in the latest release that the request removes or redefines, with their consumers (serving query log of the last 30 days, exports).Yes, until acknowledged
Data quality — failing rules behind changed metrics.No (warning)
Governance — changes to certified metrics need an approval from someone who can govern.Yes

Then:

  1. Approve (:review). The required number of approvals is a model setting (default 1). An author can't approve their own request unless they can govern.
  2. Merge (:merge). It is a three-way merge per object. If a branch moved since the checks ran, the merge answers 409 Modeling.ChecksOutdated: re-run the checks. Two concurrent merges can't both win (409 Modeling.BranchMoved).
  3. Publish release (POST …/models/{id}/releases). Keel suggests the version from the diff: removed or redefined metrics, dimensions or measures → major; additions → minor; documentation only → patch. Add notes.

After the release ​

  • Lineage is rebuilt, glossary term suggestions refresh, and the default access-policy suggestion is proposed.
  • A rollback publishes an earlier release's revision as a new release (:rollback).
  • A release always compiles the same query to byte-identical SQL.

Serve it ​

Anchor Keel is a working product name: one platform, a shared core and licensed modules (Keel Semantic, Keel Migrate). Documentation built from the repository — facts are derived from code, ADRs and the decisions log.