Repository navigation
Sync the release preflight from django-marina - #910
Merged
Merged
Conversation
Propagation of zostera/django-marina#694, where the reasoning lives. just release-check listed only commits touching src/, then closed with "Every commit above must be covered by an entry", which reads as a complete list and is not one. Anything tooling-only was invisible to it. It now prints a second group for commits touching nothing in src/, under a heading that says to read them rather than a rule, because no rule fits: a Dependabot bump of a dev dependency is nothing to a user, while a lint rule or a contributor policy belongs in the notes. just build now fails when uv.lock does not name the version in pyproject.toml, and just relock regenerates the lock without upgrading anything. uv sync --frozen does not check the project's own version, so a stale lock previously passed twine, check-manifest, pyroma and both smoke tests unnoticed. That is not theoretical: it is how a version bump shipped here with the previous version still in the lock. MAINTAINING.md release steps 1 and 2 updated to match. The justfile is byte-identical to django-marina again. Verified: just lint, just build and just test-cov at 100%. just relock was a no-op, so this lock was already current. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
dyve
added a commit
that referenced
this pull request
Oct 11, 2026
Stamps the Unreleased section as 26.3 and bumps the version from 26.2. Orders the notes by the convention in MAINTAINING.md: the dropped Python cycle first, then bug fixes with the breaking one at their head, the system check, the dependency change, tooling, and documentation. The four coverage entries had accumulated at the top of Unreleased since #901 put the section in order; they are tooling and now sort there. Adds five entries for changes that shipped without one, found by reading the full log rather than the old release-check, which listed only commits touching src/: the coverage report step in CI (#904), the zizmor workflow hardening and the restored timeout-minutes (#900), the invisible-character lint (#888), the AI assistance and dependency update policies (#887, #900), and the CLAUDE.md shim (#885). Folds in the two entries #910 added. Rebasing onto it filed them at the foot of the dated 26.3 section without a conflict, since the two sides touch different lines, which is the silent failure #910 and django-marina describe. They belong in 26.3, so they move up into the tooling group rather than being left where git put them, and the blank line that split the list and the missing one before the 26.2 heading are repaired. Merges #910's release-check entry into the entry that introduced the recipe. Both land in this release, so describing it as added and then changed is internal history; the single entry says what shipped. Regenerates uv.lock, which records the project version and would otherwise have kept saying 26.2. That mismatch is what #899 left behind, and what #910's new build guard now catches. Verified: just lint passes, just test-cov is green at 100%, just build produces django_bootstrap4-26.3 artefacts with the packaging checks green, and the new lockfile guard was confirmed to fail the build when the lock is stale rather than only passing when it is not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Merged
dyve
added a commit
that referenced
this pull request
Oct 11, 2026
Stamps the Unreleased section as 26.3 and bumps the version from 26.2. Orders the notes by the convention in MAINTAINING.md: the dropped Python cycle first, then bug fixes with the breaking one at their head, the system check, the dependency change, tooling, and documentation. The four coverage entries had accumulated at the top of Unreleased since #901 put the section in order; they are tooling and now sort there. Adds five entries for changes that shipped without one, found by reading the full log rather than the old release-check, which listed only commits touching src/: the coverage report step in CI (#904), the zizmor workflow hardening and the restored timeout-minutes (#900), the invisible-character lint (#888), the AI assistance and dependency update policies (#887, #900), and the CLAUDE.md shim (#885). Folds in the two entries #910 added. Rebasing onto it filed them at the foot of the dated 26.3 section without a conflict, since the two sides touch different lines, which is the silent failure #910 and django-marina describe. They belong in 26.3, so they move up into the tooling group rather than being left where git put them, and the blank line that split the list and the missing one before the 26.2 heading are repaired. Merges #910's release-check entry into the entry that introduced the recipe. Both land in this release, so describing it as added and then changed is internal history; the single entry says what shipped. Regenerates uv.lock, which records the project version and would otherwise have kept saying 26.2. That mismatch is what #899 left behind, and what #910's new build guard now catches. Verified: just lint passes, just test-cov is green at 100%, just build produces django_bootstrap4-26.3 artefacts with the packaging checks green, and the new lockfile guard was confirmed to fail the build when the lock is stale rather than only passing when it is not. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Propagation of zostera/django-marina#694, where the reasoning lives.
just release-checkhid most of the commits. It listed only commits touchingsrc/, then closed with "Every commit above must be covered by an entry". That reads as a complete list and is not one, so anything tooling-only was invisible. It now prints a second group for commits touching nothing insrc/, under a heading that says to read them rather than a rule, because no rule fits that group: a Dependabot bump of a dev dependency is genuinely nothing to a user, while a lint rule, a CI gate or a contributor policy belongs in the notes under tooling. Across marina, bootstrap4 and bootstrap5, roughly eighteen changes had gone unrecorded this way.just buildpassed with a stale lockfile.uv sync --frozendoes not check the project's own package version, so a bump could ship with the old version still inuv.lockwhile twine, check-manifest, pyroma and both smoke tests all reported green. Verified directly in marina:uv sync --frozeninstalled 26.9 against a lock naming 26.3 and exited 0.buildnow depends on a check comparing the two, which puts it in front ofrelease-tagas well, andjust relockregenerates the lock without upgrading anything (just upgradebumps every dependency and has no business in a release commit).MAINTAINING.md release steps 1 and 2 are updated to match. The
justfileis byte-identical to django-marina again.Verified with
just lint,just buildandjust test-covat 100%.just relockwas a no-op here, so this repository's lock was already consistent.Sequencing with #909
#909, the 26.3 release, is open. PACKAGING.md now says not to branch a propagation off a release branch, which is what produced the phantom 26.3 here in the first place, so this is branched off
maininstead and carries no release commit.That leaves the merge order to settle, and either way works as long as it is deliberate:
## Unreleasedwill have become## 26.3 (date). I will add a fresh## Unreleasedfor these two entries rather than let git file them under the released heading, which it would do silently since the two sides touch different lines.The entries are appended at the end of
Unreleasedrather than the top, so they do not collide with anything #909 prepends. Ping me either way and I will do the rebase or hand you the two lines.