Skip to content

build(deps): bump the python-deps group across 1 directory with 5 updates - #66

Closed
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/uv/python-deps-eb7932d1b9
Closed

build(deps): bump the python-deps group across 1 directory with 5 updates#66
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/uv/python-deps-eb7932d1b9

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 30, 2026

Copy link
Copy Markdown
Contributor

Bumps the python-deps group with 5 updates in the / directory:

Package From To
annotated-types 0.7.0 0.8.0
fastapi 0.139.2 0.140.0
prometheus-client 0.25.0 0.26.0
ruff 0.15.22 0.16.0
zizmor 1.5.2 1.28.0

Updates annotated-types from 0.7.0 to 0.8.0

Release notes

Sourced from annotated-types's releases.

v0.8.0

What's Changed

New Contributors

Full Changelog: annotated-types/annotated-types@v0.7.0...v0.8.0

Commits

Updates fastapi from 0.139.2 to 0.140.0

Release notes

Sourced from fastapi's releases.

0.140.0

Refactors

Docs

Internal

Commits

Updates prometheus-client from 0.25.0 to 0.26.0

Release notes

Sourced from prometheus-client's releases.

v0.26.0

What's Changed

New Contributors

Full Changelog: prometheus/client_python@v0.25.0...v0.26.0

Commits
  • 9b6b971 Release v0.26.0
  • fb072c2 Fix operator precedence allowing exemplars on any metric type (#1188)
  • 6e22fb5 Remove nameless collectors from the registry on unregister (#1191)
  • 5b09479 Parse the native histogram sum as a float (#1192)
  • 769b415 fix: make test suite pass on Windows and Python 3.12+ (#1185)
  • d0b497f Update common Prometheus files (#1195)
  • 75603d7 Update common Prometheus files (#1194)
  • fb2351f Do not emit a leading zero in floatToGoString exponents >= 10 (#1190)
  • a39a697 Validate Enum arguments before registering the collector (#1189)
  • a96f6f4 Add TLS version parameters for start_wsgi_server (#1178)
  • Additional commits viewable in compare view

Updates ruff from 0.15.22 to 0.16.0

Release notes

Sourced from ruff's releases.

0.16.0

Release Notes

Released on 2026-07-23.

Check out the blog post for a migration guide and overview of the changes!

Breaking changes

  • Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for more details and the new Default Rules page for a full listing of the enabled rules. Note that this is primarily an expansion, but 18 of the more opinionated pycodestyle (E) and pyflakes (F) rules have been removed from the default set: E401, E402, E701, E702, E703, E711, E712, E713, E714, E721, E731, E741, E742, E743, F403, F405, F406, and F722.

  • Ruff can now format Python code blocks in Markdown files and will do this by default. See the documentation for more details.

  • Ruff now supports ruff: ignore comments at the ends of lines, like noqa comments, or on the line preceding a diagnostic. For example, these both suppress an unused-import (F401) diagnostic:

    import math  # ruff: ignore[F401]
    ruff: ignore[F401]
    import os

  • Fixes are now shown in check and format --check output:

    ruff format --check .
    unformatted: File would be reformatted
     --> try.md:1:1
      |
    1 | ```python
      - import   math
    2 + import math
    3 | ```
      |
    1 file would be reformatted

    This example also shows off the Markdown formatting.

  • format --check now supports the same output formats as the linter, including the github and gitlab outputs for rendering annotations in CI:

    ruff format --check --output-format github .
    ::error title=ruff (unformatted),file=try.md,line=2,col=8,endLine=2,endColumn=10::try.md:2:8: unformatted: File would be reformatted

    See the CLI help or documentation for the full list of supported formats.

  • The filename, location, end_location, fix.edits[].location, and fix.edits[].end_location fields in the JSON output format may now be null rather than defaulting to the empty string and row 1, column 1, respectively.

... (truncated)

Changelog

Sourced from ruff's changelog.

0.16.0

Released on 2026-07-23.

Check out the blog post for a migration guide and overview of the changes!

Breaking changes

  • Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for more details and the new Default Rules page for a full listing of the enabled rules. Note that this is primarily an expansion, but 18 of the more opinionated pycodestyle (E) and pyflakes (F) rules have been removed from the default set: E401, E402, E701, E702, E703, E711, E712, E713, E714, E721, E731, E741, E742, E743, F403, F405, F406, and F722.

  • Ruff can now format Python code blocks in Markdown files and will do this by default. See the documentation for more details.

  • Ruff now supports ruff: ignore comments at the ends of lines, like noqa comments, or on the line preceding a diagnostic. For example, these both suppress an unused-import (F401) diagnostic:

    import math  # ruff: ignore[F401]
    ruff: ignore[F401]
    import os

  • Fixes are now shown in check and format --check output:

    ruff format --check .
    unformatted: File would be reformatted
     --> try.md:1:1
      |
    1 | ```python
      - import   math
    2 + import math
    3 | ```
      |
    1 file would be reformatted

    This example also shows off the Markdown formatting.

  • format --check now supports the same output formats as the linter, including the github and gitlab outputs for rendering annotations in CI:

... (truncated)

Commits
  • a2635fd Bump 0.16.0 (#27136)
  • 3433449 [ty] Reuse full call diagnostics for implicit setter calls (#27115)
  • 2240070 Reflect ruff: ignore and --add-ignore stabilization in documentation (#27...
  • 17ef711 Stabilize --add-ignore (#27125)
  • ef912bb Add newly stabilized rules to defaults (#27055)
  • b30f040 Stabilize new default rules (#27035)
  • bcd70c5 Exclude Markdown files from format-dev runs (#27052)
  • 87e51e2 Fix format --check spans 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)
  • Additional commits viewable in compare view

Updates zizmor from 1.5.2 to 1.28.0

Release notes

Sourced from zizmor's releases.

v1.28.0

Security 🔒🔗

  • v1.27.0 contained a logging defect that would print any configured GitHub credentials as part of zizmor's cleartext logging. No versions other than v1.27.0 were affected. See GHSA-f42p-wjw5-97qh for full information.

    Many thanks to @​shaanmajid for finding and reporting this vulnerability.

Enhancements 🌱🔗

  • The JSON (v1) output format now includes metadata for each finding's fixes, if the finding has fixes (#2186)

  • The dependabot-cooldown audit is now aware of GitHub's new three-day default cooldown (#2193)

  • sbt is now recognized as a package-ecosystem in dependabot.yml (#2211)

Bug Fixes 🐛🔗

  • Fixed a bug where the template-injection audit would incorrectly flag steps.*.outcome and steps.*.conclusion as injection risks in the default persona (#2199)

  • Fixed a bug where the github-env audit would incorrectly flag some printf calls as exploitable (#2201)

  • Fixed a bug where zizmor would produce a misleading and confusing error message when asked to audit an ambiguous remote input (#2205)

v1.27.0

New Features 🌈🔗

  • zizmor now has experimental support for workflows that specify parallel steps. See Usage - Parallel steps for more information (#2153) Enhancements 🌱🔗

  • zizmor's handling of paths is now more consistent, particularly when run on Windows (#2163)

  • zizmor now emits a helpful warning when being run in implicit offline mode (#2180)

Bug Fixes 🐛🔗

  • Fixed a bug where the secrets-outside-env audit would not honor ignore comments within the same job scope (#2157)

  • Fixed a bug where the ref-version-mismatch audit would not honor ignore comments within the same steps scope (#2177)

  • Fixed a bug where --collect=[MODE] was not correctly handled when auditing remote inputs (#2185)

v1.26.1

This is a small corrective release for 1.26.0.

v1.26.0

New Features 🌈🔗

  • New audit: typosquat-uses detects uses: clauses that reference likely typoed actions (#1985)

    Many thanks to @​andrew for proposing and implementing this improvement!

... (truncated)

Changelog

Sourced from zizmor's changelog.

1.28.0

Security 🔒

  • v1.27.0 contained a logging defect that would print any configured GitHub credentials as part of zizmor's cleartext logging. No versions other than v1.27.0 were affected. See [GHSA-f42p-wjw5-97qh] for full information.

    Many thanks to @​shaanmajid for finding and reporting this vulnerability.

Enhancements 🌱

  • The JSON (v1) output format now includes metadata for each finding's fixes, if the finding has fixes (#2186)

  • The [dependabot-cooldown] audit is now aware of GitHub's new three-day default cooldown (#2193)

  • sbt is now recognized as a package-ecosystem in dependabot.yml (#2211)

Bug Fixes 🐛

  • Fixed a bug where the [template-injection] audit would incorrectly flag steps.*.outcome and steps.*.conclusion as injection risks in the default persona (#2199)

  • Fixed a bug where the [github-env] audit would incorrectly flag some printf calls as exploitable (#2201)

  • Fixed a bug where zizmor would produce a misleading and confusing error message when asked to audit an ambiguous remote input (#2205)

1.27.0

New Features 🌈

  • zizmor now has experimental support for workflows that specify parallel steps. See Usage - Parallel steps for more information (#2153)

Enhancements 🌱

  • zizmor's handling of paths is now more consistent, particularly when run on Windows (#2163)

  • zizmor now emits a helpful warning when being run in implicit offline mode (#2180)

Bug Fixes 🐛

  • Fixed a bug where the [secrets-outside-env] audit would not honor

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Jul 30, 2026
@dependabot
dependabot Bot requested a review from wshallwshall as a code owner July 30, 2026 03:08
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Jul 30, 2026
wshallwshall added a commit that referenced this pull request Jul 30, 2026
PR #80 appended eight Steps-view items to docs/BACKLOG.md without the
status banner every numbered item must carry, so
tests/test_backlog_status_check.py::test_the_real_backlog_satisfies_the_invariant
began failing on main itself (8 errors, first at line 6905). Because
GitHub tests each PR merged into main, every open PR inherited the
failure: #81, #74, #71, #66 and #60 were all blocked, three of them with
auto-merge armed and unable to fire.

Adds exactly one leading banner per item. Seven use the open/prioritized
form; #239 uses the partial form, because its measurement ran and is
recorded on PR #81 while the re-runnable scripts/quality/lens_coverage.py
is still unmerged -- the number is not yet reproducible from main.

The banners are deliberately minimal and do not re-litigate any item's
verdict. #234 in particular is left explicitly unsettled rather than
entrenched: it was filed as "revisit, not a bug" after the owner asked
for a fix, and that framing is still open.

Verified: scripts/docs/backlog_status_check.py exits 0 (237 items) and
tests/test_backlog_status_check.py is 15 passed, was 14 passed 1 failed.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
@dependabot dependabot Bot changed the title build(deps): bump the python-deps group with 5 updates build(deps): bump the python-deps group across 1 directory with 5 updates Aug 1, 2026
…ates

Bumps the python-deps group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |
| [fastapi](https://github.com/fastapi/fastapi) | `0.139.2` | `0.140.0` |
| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.22` | `0.16.0` |
| [zizmor](https://github.com/zizmorcore/zizmor) | `1.5.2` | `1.28.0` |



Updates `annotated-types` from 0.7.0 to 0.8.0
- [Release notes](https://github.com/annotated-types/annotated-types/releases)
- [Commits](annotated-types/annotated-types@v0.7.0...v0.8.0)

Updates `fastapi` from 0.139.2 to 0.140.0
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](fastapi/fastapi@0.139.2...0.140.0)

Updates `prometheus-client` from 0.25.0 to 0.26.0
- [Release notes](https://github.com/prometheus/client_python/releases)
- [Commits](prometheus/client_python@v0.25.0...v0.26.0)

Updates `ruff` from 0.15.22 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.22...0.16.0)

Updates `zizmor` from 1.5.2 to 1.28.0
- [Release notes](https://github.com/zizmorcore/zizmor/releases)
- [Changelog](https://github.com/zizmorcore/zizmor/blob/main/docs/release-notes.md)
- [Commits](zizmorcore/zizmor@v1.5.2...v1.28.0)

---
updated-dependencies:
- dependency-name: annotated-types
  dependency-version: 0.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: fastapi
  dependency-version: 0.140.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: prometheus-client
  dependency-version: 0.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: zizmor
  dependency-version: 1.28.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/uv/python-deps-eb7932d1b9 branch from 7d591e4 to f066c2b Compare August 1, 2026 04:58
wshallwshall added a commit that referenced this pull request Aug 1, 2026
… that asked the wrong question, and a test that measured the scheduler (#121)

* ci(dependabot): the uv ecosystem widened the caps it was supposed to respect

Dependabot rewrites a declared upper bound rather than respecting it, so a
load-bearing cap in pyproject.toml is decorative unless it is restated as an
ignore range here. PR #66 widened `annotated-types<0.8` -> `<0.9` (both
declaration sites) and `ruff>=0.4,<0.16` -> `<0.17`; the lock resync then
propagated 0.8.0/0.16.0 into constraints.lock, so ci.yml's `--constraint`
pinned CI *to* the broken versions — 8 FHIR ImportErrors on windows-2022 and
868 ruff findings on ubuntu. `python-deps` groups on `*`, so the two of them
red the whole batch and hold every benign bump in it hostage.

The ignore entries suppress the security track for the named RANGE too;
that is accepted and recorded inline, because detection does not depend on
Dependabot — the required `pip-audit -r requirements.lock` gate reds within
~24h and a human lifts the pyproject cap, which is the real ceiling either way.

Also corrects two comments the evidence retired: the header still claimed no
committed lockfile exists, and the PEP 735 question is settled — PR #66 bumped
`zizmor` inside `[dependency-groups].ci-scanners`, so the uv ecosystem does
reach it.

* docs(deps): three cap comments describe an install command CI no longer runs

Both annotated-types and ruff caps said "CI installs with a FRESH resolve
(uv pip install -e ...)" in the present tense. It does not: every uv install
in ci.yml, quality-advisory.yml and dast.yml passes `--constraint
constraints.lock`. That mattered for more than tidiness — it framed the cap as
a CI workaround with "or once CI installs from the hashed lock" as an exit
condition, which is wrong in both directions. The cap bounds the RESOLVER, and
the lock carries whatever the resolver already chose, so installing from the
lock would not retire it; meanwhile it is also what bounds every resolve CI
never sees (an end user's `pip install messagefoundry[fhir]`, the local dev
venv, dispatch-only legs).

The fhir extra additionally claimed the cap "lives here rather than in
[project.dependencies]" while an identical cap sat 67 lines above it.

Stops restating the ruff finding count: 626, ~525 and 868 were three numbers
for one fact at two different scopes. States it once, as a bound, dated.

No version specifier changed and no lock is touched — comments only.

* ci(zizmor): a zizmor version bump never runs zizmor

The paths filter listed only `.github/**`, but zizmor's own pinned version
lives in pyproject.toml's [dependency-groups].ci-scanners and reaches the
install step through ci/locks/ci-scanners.lock — outside the filter. So PR #66,
which bumps zizmor 1.5.2 -> 1.28.0, ran 33 check contexts and not one of them
was zizmor: a 23-minor jump against a deliberately clean baseline would have
been adjudicated by the 06:00 cron, against main, after merge.

Adds the lock to the filter and corrects the header, whose "a Python / docs /
test PR cannot change its result" is precisely what a lock-only bump disproves.
The lock also carries bandit and pip-audit, so their bumps now trigger this
workflow too (~1 billed min) — arguably correct, since bandit is the other
clean-baseline gate.

Also states the filter once: three docs restated its contents verbatim, which
is three things to forget when it changes. They now point at the workflow.

* ci(dependabot): the published-GHSA gate asked about the wrong versions

fetch-metadata's scalar `previous-version` is the FIRST dependency's, even on a
grouped PR — output.ts:27 reads `firstDependency?.prevVersion` (verified at the
pinned SHA 25dd0e34, v3.1.0). The gate applied it to every name in the group, so
on a five-dep PR it asked about four versions the PR does not touch. That fails
in the PERMISSIVE direction: advisory ranges are mostly open at the bottom, so a
low first-dep version confirms almost anything. Demonstrated on the real shape —
a group of aiohttp 3.9.0 + Pillow 10.2.0 queries `pillow@3.9.0` (a 2016 release)
and returns a confirmation.

Switches to `updated-dependencies-json`, which carries a per-dependency
prevVersion, and closes a fail-open case the scalar never had: update_metadata.ts:101
falls back to an EMPTY prevVersion for index > 0, and an unknown previous version
must deny rather than skip on a gate whose contract is to fail closed.

Verified by executing the step against a stubbed advisories endpoint: each dep is
queried at its own version; no-advisory, empty-prevVersion, malformed-metadata and
version-track all deny. The old loop was run against the same input first, to
confirm the test can see the defect.

Also adds a 5-day cooldown to github-actions — the one ecosystem where auto-merge
demonstrably fires, and the one where a compromised release runs inside CI with
the job's token. SHA-pinning stops tag mutation, not a malicious new release.

And scopes the IN SCOPE header, which read as though uv routinely auto-merges;
in practice `patterns: ["*"]` plus the deny-list makes it review-by-default.

* test(coord): the eight-claimant test asserted a timing artifact, not mutual exclusion

The lock is correct. `test_only_one_of_eight_concurrent_claimants_wins` counted
winners, which measures the scheduler: the barrier releases the cohort together,
but each process then runs Enter-CoordLock's own prologue — a `git rev-parse`
spawn at lock.ps1:47 — before its deadline is set at lock.ps1:56, and nothing
synchronizes that. A winner count tolerates only (hold - timeout) = 500 ms of
that skew. So a straggler that arrives after the winner released acquires
legitimately and is counted as a violation.

That is what failed on windows-2025 in run 30672004091, and it is not a flake:
under 40 CPU burners on a 20-core box the old assertion fails 6/6 (2-3 winners),
the new one passes 6/6.

Asserts occupancy instead — a CreateNew sentinel taken under the lock, the same
atomic test-and-set the lock itself uses, with no reference to a clock. Validated
both directions: with Enter-CoordLock stubbed to a no-op it fails with 7
simultaneous holders, so the assertion can see the defect class it claims to
exclude.

Cost: hold_ms 1500 -> 8000 to keep a ~3.3x margin over the measured skew, so this
test's floor wall-time is ~9 s.

* ci: give the unconstrained install legs the same version floor as ci.yml

Every uv install in ci.yml, quality-advisory.yml and dast.yml passes
`--constraint constraints.lock`; the four plain-pip legs did not, so they
re-resolved from pyproject's `>=` floors and would have adopted ruff 0.16.0 and
annotated-types 0.8.0 on the day those shipped, exactly as PR #66 did. A
benchmark leg is the worst place for that — a silent dependency change reads as
a performance regression.

freethread-smoke stays unconstrained on purpose and now says so. The lock
records what resolved for the GIL build; pinning it there can leave a dep with
no cp314t wheel at that version and send pip to a source build, so the canary
would stop measuring free-threading and start measuring the lock.

* docs(ci): the zizmor filter pointer pointed at the line it was on

The earlier "state it once, link to it" edit replaced the restated filter
contents with "(see `zizmor.yml`)" at four sites — but every one of those lines
already has zizmor.yml as its subject, so the pointer was circular. CI.md:147
was the worst: "`zizmor.yml` (which is already paths-filtered (see
`zizmor.yml`))".

Drops the pointer instead. The subject is already named, so plain
"paths-filtered" states the fact without restating its contents, which is what
the rule was after.
@dependabot @github

dependabot Bot commented on behalf of github Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this Aug 1, 2026
@dependabot
dependabot Bot deleted the dependabot/uv/python-deps-eb7932d1b9 branch August 1, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants