[ AxiomCore · Documentation ]
Ship changes
Follow a contract change from a local edit through checks, semantic diff, review and release to the consumers that upgrade to it.
This section shows how to ship a contract change safely: check it, see exactly
what changed, get it reviewed, release an immutable version and move consumers
to it. A contract is the .axiom artifact that describes your API. A
consumer is any client, SDK or Acore UI app built against it.
Publishing a contract and deploying an application are separate operations. Releasing a contract version to Axiom Cloud does not start, deploy or update a backend service.
The change flow
Diagram source
flowchart TD
A[Edit source] --> B[Check and test]
B --> C[Semantic diff]
C --> D[Contract pull request]
D --> E[Release a version]
E --> F[Cloud verification, tests and policy]
F --> G[latest channel]
G --> H[Consumers upgrade]- Edit the
.acoresource, or re-extract the contract from your existing backend. - Check and test locally with
axiom check,axiom testandaxiom security check. - Compare the new contract with the last accepted one. The semantic diff classifies each change as breaking, risky or compatible.
- Review the pair of releases in a contract pull request when your team needs approval.
- Release an immutable version with
axiom release. Axiom Cloud verifies and signs it, tests it against a managed sandbox and applies the release policy. - Upgrade consumers by pinning the new version, resolving a new lock and re-running their tests.
| Step | Where it runs | Guide |
|---|---|---|
| Check, test and diff | Local Axiom CLI | Testing, CI checks |
| Review a contract change | Axiom Cloud (Alpha) | Contract pull requests |
| Release and upgrade | Axiom CLI and Axiom Cloud (Alpha) | Releases and upgrades |
| Assess a rollout | Your team | Production readiness |
| Package a server for a target | Local Axiom CLI | Release a backend |
| Promote database migrations | Local Axiom CLI | Migrations and persistence |
Example: a semantic diff
Removing an endpoint between two versions of a backend contract is a breaking change. Compare the two sources:
axiom diff v1.acore v2.acore### 🚨 Breaking Changes
- Removed endpoint: **`ping`**
### ⚙️ Configuration
- ⚙️ Updated `project` config: `version` changed to `1.1.0`The same classification appears in a contract pull request, where reviewers can discuss each change before the release reaches consumers.
Before you promote
Check the exact target, artifact, authentication, permissions, consumer behavior, observability and rollback limits for the release. Local success does not certify another platform or environment. Check the support matrix for each path you rely on.