Skip to content

ci: a breaking change bumps the minor while releases stay alpha - #523

Closed
FBumann wants to merge 2 commits into
ci/publish-to-pypifrom
ci/leave-the-alpha-stream
Closed

FBumann wants to merge 2 commits into
ci/publish-to-pypifrom
ci/leave-the-alpha-stream

Conversation

@FBumann

@FBumann FBumann commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Prompt: I want to publish to pypi, but not yet an official release. keep it alpha for now!!

Earlier in the same conversation, and what set the rest of the scope: "We want to stay pre 1.0.0 / And bumb minors for breaking changes"

Note

The following content was generated by AI.

What this changes

The alpha stream stays. versioning: prerelease, prerelease and prerelease-type are untouched, the auto-merge step is untouched, and every release is still an alpha that pip will not resolve without --prerelease. Publishing those alphas to PyPI is the base PR, #522.

What changes is the breaking marker. pr-title.yml refused a ! and a BREAKING CHANGE: footer to keep the base version pinned at 0.0.0. The guard is gone, so a marker moves the base and the counter carries on:

a commit that lands version goes
feat:, fix:, and every hidden type 0.0.1-alpha.96 → 0.0.1-alpha.97
feat!:, or a BREAKING CHANGE: footer 0.0.1-alpha.96 → 0.1.0-alpha.96

With the guard go the sparse checkout of the manifest and the PR-body read that only the footer check needed. The conventional-subject check and the 72-character warning are untouched.

Why the manifest moves to 0.0.1-alpha.96

Because at 0.0.0 the marker would have done nothing. versioning: prerelease absorbs a bump into the counter whenever the digits below it are already zero, which RELEASING.md has written down and #251 in the sibling repo found the hard way. At 0.0.0-alpha.96 a minor bump is absorbed, so feat!: would have produced 0.0.0-alpha.97 and announced nothing. At 0.0.1 the patch is not zero, so the minor bump bites.

The next release is therefore 0.0.1-alpha.97, not 0.0.0-alpha.97. 0.0.1a97 sorts above 0.0.0a96, so nothing goes backwards.

What was verified, and what could not be
  • pr-title.yml parses as YAML; prettier --check clean on every file in the diff.
  • pytest -q -n auto: 1280 passed, 6 skipped. The 10 failures in tests/test_docs.py are the same 10 that fail on origin/main in this container, for a docs plugin it lacks. Not run: pixi run ci, the strict docs build, reuse lint, zizmor.
  • Unverifiable here: that release-please computes 0.1.0-alpha.96 from a marker. Nothing runs it until a merge to main, so the first release PR after a feat!: is the proof. The behaviour is what this repo's own RELEASING.md records, not something measured in this PR.

Swept with it. AGENTS.md, CONTRIBUTING.md, RELEASING.md and the PR template all said the marker is refused; they now say it moves the minor. RELEASING.md's "Leaving the alpha stream" list loses step 4, the one this PR performs.

The first pass on this branch was wrong and is reverted in its second commit: it dropped the prerelease keys and left the stream, which the prompt above corrects. The branch name ci/leave-the-alpha-stream is a leftover misnomer — the net diff keeps the stream. Say the word and I will move it to a branch that reads right.

Departure from a Part 2 default. The diff's topmost row is .github/, which the table types ci; that is what it is typed. AGENTS.md and CONTRIBUTING.md in the same diff would be chore on their own.

Base branch. Stacked on ci/publish-to-pypi (#522), which edits the same RELEASING.md sections.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FmFn3b7j5QifYazTFufExd

Releases leave the `0.0.0-alpha.N` stream. The config already carried
`bump-minor-pre-major` and `bump-patch-for-minor-pre-major`, which the three
prerelease keys made inert; dropping those keys is what turns the pair on. So a
breaking marker gives a minor, a feature and a fix give a patch, and nothing
reaches 1.0.0 without removing two more keys.

The manifest names `0.0.0` as the version to bump from, so the next release PR
cuts `0.0.1`, or `0.1.0` if a breaking marker lands first.

The base-version guard in `pr-title.yml` refused `!` because it would have
moved the base version off the stream. There is no stream to move off, so the
guard goes, and with it the manifest checkout and the PR-body read it needed.
release-please's auto-merge step goes too: it was fenced as temporary and only
ever fired for a prerelease, so from here it would have done nothing on every
release.

AGENTS.md, CONTRIBUTING.md, RELEASING.md, the README, the installation page and
the PR template all said a breaking marker is refused. They now say what it
does.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FmFn3b7j5QifYazTFufExd
@read-the-docs-community

read-the-docs-community Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 math-spec | 🛠️ Build #34621307 | 📁 Comparing 936ba26 against latest (bc1d9d4)

  🔍 Preview build  

2 files changed
± contributing/index.html
± howto/installation/index.html

@FBumann
FBumann added this pull request to stack #524 September 17, 2026 20:03
The previous commit on this branch left the alpha stream, which is not what was
asked. It is reverted here: `versioning: prerelease`, `prerelease` and
`prerelease-type` stay, the auto-merge step stays, and every release is still
`0.0.1-alpha.N`.

What remains is the breaking marker. `pr-title.yml` refused a `!` and a
`BREAKING CHANGE:` footer to keep the base pinned at `0.0.0`; the guard goes, so
a marker moves the base to `0.1.0` and the counter carries on. With it goes the
manifest checkout and the PR-body read that only the footer check needed.

The manifest moves from `0.0.0-alpha.96` to `0.0.1-alpha.96`, because at a zero
patch `versioning: prerelease` absorbs a minor bump into the counter — a marker
on `0.0.0-alpha.96` would have changed nothing. At `0.0.1` it bites.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FmFn3b7j5QifYazTFufExd
@FBumann FBumann changed the title ci: a breaking change bumps the minor, and the version stays below 1.0.0 ci: a breaking change bumps the minor while releases stay alpha Sep 17, 2026
@FBumann FBumann added this to the First Pypi release milestone Sep 20, 2026
@FBumann FBumann mentioned this pull request Sep 25, 2026
14 of 31 tasks
@FBumann FBumann closed this Sep 25, 2026
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.

2 participants