[ AxiomCore · Documentation ]
Releases and upgrades
Release an immutable contract version, upgrade its consumers, release application artifacts and roll back without rewriting history.
Use this guide to release a new contract version to Axiom Cloud, move consumers to it, release application artifacts and roll back. Every release is immutable: once a version exists, its bytes never change. You fix or roll back by choosing another version.
Contract releases and Cloud channels are Alpha and need an Axiom Cloud account and a linked project. See Workspaces and projects.
Release a contract
-
Build the contract to a file you can inspect:
Terminal axiom build axiom.acore --out backend.axiom -
Run the checks that apply to the project, such as
axiom test,axiom security checkandaxiom domain validate. -
Review the semantic diff from the previous accepted version.
-
Release the artifact with an explicit version:
Terminal axiom release backend.axiom --version 1.2.0You can also build and release in one step with
axiom build --release --version 1.2.0. -
When your team requires approval, open a contract pull request between the previous release and this one.
Axiom Cloud then verifies, signs and tests the release and decides whether it
can become latest. See Releases and environments.
How axiom release picks the project and version
| Input | Behavior |
|---|---|
| Artifact | axiom release reads ./backend.axiom by default. A plain axiom build writes under .axiom/contracts/, so pass --out or the artifact path. |
| Project | --project (ID or slug), else the project linked to the current directory. An interactive terminal can select or create one. A non-interactive run fails and asks for axiom project link or --project. |
| Version | --version, else the version declared in the contract. With neither, the command fails and asks for --version. |
| Version differs from the contract | The CLI updates the version in axiom.acore in the current directory and rebuilds before uploading. Without that file, the command fails. |
| Version already used | An interactive terminal suggests the next free version. A non-interactive or CI run fails and prints the suggestion. |
| Same bytes released again | Treated as an idempotent retry of the existing release. |
Use a semantic version such as 1.2.0. When the CLI rewrites a version, it
accepts only letters, digits, ., _, - and +, and axiom pull
references accept only semantic versions. Each release run also links the
current directory to the project it resolved.
Upgrade consumers
- Change the contract or package source to the exact candidate version.
- Resolve a new lock, for example
axiom contract resolveoraxiom packages resolve. - Diff the locked artifacts with
axiom contract difforaxiom packages diff, and inspect the result. - Run the existing frontend or Acore UI consumer tests.
- Commit the source change and the lock together.
To fetch a released contract directly, pass a reference in the form
organization/project[/version], where organization is the workspace slug:
axiom pull acme/payments-api/1.2.0Leave out the version to pull the release that latest points to. Until a
release has been activated on latest, there is nothing to pull without a
version.
Release an application
Build an .axiomapp once for each target, inspect each artifact, and combine
them with axiom package only after each target is validated. Application
artifacts do not include Apple or Google signing, store submission or
physical-device certification.
Roll back
Roll back by selecting a previously reviewed immutable release, or by
rebuilding from a reviewed source and lock pair. In Axiom Cloud, an owner moves
the latest channel back to an earlier eligible release. For server bundles,
check the pair with axiom server rollback-check first. See
Release a backend.
Never rewrite an existing version. That would separate the audit evidence from the bytes it approved.
Upgrade a legacy backend contract
Experimental Managed execution is Experimental.
Before you switch a legacy backend to managed Acore, keep the old source, public contracts, private plans, locks, SDK build outputs and a compatible host, so you can return to them.
-
Create a migrated copy. The original source is not changed:
Terminal axiom migrate OLD.acore --output NEW.acoreA supported finite legacy action rewrite can keep endpoint identities and public codecs while introducing checked managed execution. A computed rewrite that is not supported keeps its legacy form. Migration never invents an equivalent managed body.
-
Build both versions, then compare public contracts and private behavior:
Terminal axiom server diff old.axiom old.server.json new.axiom new.server.jsonThe report separates a verified representation change from a behavior change. New validation, failure exposure, authority, batch or cache policy, or stream semantics need consumer review.
-
Rebuild and inspect the public contract, prepare its private resources, then run the application and provider test suites for each enabled target. Generated mobile tests and mounted web tests are separate evidence.
Other behavior to expect after the upgrade:
- Development reload keeps the last good application after an invalid edit. A compatible replacement rechecks artifacts and ownership before it transfers eligible in-flight submissions. Incompatible contracts, descriptors or session identities reject the transfer.
- Rollback uses the retained immutable inputs. It does not reuse stale grants or claim that an unknown write was rolled back.
- Application telemetry fields can be classified. A telemetry policy is private, and changing it never adds user values to metric labels.
- Scenario environment files are test inputs bound to the scenario. They cannot enable credential expiry in a deployed server.
- Use matching Axiom CLI and language server versions so the editor and compiler agree.
The browser playground includes task and inventory database examples. Its store is a checked preview, not production database preparation. See Browser preview.
Next steps
Contract pull requests
Open, review, discuss and complete a review of two immutable contract releases in Axiom Cloud, without a Git provider.
Production readiness
Check contract provenance, consumers, security, data, operations and rollback before you promote a release, and review Security Mode changes.