You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement CI release-event detection and the release process for main.
Depends on Phase 2.A (#508) — version scheme baseline and compute-version composite action must exist first.
Scope: release trigger + vnext→main merge process + changelog approach + docs. No publish workflows — those live in Phase 3 (#509), which this phase partially unblocks.
Release flows
1. overture-schema major/minor bump → public PyPI release
The only flow that produces a public release.
Human edits <major>.<minor> in packages/overture-schema/pyproject.toml and opens a PR to vnext.
PR merges to vnext normally.
Maintainer opens a vnext→main PR (regular merge, not squash — preserves vnext history).
On merge: p2-release-trigger detects the <major>/<minor> bump → creates GH Release at v<major>.<minor>.0.
GH Release event fires p3-pypi-publish (Phase 3) → overture-schema publishes to public PyPI at <major>.<minor>.0.
Important
The GH Release created here is the only trigger for PyPI publish. Nothing else causes a public release.
2. Supplemental package major/minor bump → CA release only
For packages other than overture-schema (e.g. overture-schema-cli, theme packages).
Human edits <major>.<minor> in the relevant pyproject.toml and opens a PR directly to main.
PR merges normally.
On merge: p2-release-trigger detects the bump → fires p3-supplemental-ca-release (Phase 3) → publishes that package to CA release repo at <major>.<minor>.0.
Never published to PyPI.
3. Normal patch commits (any package) → auto-versioned CA builds
No human version decision needed. <patch> is computed by CI.
Push to vnext: affected packages publish to CA dev repo as <major>.<minor>.<last-patch>+dev.<N> via p3-dev-builds-ca (Phase 3).
Push to main (no bump): affected packages publish to CA release repo as <major>.<minor>.<next-patch> via p3-main-ca-release (Phase 3).
Note
Phase 3 owns the actual publish steps for this flow. Phase 2.B only needs to document it and ensure p2-release-trigger correctly skips non-bump pushes.
Tasks
p2-release-trigger
CI workflow on main push that inspects packages/*/pyproject.toml for <major>/<minor> changes. On overture-schema bump: creates GH Release at v<major>.<minor>.0 with assembled release notes. On supplemental package bump: fires p3-supplemental-ca-release. On no bump: no-op (patch builds are Phase 3's concern).
Important
Release notes assembly approach is TBD — see p2-changelog-fragments below.
p2-vnext-merge-process
Document and configure the human-driven release process (flow 1 above). Ensure p1-pr-compat-check and p1-post-merge-rebase skip via head.ref == 'vnext'. No title convention or label needed.
p2-changelog-fragments
Warning
Approach is undecided — must be evaluated at kickoff before p2-release-trigger can be completed.
Options to evaluate:
Per-PR fragment files (changelogs/fragments/<pr-id>.yaml) assembled at release time (antsibull-changelog pattern)
Auto-generated from PR titles/descriptions
Manual release notes authored at release time
p2-docs
Update CONTRIBUTING.md with version bump guidance and release process (flows 1–3 above).
Add docs/versioning.md covering: version scheme, bump rules, what CI does with <patch>, and the full release process.
Note
CONTRIBUTING.md versioning section is partially complete from Phase 2.A. Needs bump guidance and the full release process flow added.
Goal
Implement CI release-event detection and the release process for
main.Depends on Phase 2.A (#508) — version scheme baseline and
compute-versioncomposite action must exist first.Scope: release trigger +
vnext→mainmerge process + changelog approach + docs. No publish workflows — those live in Phase 3 (#509), which this phase partially unblocks.Release flows
1.
overture-schemamajor/minor bump → public PyPI releaseThe only flow that produces a public release.
<major>.<minor>inpackages/overture-schema/pyproject.tomland opens a PR tovnext.vnextnormally.vnext→mainPR (regular merge, not squash — preservesvnexthistory).p2-release-triggerdetects the<major>/<minor>bump → creates GH Release atv<major>.<minor>.0.p3-pypi-publish(Phase 3) →overture-schemapublishes to public PyPI at<major>.<minor>.0.Important
The GH Release created here is the only trigger for PyPI publish. Nothing else causes a public release.
2. Supplemental package major/minor bump → CA release only
For packages other than
overture-schema(e.g.overture-schema-cli, theme packages).<major>.<minor>in the relevantpyproject.tomland opens a PR directly tomain.p2-release-triggerdetects the bump → firesp3-supplemental-ca-release(Phase 3) → publishes that package to CA release repo at<major>.<minor>.0.3. Normal patch commits (any package) → auto-versioned CA builds
No human version decision needed.
<patch>is computed by CI.vnext: affected packages publish to CA dev repo as<major>.<minor>.<last-patch>+dev.<N>viap3-dev-builds-ca(Phase 3).main(no bump): affected packages publish to CA release repo as<major>.<minor>.<next-patch>viap3-main-ca-release(Phase 3).Note
Phase 3 owns the actual publish steps for this flow. Phase 2.B only needs to document it and ensure
p2-release-triggercorrectly skips non-bump pushes.Tasks
p2-release-triggerCI workflow on
mainpush that inspectspackages/*/pyproject.tomlfor<major>/<minor>changes. Onoverture-schemabump: creates GH Release atv<major>.<minor>.0with assembled release notes. On supplemental package bump: firesp3-supplemental-ca-release. On no bump: no-op (patch builds are Phase 3's concern).Important
Release notes assembly approach is TBD — see
p2-changelog-fragmentsbelow.p2-vnext-merge-processDocument and configure the human-driven release process (flow 1 above). Ensure
p1-pr-compat-checkandp1-post-merge-rebaseskip viahead.ref == 'vnext'. No title convention or label needed.p2-changelog-fragmentsWarning
Approach is undecided — must be evaluated at kickoff before
p2-release-triggercan be completed.Options to evaluate:
changelogs/fragments/<pr-id>.yaml) assembled at release time (antsibull-changelogpattern)p2-docsCONTRIBUTING.mdwith version bump guidance and release process (flows 1–3 above).docs/versioning.mdcovering: version scheme, bump rules, what CI does with<patch>, and the full release process.Note
CONTRIBUTING.mdversioning section is partially complete from Phase 2.A. Needs bump guidance and the full release process flow added.Definition of done
p2-release-triggerworkflow live, detects bumps, creates GH Release foroverture-schema, routes supplemental packages correctlyvnext→mainrelease PR process documented + Phase 1 workflows updated to skip onhead.ref == 'vnext'docs/versioning.mdcreated,CONTRIBUTING.mdupdated