Skip to content

Title the release the way the previous ones were titled - #2102

Merged
stonebig merged 1 commit into
winpython:masterfrom
stonebig:release-title-keeps-its-shape
Sep 6, 2026
Merged

stonebig merged 1 commit into
winpython:masterfrom
stonebig:release-title-keeps-its-shape

Conversation

@stonebig

@stonebig stonebig commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

The workflow titled its draft WinPython 2026-04b1, where every release for years has read WinPython 2026-03 b3 of August 8th 2026. The tag is what download URLs are built on and it does not change; the title is what people read on the releases page, and there is no reason for it to look new.

The shape, taken from the releases themselves

Of the last eighteen titles, seventeen have no comma before the year, and the level is separated from the cycle by a space — the tag runs them together, the title does not. Six of those real titles are reproduced letter for letter in the tests:

WinPython 2026-03 of August 22nd 2026
WinPython 2026-03 b3 of August 8th 2026
WinPython 2026-02 b2 of May 1st 2026
WinPython 2026-01 final of March 10th 2026
WinPython 2025-05 rc of December 22nd 2025
WinPython 2026-01 b3 of February 24th 2026

Today's dispatch would produce WinPython 2026-04 b1 of September 6th 2026.

One thing deliberately not reproduced: a few older titles read 2026-02 of May 17th with a double space, from concatenating an empty level. That is normalised, and there is a test for it.

Where it is built

In cycle_config.py, not in the job's shell. Ordinal dates are miserable to write in bash and impossible to test there; in Python the date is injectable, so the six titles above are asserted against pinned dates, and the 11th/12th/13th exceptions get their own cases.

The date is the day the draft is opened — the only day a build knows about. A cycle published much later can still have its title edited by hand, and that edit survives: a re-run adding a missing flavor leaves an existing release's title alone.

Testing

58 in the module, 206 in the full suite. Mutation-checked: putting the hardcoded --title "WinPython $TAG" back fails exactly the test that says the title comes from the script.

Note for the draft already open from run 34038479683: it was created before this, so it keeps the title WinPython 2026-04b1. Editing it by hand or deleting the draft and re-running are both fine — a re-run will not retitle it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MBk5k7WdpPvx4SUFyEk3U3

The workflow titled a draft "WinPython 2026-04b1", where every release
for years has read "WinPython 2026-03 b3 of August 8th 2026". The tag is
what URLs are built on and it does not change; the title is what people
read on the releases page, and there is no reason for it to look new.

So the title is now cycle, then the level after a space -- the tag runs
them together, the title does not -- then the date with no comma, which
is how seventeen of the last eighteen titles read. Six of those titles
are reproduced letter for letter in the tests.

Built in cycle_config.py rather than in the job's shell: ordinal dates
are miserable to write in bash and impossible to test there. The date is
the day the draft is opened, the only day a build knows about, and a
cycle published much later can still have its title edited by hand -- a
re-run leaves an existing release's title alone, so that edit survives.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MBk5k7WdpPvx4SUFyEk3U3
@stonebig
stonebig merged commit a8d294c into winpython:master Sep 6, 2026
2 checks passed
@stonebig
stonebig deleted the release-title-keeps-its-shape branch September 6, 2026 14:43
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