Skip to content

Add just release-check, and fix the stale release process - #865

Merged
dyve merged 1 commit into
mainfrom
add-release-check
Aug 30, 2026
Merged

dyve merged 1 commit into
mainfrom
add-release-check

Conversation

@dyve

@dyve dyve commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

Propagated from django-marina (zostera/django-marina#675), the canonical source for shared tooling. Both the justfile recipe and the MAINTAINING.md release process are verbatim-synced per PACKAGING.md.

Why it exists. Two of the four releases on 2026-08-28 shipped code changes with no changelog entry — django-bootstrap4 a KeyError fix in url_replace_param, django-icons a SafeString rendering fix that was the most significant change in that release. Both were caught by hand, by diffing src/ against the last tag. Nothing required that diff, and it takes several commands, so it does not get run mid-release. just release-check makes it one command and step 1.

It is deliberately not a pass/fail gate — changelog entries do not reference commits, so nothing can mechanically prove coverage — and deliberately not wired into just build, which runs in CI where a branch legitimately may not have its entry yet.

Test plan

  • just release-check runs and reports correctly
  • just lint passes
  • Recipe and release-process block verified byte-identical to django-marina's

Also: the release process here was stale

MAINTAINING.md in this repo still described the old flow:

1. Update `CHANGELOG.md` and bump `version` in `pyproject.toml`
2. Commit and push to `main`

main is protected, so step 2 fails — or succeeds only by bypassing branch protection, which is worse. django-marina fixed this in #665 and it reached django-bootstrap3 and django-bootstrap4, but never got propagated here. The `main` is protected paragraph was missing too.

Since this PR replaces the release-process block wholesale to insert step 1, that drift is corrected in the same change — the block is now byte-identical to django-marina's.

Propagated verbatim from django-marina. Two of four releases on
2026-08-28 shipped code changes with no changelog entry, caught only by
diffing src/ against the last tag by hand. This makes that check one
command and step 1.

Also corrects the release process, which still said to commit and push
the version bump straight to main. main is protected, so that fails.
django-marina fixed this in #665 and it reached bootstrap3 and
bootstrap4, but was never propagated here; the 'main is protected'
paragraph was missing too. The block is now byte-identical to
django-marina's.
@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 33161252940

Coverage remained the same at 96.076%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 686
Covered Lines: 664
Line Coverage: 96.79%
Relevant Branches: 206
Covered Branches: 193
Branch Coverage: 93.69%
Branches in Coverage %: Yes
Coverage Strength: 13.55 hits per line

💛 - Coveralls

@dyve
dyve merged commit d12c646 into main Aug 30, 2026
20 checks passed
@dyve
dyve deleted the add-release-check branch August 30, 2026 13:32
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