Repository navigation
ci: sync ci.yml from django-marina (Python 3.15, gate every job) - #878
Merged
Merged
Conversation
Three commits have touched src/ since v26.3 on 2026-08-28: addon support on floating-label fields, week/search/color inputs recognised as form controls, and the BOOTSTRAP5 system check. The test dependency group listed coverage[toml]>=7.6.1 twice. The duplicate is dropped and the group sorted alphabetically, matching the docs group next to it. Resolution does not change, only the lockfile's version of this package. Entries are reordered to the convention in MAINTAINING.md: the missing inline_field_class default first as a fix, then the three features, then tooling, then documentation. Verified with just lint and just build: check-manifest clean, pyroma 10/10, and both the wheel and the sdist smoke-test against an isolated environment. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two changes propagated from django-marina, both in ci.yml, so they travel together rather than as two rounds of review. Python 3.15.0rc2 runs as a non-blocking matrix job against Django 6.1 and main. No Django release claims 3.15 yet, so pairing it with 5.2 or 6.0 would park permanent red legs that say nothing about this package. uv sync now pins the interpreter with --python, because uv skips pre-release interpreters when it resolves by discovery and the 3.15 leg would otherwise test on whatever else the runner had. The tests job is the only required status check on main, and it only failed on the test matrix. docs and build feed nothing, so a failure in either left the matrix green and the gate green with it: a broken docs build or a failing packaging preflight could be merged. It now reads every job it needs. always() stays because a job skipped after a failed need reports success to branch protection, which is GitHub's documented behaviour and the reason the condition is spelled out. MAINTAINING.md names Pillow as the C-extension dependency that gates making a pre-release job blocking. Pillow 12.3.0 already publishes cp315 wheels, so that gate is open whenever 3.15 goes final. The bullet stays as policy rather than recording today's state, which would go stale. The GDAL install steps and the jinja extra stay where they are, as PACKAGING.md requires for this package. Apart from those, ci.yml and tox.ini are now byte-identical to django-marina. Verified: py315-6.1 and py315-main pass here on 3.15.0rc2, 172 tests. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Coverage Report for CI Build 35582349385Coverage remained the same at 96.208%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Closed
dyve
added a commit
that referenced
this pull request
Oct 4, 2026
…#885) main claimed a version that does not exist. CHANGELOG.md carried a closed `## 26.4 (2026-09-21)` section and pyproject.toml said 26.4, while the latest tag was v26.3 and nothing had been published. The release cut did not arrive through the release PR, #877, which was closed as postponed. It arrived through #878, the CI sync, which also carried the changelog heading, the version bump and the coverage[toml] dedup. Closing #877 therefore postponed nothing, and four more entries accumulated on top of a section that was already dated and closed. This folds the eight 26.4 entries back into Unreleased alongside the four that followed, ordered by the categories in MAINTAINING.md: bug fixes, then features, then tooling and internal. No entry text is changed. The version returns to 26.3 in pyproject.toml and uv.lock. `just release-check` reads correctly again. Before this it listed five src/ commits against an Unreleased section holding only two matching entries, because the other three were covered by the closed 26.4 section. uv.lock also bumps its own `revision` marker from 3 to 5, which my local uv wrote when regenerating. That is incidental to this change. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
dyve
added a commit
to zostera/django-marina
that referenced
this pull request
Oct 11, 2026
…ch (#693) django-bootstrap4 and django-bootstrap5 both ended up with a version number on main that was never published. The cause was the same in each: the propagation PR was branched off the open release branch, so it carried the release commit, and the dated heading and version bump merged with the workflow change. The release PR was then closed as redundant because its content was already on main. bootstrap4 also kept a uv.lock that still named the old version, because the bump never went through a release PR that runs just build. That was my doing, in zostera/django-bootstrap4#899 and zostera/django-bootstrap5#878, and the stacking had a reason: branching off main risks git merging a new Unreleased entry into a section the release has since dated, which it does silently because the two sides touch different lines. PACKAGING.md now names both hazards and says which one to prefer, so the next person does not trade one for the other by accident. 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.
Stacked on #877. It branches from
release-26.4so its changelog entries land in a freshUnreleasedsection rather than inside the released one. Merge #877 first and this reduces to the four files below.Two changes propagated from django-marina (#681 and #682), both landing in
ci.yml, so they travel as one review rather than two.Python 3.15. 3.15.0rc2 is installable through uv, so the matrix reports on it well before the October release. The legs run with
continue-on-errorand cannot fail the build. No Django release claims 3.15 yet, 5.2, 6.0 and 6.1 all stop their classifiers at 3.14, so it pairs with 6.1 andmainonly.uv syncnow pins the interpreter with--python, because uv skips pre-release interpreters when resolving by discovery, and that flag applies to every leg, so it is the line to look at hardest. Classifiers inpyproject.tomlstay at 3.14: a classifier is a promise and a job that cannot fail the build does not back one. MAINTAINING.md records that rule.The CI gate.
testsis the only required status check onmainand it only failed on the test matrix.docsandbuildfeed nothing, so a failure in either left the matrix green and the gate green with it, meaning a broken docs build or a failing packaging preflight could be merged. It now reads every job it needs. Theif: always()stays, because a job skipped after a failed need reports success to branch protection, so dropping it would reintroduce the hole through the front door.Worth knowing for this package specifically: MAINTAINING.md names Pillow as the C-extension dependency that gates making a pre-release job blocking, and Pillow 12.3.0 already publishes cp315 wheels. That gate is open whenever 3.15 goes final. The bullet stays as policy rather than recording today's state, which would go stale.
The GDAL install steps and the
jinjaextra stay where they are, as PACKAGING.md requires here. Apart from those,ci.ymlandtox.iniare byte-identical to django-marina after this.Verified locally:
py315-6.1andpy315-mainpass here on 3.15.0rc2, 172 tests.🤖 Generated with Claude Code