ModernCIPush. Green. Merged.

Versioning

ModernCI is pre-1.0 (release 0.4.28): configuration and APIs may still change between releases, and each change ships in a numbered release. Two contracts hold today. Event payloads carry a version field v, which a removed or changed field bumps. And a result made by an older engine or configuration is re-tested, never trusted silently. v1 policy: in design.

Releases

  • Today: the supervisor hot-swaps a new release without stopping running checks, and rolls back if the new one isn't healthy. live
  • Signed releases: a release signed with Ed25519 and verified against a key compiled into the binary, and release versions that become <series>.<commit count>, set by the release, never edited by hand, and installs update themselves from a signed release channel or stay pinned to a version. preview PR #40

What a version change means for results

Every result is stamped with the engine and config that made it. A stamp that isn't current is re-tested on its own. Which results stay valid across engine versions is declared in code, not assumed. live

API and event contracts

  • One operation table serves REST (/api/<op>), MCP (/mcp) and modernci call <op>, and a test keeps the three equal. live
  • watch events carry v. Adding a field keeps v; removing or changing one bumps it. live
  • Versioned JSON contracts for health, moves and log are in preview (PR #124).
  • v1 policy: in design. The stable, versioned API v1 and its deprecation policy are being designed, and this page will link the policy when it is published. Until then, treat every operation as subject to change before 1.0.

See also: facts.