Visitar URL original
Put the release level in the changelog name by stonebig · Pull Request #2101 · winpython/winpython · GitHub
Skip to content

Put the release level in the changelog name - #2101

Merged
stonebig merged 1 commit into
winpython:masterfrom
stonebig:changelog-name-carries-release-level
Sep 6, 2026
Merged

stonebig merged 1 commit into
winpython:masterfrom
stonebig:changelog-name-carries-release-level

Conversation

@stonebig

@stonebig stonebig commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

A beta and the final it becomes share a winpyver2, so 2026-04 b1's changelog was written as WinPythonslim-64bit-3.15.0.5.md — the name the final release wants. changelogs/ would describe a beta under the final's name until the final build overwrote it.

The name now carries the level: WinPythonslim-64bit-3.15.0.5b1.md. That is a PEP 440 version, and since #2100 it sorts where find_previous_version needs it to.

The consequence, which is the point

Each release now compares against the release immediately before it. The final diffs against its own b1 rather than reaching back to the previous cycle:

final 3.15.0.5 compares against -> 3.15.0.5b1
History: "The following changes were made ... since version 3.15.0.5b1slim"

This is a change for finals as well as betas, and it is deliberate: an automatic changelog is more logical when it describes the step from the last published thing, and it makes the b1-to-final delta visible instead of folding it into the cycle total.

What needed changing

Four places build or read that name; three needed the level.

  • .github/actions/publish-winpython/action.yml — new release_level input, defaulting to "".
  • .github/workflows/build_winpython_cycle.yml — release_level is a config job output again, and is passed to the action.
  • winpython/build_winpython.py — the local build path had the same gap, for both the changelog and its _History companion. Both come from one changelog_version now, and that same value goes to compare_package_indexes; otherwise the diff would look for a file the build no longer writes.
  • wppm/diff.py — nothing. load_version_markdown takes the version it is given, and find_previous_version returns levelled ones already.

pylock, requir and hashes carry the level through winpy_ver and are untouched.

Testing

184 passed, including a new check that both halves of the CI path line up — the workflow passing release_level, and the action using it in the name.

End-to-end against real changelog content: a directory holding 3.15.0.5b1 and 3.15.0.5 for the slim flavor, run through write_changelog, produces the History quoted above and picks the b1 as the baseline.

Note that runs started before this merges still produce the un-levelled name.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MBk5k7WdpPvx4SUFyEk3U3

A beta and the final it becomes share a winpyver2, so the changelog of
2026-04 b1 was written as WinPythonslim-64bit-3.15.0.5.md: the name the
final release wants. changelogs/ would describe a beta under the final's
name until the final build overwrote it.

The name now carries the level, WinPythonslim-64bit-3.15.0.5b1.md, which
is a PEP 440 version and sorts where find_previous_version needs it to.
That also makes each release compare against the release immediately
before it: the final diffs against its own b1 rather than reaching back
to the previous cycle, which is the more logical reading of an automatic
changelog and makes the b1-to-final delta visible instead of folding it
into the cycle total.

Three of the four places that build or read the name needed it. The
composite action takes a release_level input, which the cycle workflow
feeds from the config job. build_winpython.py had the same gap on the
local build path, for both the changelog and its _History companion, and
passes the same value to compare_package_indexes -- otherwise the diff
would look for a file the build no longer writes. diff.py needed
nothing: load_version_markdown takes the version it is given, and
find_previous_version returns levelled ones already.

pylock, requir and hashes carry the level through winpy_ver, and are
untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MBk5k7WdpPvx4SUFyEk3U3
@stonebig
stonebig merged commit c5a6e82 into winpython:master Sep 6, 2026
2 checks passed
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