build(deps-dev): bump ruff from 0.15.20 to 0.16.0 - #16
Conversation
60daa4b to
55b439d
Compare
* Rotate the pinned supply-chain digests dependabot cannot reach
Dependabot proposes a dependency bump but cannot update the pins that
guard it, so these PRs could never go green on their own:
- tests/test_runtime_dependency_lock.py pins the exact runtime version
and asserts requirements-runtime.lock matches the uv resolution
- tests/test_validation_dependency_lock.py pins every validation tool
version across pyproject, uv.lock and requirements-validation.lock
- tests/test_release_build_trust.py and
tests/test_doofus_external_trial_workflow.py pin the exact commit
digest of each attestation action, so a workflow-only bump fails
Every digest below was verified against the upstream tag before use,
not taken from dependabot's word:
actions/attest v4.2.0 = f7c74d28b9d84cb8768d0b8ca14a4bac6ef463e6
actions/attest v4.2.1 = 508db95dd578ae2727ebd6217d5ba78e4fbda05d
actions/attest-build-provenance v4.1.1
= 0f67c3f4856b2e3261c31976d6725780e5e4c373
Changes:
- cryptography 48.0.1 -> 49.0.0, constraint <49 -> <50 (closes #13)
- pip-audit 2.9.0 -> 2.10.1, which drops toml for tomli/tomli-w
(closes #17)
- actions/attest v4.2.0 -> v4.2.1 in ui.yml and
nimrod-external-witness.yml (closes #10)
- actions/attest-build-provenance v3 -> v4.1.1 in
doofus-external-trial.yml (closes #12)
Both lock files were regenerated with the pinned uv 0.11.15 rather than
hand-edited, so every hash is machine-derived.
ruff 0.16.0 is deliberately NOT included. It changes default rule
behaviour and reports 893 errors (497 auto-fixable) against this tree.
That is a lint migration, not a dependency bump, and it belongs in its
own change. #16 stays open.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Export requirements-validation.lock with the canonical gate flags
validate_release_python.py regenerates the file with
--only-group validation --no-annotate and byte-compares. The first
export omitted --no-annotate, so the committed file carried 37 lines of
"# via" provenance comments the gate never produces, and
validation_lock_reproducible failed.
Both lock files are now written with exactly the commands the gate uses:
runtime: uv export --locked --no-default-groups --format requirements-txt --no-header --no-emit-project
validation: uv export --locked --only-group validation --no-annotate --format requirements-txt --no-header --no-emit-project
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Rotate the fifth pip-audit pin in the release validator
EXPECTED_TOOL_VERSIONS in scripts/validate_release_python.py asserts the
INSTALLED tool versions match the contract, so pip-audit is pinned in
five places, not four: pyproject.toml, uv.lock,
requirements-validation.lock, tests/test_validation_dependency_lock.py,
and this validator.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Key the pages concurrency group by ref so PRs stop starving each other
`concurrency.group` was the fixed string `pages`, so every pull request
and every push to main contended for a single slot. With
`cancel-in-progress: false` GitHub keeps only the newest queued run and
supersedes the rest, and because `Build synthetic-only Organism` is a
REQUIRED status check on main, any PR whose run was superseded became
permanently unmergeable — the check never reports at all, so it can
never be satisfied by re-running CI.
Observed on four open dependabot PRs, all `completed/cancelled` for this
workflow while a fifth succeeded:
cancelled dependabot/cargo/ui/src-tauri/reqwest-0.13 3385339 #19
cancelled dependabot/npm_and_yarn/ui/vitest-4.1.10 50eef14 #15
cancelled dependabot/npm_and_yarn/ui/multi-223fb6760 e32b73b #20
cancelled dependabot/github_actions/actions/setup-py 2a9c4d3 #11
success dependabot/cargo/ui/src-tauri/getrandom-0. cd54a61 #37
Keying the group by `github.ref` serialises per branch, so pushes to
main still queue against each other and real Pages deployments remain
ordered, while pull requests no longer compete for the same slot.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.20 to 0.16.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.15.20...0.16.0) --- updated-dependencies: - dependency-name: ruff dependency-version: 0.16.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
55b439d to
24b475a
Compare
Measured: this is a pin update plus ~935 lint fixes, not a pin updateProbed with All 935 are new in 0.16. Top rules:
The hazard is BLE001This codebase uses Two findings worth harvesting regardless of this bump
And the pin sites, since dependabot only updates two of five
Caution: never run Diagnosed 2026-08-02 alongside #18 (hidden two-major Vite migration) and #36 (breaking Rust API change). The three open dependabot PRs are three different problems. |
|
Superseded by #69. |
Bumps ruff from 0.15.20 to 0.16.0.
Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
a2635fdBump 0.16.0 (#27136)3433449[ty] Reuse full call diagnostics for implicit setter calls (#27115)2240070Reflectruff: ignoreand--add-ignorestabilization in documentation (#27...17ef711Stabilize--add-ignore(#27125)ef912bbAdd newly stabilized rules to defaults (#27055)b30f040Stabilize new default rules (#27035)bcd70c5Exclude Markdown files fromformat-devruns (#27052)87e51e2Fixformat --checkspans for syntax errors (#27045)afe2723[flake8-gettext] Stabilize qualified-name and built-in binding resolution (...a9702d8[flake8-bandit] Stabilize string literal binding resolution (S310) (#26944)