Skip to content

ci(release): git-history-driven release flow (git-cliff) with approved release pr - #11

Merged
using-system merged 3 commits into
mainfrom
features/release-bootstrap
Aug 22, 2026
Merged

ci(release): git-history-driven release flow (git-cliff) with approved release pr#11
using-system merged 3 commits into
mainfrom
features/release-bootstrap

Conversation

@using-system

@using-system using-system commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Third and final shape of the release pipeline, after the two dead ends (stale tag-action; release-please's version manifest):

The version's only memory is git itself — tags + Conventional Commits, nothing else:

  1. On every push to main, git-cliff (orhun/git-cliff-action v4.8.0, the official action of the actively-maintained reference tool) computes the bumped version from git history and regenerates CHANGELOG.md.
  2. If a release is due, peter-evans/create-pull-request v8.1.1 opens/updates the chore(release): x.y.z PR carrying the bumps (apm.yml version + oddyssey-mcp==x.y.z pin, server pyproject.toml, uv.lock, CHANGELOG.md) with the git-cliff notes as body. Nothing pushes to main — you approve and merge.
  3. Merging that PR triggers tag + GitHub Release (git-cliff notes), then build → PyPI publish (trusted publishing, isolated job).

Also: workflow_dispatch bootstrap (build+publish the current version, to seed oddyssey-mcp 0.1.0), cliff.toml = the canonical git-cliff --init config (behavior config, not version state). The whole computation (--bump, context version, changelog) was validated locally against this repo's real history: next version without tags = 0.1.0, matching the current pins.

After merge: dispatch the bootstrap (publishes 0.1.0 — requires the PyPI pending publisher: oddyssey-mcp / using-system/oddyssey / release.yml / env pypi), then seed the baseline tag v0.1.0. The next feat:/fix: merge produces the first automatic release PR.

Caveat (unchanged): PRs created with GITHUB_TOKEN don't trigger pull_request workflows, so CI won't run on release PRs (no required checks today).

🤖 Generated with Claude Code

using-system and others added 2 commits August 22, 2026 15:34
workflow_dispatch builds and publishes the current version to PyPI
without any bump - used once to seed oddyssey-mcp 0.1.0, which the
apm.yml pin already references.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mathieudutour/github-tag-action is unmaintained (last release two
years ago, node20); googleapis/release-please-action v5 (node24,
actively maintained) replaces it. Nothing pushes to main: release-
please maintains a chore release PR with the version bumps (apm.yml
version + uvx pin, server pyproject via x-release-please-version
annotations) and CHANGELOG.md; merging that PR creates the tag and the
GitHub release, which triggers build + PyPI publish. The manifest
seeds 0.1.0, so no baseline tag is needed. The workflow_dispatch
bootstrap path stays for seeding PyPI.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@using-system using-system changed the title ci(release): add manual bootstrap publish path ci(release): release-please flow with human-approved release pr + pypi bootstrap Aug 22, 2026
The version's only memory is git itself: git-cliff (official
orhun/git-cliff-action, actively maintained, node-free composite)
computes the bump from tags + conventional commits and regenerates
CHANGELOG.md; peter-evans/create-pull-request maintains the
chore(release) PR a human approves - nothing pushes to main. Merging
that PR tags the commit and publishes the GitHub release with the
git-cliff notes, then build + PyPI publish run. The release-please
manifest/config files and version annotations are gone; cliff.toml is
the canonical git-cliff --init config.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@using-system using-system changed the title ci(release): release-please flow with human-approved release pr + pypi bootstrap ci(release): git-history-driven release flow (git-cliff) with approved release pr Aug 22, 2026
@using-system
using-system merged commit c513062 into main Aug 22, 2026
@github-actions github-actions Bot mentioned this pull request Aug 22, 2026
@using-system
using-system deleted the features/release-bootstrap branch August 22, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant