Skip to main content

CI release flow

Normative expectations for bump-and-release in A2C-governed software repositories. Recorded as ADR-0009 (supersedes ADR-0004).

Requirement

Every A2C-governed software repository must implement the release semantics in ADR-0009.

Core expectations

Development integration

Development CI runs on feature branches, develop, and merge requests. develop is optional for humans and is not a special CI line — it is treated like any feature branch.

When Development CI is green, untagged commits may ff-merge to master (code_clean).

Release qualification

Releases use a dedicated release/X.Y.Z branch forked from master:

  1. python scripts/bump_release.py on the release branch
  2. Green Development CI on release/X.Y.Z
  3. Push tag vX.Y.Z
  4. Green Release CI on the tag (released)
  5. Ff-merge release/X.Y.Z to master

Version and changelog

TopicRule
VersioningSemantic Versioning 2.0.0
Changelog formatKeep a Changelog 1.1.0
DevelopmentCurate ## [Unreleased] as release-relevant work lands
Releasebump_release.py finalizes ## [X.Y.Z] - YYYY-MM-DD on release/X.Y.Z
TagsAnnotated vX.Y.Z after Development CI on the release branch

Standard maintainer sequences

Normal development:

Release:

See release-pipeline.md for project-specific job lists.

Required CI jobs

ProfileWhenPurpose
Development CIfeature, develop, release/*, MRQuality gate → code_clean
Release CItags v*.*.*Verify, build, publish → released
Master CI (optional)masterLight, non-gating audit/reporting

Version source of truth

Document the primary version file in docs/release-pipeline.md:

  • Docs / workflow repos — root VERSION
  • Python packages__version__ in the installable module

verify_release_version.py must read the same source bump_release.py updates.

AI expectations

SituationBehavior
BootstrapAdd release scripts and CI profiles from a2c-workflow templates
Edit CI / scriptsPreserve ADR-0009 states and branch semantics
Prepare releaseBranch release/X.Y.Z from master; gate tag on Development CI; gate master on Release CI
TagsFollow tag-move policy in ADR-0009; do not bypass verify_release_version.py