Skip to content

⬆️ deps: Update Python dev dependencies - #89

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/python-dev-dependencies
Aug 7, 2026
Merged

⬆️ deps: Update Python dev dependencies#89
renovate[bot] merged 1 commit into
mainfrom
renovate/python-dev-dependencies

Conversation

@renovate

@renovate renovate Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
ruff (source, changelog) >=0.15.21>=0.16.1 age confidence
ty (changelog) >=0.0.54,<0.0.55>=0.0.69,<0.0.70 age confidence

Release Notes

astral-sh/ruff (ruff)

v0.16.1

Compare Source

Released on 2026-07-30.

Preview features
  • Add an option to opt out of human-readable names (#​27160)
  • [flake8-pytest-style] Make fixes safe by default and unsafe only when comments are present (PT018) (#​27201)
  • [pyupgrade] Skip fix when a defaulted TypeVar precedes a non-defaulted one (UP040, UP046, UP047) (#​27133)
  • [ruff] Fix false positive with unpacked arguments (RUF065) (#​26959)
Bug fixes
  • Bump gen-lsp-types to gracefully handle unknown enumeration values in LSP messages (#​27230)
  • [flake8-bugbear] Mark range as immutable (B008) (#​27247)
  • [flake8-comprehensions] NFKC-normalize keyword names in C408 fix (#​26813)
  • [flake8-return] Fix false positive when variable is read in finally clause (RET504) (#​25441)
  • [pydocstyle] Skip section detection inside RST directive bodies (D214, D405, D413) (#​23635)
  • [refurb] Parenthesize yield arguments in the FURB192 fix (#​27192)
Rule changes
  • [flake8-pytest-style] Mark PT022 fixes as unsafe (#​26440)
  • [refurb] Mark fixes that remove unknown separators as unsafe (FURB105) (#​27200)
Server
  • Fix indexing of excluded nested Ruff workspaces (#​27303)
  • Lint TOML files in the LSP (#​26862)
Documentation
  • Cover pycon Markdown formatting (#​27153)
  • [flake8-bandit] Document TYPE_CHECKING exception (S101) (#​27004)
  • [flake8-import-conventions] Document that extend-aliases can override default aliases (#​27191)
  • [pylint] Add missing fix safety gotchas for non-augmented-assignment (PLR6104) (#​27250)
Other changes
  • Reduce syntax error noise by swallowing dedents like indents (#​27170)
  • Vendor latest annotate-snippets (#​27033)
Contributors

v0.16.0

Compare Source

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.

  • 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.

Stabilization

The following rules have been stabilized and are no longer in preview:

The following behaviors have been stabilized:

Preview features
  • [pyupgrade] Fix false positive with TypeVar default before Python 3.13 (UP040) (#​26888)
Bug fixes
  • [ruff] Fix missing check on unrecognized early bound (RUF016) (#​26986)
Rule changes
  • Insert a space after the colon in Ruff suppression comments (#​27123)
Performance
  • [pyupgrade] Speed up unnecessary-future-import (UP010) (#​27047)
Documentation
  • [ruff] Add missing period in "Why is this bad?" section (RUF200) (#​26930)
  • [flake8-simplify] Clarify os.environ behavior on Windows (SIM112) (#​26972)
  • [pydocstyle] Document fix safety (D400) (#​26971)
Contributors

v0.15.22

Compare Source

Release Notes

Released on 2026-07-16.

Preview features
  • [pycodestyle] Add an autofix for E402 (#​22212)
  • [refurb] Allow subclassing builtins in stub files (FURB189) (#​26812)
  • [ruff] Add rule to replace noqa comments with ruff:ignore (RUF105) (#​26423)
  • [ruff] Add rule to use human-readable names in ruff:ignore comments (RUF106) (#​26682)
  • [ruff] Add rule to use human-readable names in configuration selectors (RUF201) (#​26772)
Bug fixes
  • [flake8-pyi] Fix false positive in __all__ (PYI053) (#​26872)
Rule changes
  • [pylint] Ignore mutable type updates in redefined-loop-name (PLW2901) (#​25733)
Performance
  • Avoid redundant lexer token bookkeeping (#​26765)
  • Avoid redundant pending-indentation writes (#​26774)
  • Avoid unnecessary identifier lookahead (#​26525)
  • Reuse parser scratch buffers (#​26798)
Documentation
  • Document argfile support (#​26803)
  • [flake8-datetimez] Clarify naming guidance for datetime.today (DTZ002) (#​26658)
  • [pycodestyle] Document E731 fix safety (#​26847)
  • [ruff] Clarify intentional async contexts for unused-async (RUF029) (#​26641)
Contributors

Install ruff 0.15.22

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.22/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.22/ruff-installer.ps1 | iex"

Download ruff 0.15.22

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ruff

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
astral-sh/ty (ty)

v0.0.69

Compare Source

Released on 2026-08-06.

Core type checking
  • isinstance narrowing for generic classes is now more gradual by default (#​27308)

    This new behavior is more similar to what other major type checkers do. For example:

    def f(xs: object):
        if isinstance(xs, list):
            reveal_type(xs)  # now: `list[Unknown]`, before: `Top[list[Unknown]]`

    Note: you might consider enabling analysis.strict-generic-narrowing
    if you prefer the strictly correct behavior.

Contributors

v0.0.68

Compare Source

Released on 2026-08-05.

Diagnostics
  • Preserve property getter call errors (#​27509)
  • Simplify numeric tower displays (e.g., float over int | float) (#​27406)
  • Suggest closing open TypedDict types for Mapping compatibility (#​27512)
Core type checking
  • Avoid double inference of Unpack operands in Union (#​27525)
  • Fix panic from mismatched OR-pattern bindings (#​27533)
Contributors

v0.0.67

Compare Source

Released on 2026-08-05.

LSP server
  • Fix unused hints for OR-pattern captures (#​27438)
  • Index match-pattern bindings as symbols (#​27260)
  • Retain typing-only symbols in explicit completions (#​27435)
Diagnostics
  • Preserve called types in intersection diagnostics (#​27475)
  • Suppress unimported-reveal diagnostics in stub files and if TYPE_CHECKING blocks (#​27508)
Configuration
  • Remove deprecated src.root setting in favor of environment.root (#​27456)
Core type checking
  • Check property compatibility when matching class objects to protocols (#​27402)
  • Fix constructor calls on narrowed type-variable intersections (#​27493)
  • Fix specialization cycle with deferred TypeVar defaults (#​27453)
  • Infer generic TypedDicts from unpacked TypedDicts (#​27439)
  • Infer generic TypedDicts through synthesized constructor signatures (#​27436)
  • Normalize unpacked callable signatures for assignability (#​27450)
  • Preserve class type parameters through generic decorators (#​27442)
  • Preserve generic class type variables in constructor inference (#​27340)
  • Preserve return constraints for object-variadic callables (#​27431)
  • Preserve return constraints for top callables (#​27446)
  • Recover generic constructor types from failing overloads (#​27460)
  • Reject Self with incompatible explicit receiver annotations (#​27454)
  • Reject unhashable objects for Hashable protocols (#​27441)
  • Reject unsupported dataclass_transform parameters (#​27458)
  • Restore bottom callable subtyping for gradual prefixes (#​27519)
  • Top-materialize is_dataclass type guard (#​27455)
  • Validate constructor calls on unbounded type variables (#​27449)
Performance
  • Avoid exponential slowdown copying narrowed TypedDict unions (#​27492)
Contributors

v0.0.66

Compare Source

Released on 2026-08-03.

LSP server
  • Index with-statement targets as symbols (#​27256)
  • Trigger signature help after completing callable with parentheses (#​27084)
Library support
  • Pydantic: Recognize models installed on extra search paths (#​27429)
Diagnostics
  • Detect __aenter__ and __aexit__ that do not return awaitables (#​27414)
  • Diagnose dataclass fields after inherited defaults (#​27327)
  • Emit diagnostic when specializing a non-generic class (#​26883)
  • Improve error context for incompatible callable signatures (#​27422)
  • Preserve forwarded expanded-variadic diagnostic sources (#​27266)
Core type checking
  • Avoid over-materializing user-defined TypeIs return types (#​26864)
  • Fix enum class container assignability (#​27318)
  • Hide stub-only helpers from implicit builtin lookup (#​27423)
  • Move Unknown out of the experimental ty_extensions API (#​27430)
  • Preserve TypeVarTuple context during Generic recovery (#​27381)
  • Preserve exact numeric types in covariant collections (#​27311)
  • Reject ClassVar and Final qualifiers in NamedTuple fields (#​27380)
  • Reject out-of-scope ParamSpec components (#​27378)
  • Reject specializing non-generic subclasses (#​27377)
  • Respect bounds and constraints in generic materializations (#​27228)
  • Sync vendored typeshed stubs (#​27401). Typeshed diff
Contributors

v0.0.65

Compare Source

Released on 2026-07-29.

LSP server
  • Support comprehension walruses in IDE features (#​26476)
Library support
  • Pydantic: Allow mutation of private attributes on frozen models (#​27257)
  • Pydantic: Synthesize __replace__ for models (#​27220)
Diagnostics
  • Correct ParamSpec forwarded-argument diagnostic locations (#​27263)
  • Recover forwarded callable object and constructor sources (#​27264)
  • Recover forwarded functools.partial diagnostic sources (#​27265)
Core type checking
  • Fix gradual class assignability with generic receivers (#​27223)
  • Lazily materialize protocol attributes (#​27267)
  • Narrow tagged unions through all type kinds (#​27226)
  • Prefer static constrained TypeVar solutions (#​27057)
  • Preserve frozen-dataclass setter delegation (#​27217)
  • Preserve inference when filtering constructor overloads (#​27254)
  • Reject frozen-dataclass field deletion through subclasses (#​27001)
  • Stabilize recursive type-constraint ordering (#​27176)
  • Support materialized class type expressions (#​27258)
Performance
  • Avoid quadratic inference for large literal unions (#​27178)
  • Cache protocol receiver binding (#​27301)
Contributors

v0.0.64

Compare Source

Released on 2026-07-27.

Bug fixes
  • Fix identity narrowing for NewTypes (#​26439)
  • Make reachability analysis idempotent (#​27163)
LSP server
  • Fix ParamSpec declaration hover and type navigation (#​27183)
  • Implement LSP textDocument/implementation request (#​25410)
  • Introduce shared primitives for parsing backticks in docstrings (#​26928)
  • Render NumPy docstrings as structured Markdown (#​25925)
CLI
  • Add --exclude-scripts and --include-scripts (#​27169)
  • Discover uv workspace roots (#​25551)
Diagnostics
  • Add a lint rule for combined abstract and final decorators (#​26932)
  • Change --add-ignore to add space after the colon for ty: ignore (#​27120)
  • Fix missing-override-decorator suggestion before Python 3.12 (#​27166)
  • Reuse full call diagnostics for implicit setter calls (#​27115)
Configuration
  • Allow unresolved unused venv home paths (#​27162)
  • Simplify script metadata query (#​27121)
Core type checking
  • Decorate only overload implementation signatures (#​27147)
  • Don't consider known-instance types, generic aliases or non-singleton special-form types to be single-valued (#​27137)
  • Improve identity comparison inference for singleton types (#​27126)
  • Improve tuple membership and rich comparison inference (#​27164)
  • Model walrus bindings from comprehensions (#​26466)
  • Narrow tagged unions using identity comparisons (#​27130)
  • Preserve Self in __new__ calls (#​27003)
  • Preserve receiver constraints when binding overloaded methods (#​27038)
  • Support generic manual PEP 695 type aliases (#​27083)
  • Treat bivariance as covariant (#​24319)
Performance
  • Avoid cycles when resolving ModuleType globals (#​27182)
  • Avoid expanding optional enum comparisons (#​27105)
  • Avoid repeated inference when copying mixed TypedDict unions (#​27108)
  • Improve importer performance (#​27159)
  • Improve union and intersection builder performance (#​27167)
Contributors

v0.0.63

Compare Source

Released on 2026-07-23.

Core type checking
  • Handle generic stringified PEP 613 (typing.TypeAlias) type aliases (#​27092)
  • Allow equality narrowing across non-final classes (#​27031)
  • Allow interpolated string literals to be promoted to str (#​27104)
  • Fix double specialization of generic type aliases (#​27058)
  • Fix intersections of type and TypeForm (#​27099)
  • When narrowing from a match statement leads a variable x to be inferred as A & B, infer the type of x.attr as <type of A.attr> & <type of B.attr> (#​27103)
Library support
  • Pydantic: Stricter validation of sub-model fields in lax mode (#​27091)
  • Pydantic: Support special underscore parameters in BaseSettings models (#​27098)
Performance
  • Avoid exponential narrowing of optional dynamic match subjects (#​27100)
  • Avoid normalizing cached absolute file paths (#​26998)
Contributors

v0.0.62

Compare Source

Released on 2026-07-21.

Bug fixes
  • Guard recursive Protocol and TypedDict relations (#​26990)
  • Prevent stack overflows in recursive type relation checks (#​26503)
  • Recover from cancelled file indexing (#​26876)
Diagnostics
  • Avoid editing ignore comments with trailing reasons (#​26939)
  • Prefer innermost inline suppressions (#​26940)
  • Remove unused own-line ignore comments (#​27013)
  • Reuse applicable own-line suppressions in --add-ignore (#​26925)
Configuration
  • Respect rules and analysis in PEP 723 script metadata configurations (#​26671)
Core type checking
  • Accept gradual constrained TypeVar solutions (#​26965)
  • Avoid recursive TypeVarTuple alias expansion (#​27032)
  • Check inherited method conflicts via the MRO (#​27019)
  • Contextually infer custom __setattr__ assignments (#​27015)
  • Fix Callable isinstance reachability (#​26970)
  • Fix Just[float] protocol matching (#​27053)
  • Fix Self binding for classmethod __new__ constructors (#​27030)
  • Fix nested short-circuit flow snapshots (#​26956)
  • Gate TypedDict PEP 728 parameters by Python version (#​26968)
  • Improve match reachability inference around value-pattern branches (#​26979)
  • Make membership and equality narrowing consistent (#​26982)
  • Preserve constrained TypeVar equality narrowing (#​26988)
  • Preserve constrained TypeVar inequality narrowing (#​26995)
  • Preserve unsatisfiable generic call constraints (#​26964)
  • Respect bounded typevars in union inference (#​27023)
  • Respect metaclass __setattr__ for class attributes (#​27000)
Performance
  • Cache non-terminal-call reachability prefixes (#​26810)
  • Cache protocol Self binding (#​26997)
  • Cache sparse reachability checkpoints (#​26811)
  • Defer statement-call narrowing gates (#​26793)
Contributors

v0.0.61

Compare Source

Released on 2026-07-17.

Bug fixes
  • Avoid recursive protocol structural comparisons (#​26721)
LSP server
  • Render Google docstrings as structured Markdown (#​26599)
Library support
  • Pydantic: Collect field metadata through subscripted generic Annotated aliases (#​26885)
Diagnostics
  • Avoid extending own-line suppressions in --add-ignore (#​26808)
Core type checking
  • Derive descriptor setter domains for protocols (#​26683)
  • Enforce declared receiver TypeVar domains (#​26863)
  • Infer isinstance results for aliases and type variables (#​26961)
  • Infer isinstance results for fixed class tuples (#​26935)
  • Narrow inline list and set membership checks (#​26955)
  • Narrow tagged unions by tag truthiness (#​26887)
  • Narrow walrus expression values (#​26949)
  • Project intersections in to_instance (#​26892)
  • Remove inferable TypeVar artifacts recursively (#​26787)
  • Respect mixin receiver domains in method overrides (#​26941)
  • Support TypeVarTuple and Unpack (#​25240)
Performance
  • Deduplicate completion labels (#​26890)
  • Only collect expected types for files open in the editor (#​25546)
  • Parallelize subtype hierarchy search (#​26875)
  • Share heap-backed parser names with CharStr (#​26594)
  • Use the new incremental checker from the ignore crate (#​26933)
Contributors

v0.0.60

Compare Source

Released on 2026-07-15.

Bug fixes
  • Expand transparent callable workaround with overloads and Awaitable[T] (#​26761)
  • Separate type-mapping caches by transformation mode (#​26857)
  • Avoid recursive protocol union redundancy checks (#​26689)
  • Handle recursive protocols in redundant-cast checks (#​26708)
LSP server
  • Prevent type that is written with a code span from being incorrectly re-wrapped during docstring Markdown rendering (#​26723)
Library support
  • Pydantic: Support populate_by_name and custom initializers (#​26764)
  • Pydantic: Warn about immediately discarded extra arguments (#​26762)
Diagnostics
  • Narrow TypeGuard keyword arguments and remove invalid-type-guard-call (#​26809)
  • Support own-line suppression comments (#​26785)
Core type checking
  • Derive descriptor setter domains for protocols (#​26683)
  • Handle cycles in derived constraint relations (#​26814)
  • Implement unified generic call inference (#​26141)
  • Preserve constraints from bound receivers (#​26776)
  • Project exact-length narrowing through TypeVars (#​26852)
  • Resolve PEP 695 aliases in type[...] annotations (#​26842)
  • Retain sequence pattern narrowing in successful match cases (#​26807)
  • Support class and static protocol methods (#​26574)
  • Support class objects satisfying instance-method protocols (#​26789)
  • Support type[Protocol] (#​26649)
  • Sync vendored typeshed stubs (#​26840). Typeshed diff
  • Treat transparent callable decorators consistently in class assignments (#​26720)
Performance
  • Compare overloaded protocol method returns pairwise (#​26684)
  • Extend PathBounds fast-path to support both upper and lower bounds (#​26782)
  • Skip Self type scans for non-generic instances (#​26703)
Contributors

v0.0.59

Compare Source

Released on 2026-07-12.

Bug fixes
  • Guard descriptor classification cycles (#​26690)
  • Respect init=False in dataclass field-order checks (#​26749)
  • Avoid duplicate diagnostics for overloaded TypeIs (#​26716)
Library support
  • Pydantic: Support custom __init__ methods (#​26699)
  • Pydantic: Support field metadata in Annotated (#​26650)
Core type checking
  • Allow unsound equality-based narrowing for builtins (#​26414)
  • Bind Self in implicit dunder calls (#​26711)
  • Correct protocol method receiver binding (#​26701)
  • Exempt ParamSpec callables from the dunder descriptor heuristic (#​26696)
  • Remove transitive TypeVar artifacts during collection inference (#​26714)
LSP server
  • Avoid broad invalidation from file check eligibility (#​26741)
  • Correct how we expand tabs in docstrings (#​26679)
  • Resolve ambiguity in Google-style docstring parsing in favour of observations from popular projects (#​26673)
CLI
  • Avoid allocation for every stdout write (#​26698)
  • Buffer diagnostic output (#​26702)
Performance
  • Cache generic context (#​26745)
  • Cache known class instances (#​26746)
  • Reuse common TypedDict constraints through intersections (#​26747)
  • Use purpose-specific types for completion and module text (#​26664)
Contributors

v0.0.58

Compare Source

Released on 2026-07-09.

Bug fixes
  • Fix protocol matching for class variables (#​26669)
  • Fix reflected binary dispatch for runtime classes (#​26623)
  • Support cached properties in protocols (#​26681)
Diagnostics
  • Add assignability context to upper-bound diagnostics (#​26645)
  • Add blanket ignore comment rule (#​26426)
  • Improve protocol attribute diagnostic context (#​26644)
Library support
  • Pydantic: Add fields from mixin classes (#​26631)
  • Pydantic: Add support for validate_by_{name,alias} (#​26598)
  • Pydantic: Add support for validation_alias (#​26629)
  • Pydantic: Fix float conversion in unions (#​26655)
  • Pydantic: Ignore private attributes (#​26630)
  • Pydantic: Make BaseSettings fields optional by default ([#​26628](https://redirect.github.

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/python-dev-dependencies branch 9 times, most recently from 9d60191 to e6c2099 Compare August 1, 2026 19:41
@renovate
renovate Bot force-pushed the renovate/python-dev-dependencies branch 3 times, most recently from f693322 to 7ee55f1 Compare August 7, 2026 01:59
@renovate
renovate Bot force-pushed the renovate/python-dev-dependencies branch from 7ee55f1 to a73530f Compare August 7, 2026 10:06
@renovate
renovate Bot merged commit c3af37b into main Aug 7, 2026
5 checks passed
@renovate
renovate Bot deleted the renovate/python-dev-dependencies branch August 7, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants