Skip to content

merge(ci): adopt the writing-release lifecycle - #1

Merged
LittleCoinCoin merged 6 commits into
mainfrom
ci/release-lifecycle
Oct 30, 2026
Merged

LittleCoinCoin merged 6 commits into
mainfrom
ci/release-lifecycle

Conversation

@LittleCoinCoin

Copy link
Copy Markdown
Member

Adopts the writing-release v2.0.0 lifecycle: releases of plugins/murmuration are cut only by CI after a merge to main, never by hand.

What changes

  • .cz.toml: commitizen 4.19.2 config. The commit vocabulary decided in __reports__/release_lifecycle/commit_vocabulary_v0.md; only feat (minor), fix and perf (patch) and breaking changes (minor while 0.x) release; tag v$version; the version lives in plugin.json.
  • guard-binaries.yml (name kept): runs on pull requests, pushes to main and dispatch. New jobs changes (gates the build matrix), commits (cz check plus a path check that research types never touch the plugin), preview (prints what a merge would release), and release (fails closed, checks the manifest against the new tip, atomic push of bump commit and tag, then the GitHub Release; re-runs repair a missing Release).
  • pr-title.yml: checks the PR title, which becomes the merge subject.
  • CONTRIBUTING.md: commit messages, integration lanes, versioning, branches. The root README names it.
  • Roadmap amendment A2 for windows_install and the vocabulary report.

Expected after merge: the push run releases nothing (only docs, ci, build and rdm commits since v0.2.0). It may commit a build(bin) rebuild.

Roadmap: __roadmap__/windows_install/next/next/next/release_lifecycle.md. Reviewed by an adversarial verifier; the release job was exercised against a local bare origin.

🤖 Generated with Claude Code

LittleCoinCoin and others added 6 commits October 30, 2026 15:34
…-session split

0.3.0 ships tested on Windows in CI only and is the first release cut by
CI under writing-release v2.0.0. A2 adds release_lifecycle beside install,
rewrites release around the CI cut, moves the live Windows check to a new
live_session leaf, and corrects pre-conditions that still named the
blocked if_probe and shell_gaps nodes.

Gap note: __reports__/windows_install/A2_lifecycle_and_live_split.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measures the 850 subjects on origin/main 3afb2da and proposes the types,
id grammar and schema_pattern that release_lifecycle's .cz.toml needs.
Decision support for sitting 1; nothing is decided here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eliott approved A2, adopted the commit vocabulary report as recommended
(D4 as a CI path check, bump_message keeping [skip ci]), and said yes to
the v0.2.0 tag and the PR merge settings. The tag is on origin at
1f164ae; the settings read back as applied. A2's nodes move to planned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One file holds the decided vocabulary (report D1-D7), the version file and
what releases, so CI's `cz check` and `cz bump` read the same rules. Only
feat, fix, perf and a breaking change bump; the research types, docs,
refactor, merge and rdm never do. The scm provider reads the last v* tag,
and the bump rewrites the version line of plugin.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The workflow now runs on pull requests and on every push to main, with a
`changes` job gating the binary build, a `commits` job (cz check plus the
D4 path check), a `preview` of the version a merge would cut, and a
`release` job that fails closed, checks the manifest against the tip,
bumps, pushes branch and tag atomically and creates the GitHub Release.
pr-title.yml checks the title that becomes the merge subject.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A fresh session, or an agent, should derive the lifecycle from one file:
the types and what they release, which lane a change takes, that CI cuts
every release and plugin.json's version is never hand-edited, and how
branches and PR titles become merge commits. The README layout table now
names the new workflow and the guide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@LittleCoinCoin
LittleCoinCoin merged commit 396a4cc into main Oct 30, 2026
14 checks passed
@LittleCoinCoin
LittleCoinCoin deleted the ci/release-lifecycle branch October 30, 2026 11:00
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