Ship changes

[ 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

How a contract change moves from your editor to its consumers
How a contract change moves from your editor to its consumers
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]
  1. Edit the .acore source, or re-extract the contract from your existing backend.
  2. Check and test locally with axiom check, axiom test and axiom security check.
  3. Compare the new contract with the last accepted one. The semantic diff classifies each change as breaking, risky or compatible.
  4. Review the pair of releases in a contract pull request when your team needs approval.
  5. Release an immutable version with axiom release. Axiom Cloud verifies and signs it, tests it against a managed sandbox and applies the release policy.
  6. Upgrade consumers by pinning the new version, resolving a new lock and re-running their tests.
StepWhere it runsGuide
Check, test and diffLocal Axiom CLITesting, CI checks
Review a contract changeAxiom Cloud (Alpha)Contract pull requests
Release and upgradeAxiom CLI and Axiom Cloud (Alpha)Releases and upgrades
Assess a rolloutYour teamProduction readiness
Package a server for a targetLocal Axiom CLIRelease a backend
Promote database migrationsLocal Axiom CLIMigrations and persistence

Example: a semantic diff

Removing an endpoint between two versions of a backend contract is a breaking change. Compare the two sources:

Terminal
axiom diff v1.acore v2.acore
Output
### 🚨 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.

Next steps