Skip to content

chore(deps): update all dependencies#627

Merged
renovate[bot] merged 1 commit intomainfrom
renovate/all
Oct 20, 2025
Merged

chore(deps): update all dependencies#627
renovate[bot] merged 1 commit intomainfrom
renovate/all

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Oct 20, 2025

This PR contains the following updates:

Package Change Age Confidence Type Update Pending
ansible-creator (changelog) 25.9.0 -> 25.10.0 age confidence project.dependencies minor
ansible-pylibssh ==1.2.2 -> ==1.3.0 age confidence project.optional-dependencies minor
astral-sh/ruff-pre-commit v0.14.0 -> v0.14.1 age confidence repository patch
astral-sh/uv-pre-commit 0.9.2 -> 0.9.3 age confidence repository patch 0.9.4
coverage 7.10.7 -> 7.11.0 age confidence dependency-groups minor
pycqa/pylint v3.3.9 -> v4.0.1 age confidence repository major
All locks refreshed lockFileMaintenance
pylint (changelog) 4.0.0 -> 4.0.1 age confidence dependency-groups patch
ruff (source, changelog) 0.14.0 -> 0.14.1 age confidence dependency-groups patch

Note: The pre-commit manager in Renovate is not supported by the pre-commit maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.


Release Notes

ansible/ansible-creator (ansible-creator)

v25.10.0

Compare Source

Features

Fixes

Maintenance

ansible/pylibssh (ansible-pylibssh)

v1.3.0

Compare Source

======

(2025-10-12)

Bug fixes

  • The bundled libssh 0.11.2 no longer fails, when the SFTP server announces
    protocol version 3, but does not provide error message and language tag
    in the SSH_FXP_STATUS message -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:222.

  • Fixed reading files over SFTP that go over the pre-defined chunk size.

    Prior to this change, the files could end up being corrupted, ending up with the last read chunk written to the file instead of the entire payload.

    -- by :user:Jakuje

    Related issues and pull requests on GitHub:
    :issue:638.

  • Repetitive calls to exec_channel() no longer crash and return reliable output -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:658.

  • Uploading large files over SCP no longer fails -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:661.

  • Improved performance of SFTP transfers by using larger transfer chunks -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:664.

  • Fixed crash when more operations were called after session.close() -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:709.

Features

  • The underlying SSH_OPTIONS_KEY_EXCHANGE option of libssh is
    now available as key_exchange_algorithms -- by :user:NilashishC.

    Related issues and pull requests on GitHub:
    :issue:675.

  • Added a pylibsshext.session.connect() parameter
    open_session_retries -- by :user:justin-stephenson.

    The open_session_retries session connect()
    parameter allows a configurable number of retries if
    libssh ssh_channel_open_session() returns SSH_AGAIN.
    The default option value is 0, no retries will be
    attempted.

    Related issues and pull requests on GitHub:
    :issue:756.

  • Added a pylibsshext.session.connect() parameter
    timeout_usec to set SSH_OPTIONS_TIMEOUT_USEC.

    This allows setting the SSH_OPTIONS_TIMEOUT_USEC
    ssh option, though SSH_OPTIONS_TIMEOUT is a more
    practical option.

    -- by :user:justin-stephenson

    Related issues and pull requests on GitHub:
    :issue:756.

Deprecations (removal in next major release)

  • The project stopped being tested under Ubuntu 20.04 VM since
    GitHub has sunset their CI images -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:708.

Removals and backward incompatible breaking changes

  • Dropped support for Python 3.6, 3.7 and 3.8
    -- by :user:Qalthos and :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:532, :issue:718.

  • PyPI no longer ships year-versioned manylinux wheels. One may
    have to update their version of pip to pick up the new ones.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:562.

Improved documentation

  • Added a :ref:Communication <communication> section to the main
    documentation page -- by :user:Andersson007.

    Related issues and pull requests on GitHub:
    :issue:640.

  • Fixed the argument order in the scp.put() usage example
    -- by :user:kucharskim.

    Related issues and pull requests on GitHub:
    :issue:646.

Packaging updates and notes for downstreams

  • PyPI now only ships :pep:600-compatible manylinux wheels
    -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:562.

  • The pytest-forked dependency of build, development and test environments was removed -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:658, :issue:760.

  • The wheels are now built in cached container images with a
    correctly set platform identifier.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:692.

  • The manylinux build scripts now limit cmake below
    version 4 -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:713.

  • Stopped skipping SCP tests in the RPM spec -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:714.

  • Started bundling a copy of libssh 0.11.1 in platform-specific
    wheels published on PyPI -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:735.

  • Updated the bundled copy of OpenSSL to the latest version 3.5.0
    in manylinux wheels -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:738.

  • Updated the bundled version of libssh to 0.11.2 in platform-specific
    wheels published on PyPI -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:753.

  • The RPM spec file no longer makes use of unpackaged dists
    from PyPI on RHEL. The configuration is almost identical to
    the one for Fedora. Only the setuptools-scm spec is
    temporarily patched to allow older versions under RHEL.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:759.

  • A workaround has been applied to the in-tree build backend that prevents
    Cython from hanging when libssh header files are missing
    -- by :user:webknjaz.

    The patch makes cythonize() single-threaded because :mod:multiprocessing
    gets stuck. The upstream will eventually fix this by migrating to
    :mod:concurrent.futures.

    Related issues and pull requests on GitHub:
    :issue:762, :issue:769, :issue:770.

  • Updated the bundled version of libssh to 0.11.3 in platform-specific
    wheels published on PyPI -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:766.

Contributor-facing changes

  • The manylinux build scripts have been adjusted to resolve the
    dependency conflict between certain packaging and setuptools
    versions -- by :user:webknjaz.

    Previously, this was making some of the CI jobs crash with a traceback
    when building said wheels.

    Related commits on GitHub:
    :commit:1dfbf70fdfd99ae75068fdb3630790c96101a96a.

  • The Git archives are now immutable per the packaging recommendations.
    This allows downstreams safely use GitHub archive URLs when
    re-packaging -- by :user:webknjaz.

    Related commits on GitHub:
    :commit:ea34887831a0c6547b32cd8c6a035bb77b91e771.

  • Manylinux wheels are no longer built using custom shell scripts.
    Instead, this is delegated to the cibuildwheel tool.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:562.

  • Updated the version of libssh to the latest release v0.11.1
    in the cached manylinux build environment container images
    -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:636.

  • All the uses of actions/upload-artifact@v3 and
    actions/download-artifact@v3 have been updated to use
    v4. This also includes bumping
    re-actors/checkout-python-sdist to release/v2 as it
    uses actions/download-artifact internally.

    -- by :user:NilashishC and :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:676.

  • The dumb-pypi-produced static package index now renders correct
    URLs to the distribution packages -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:678, :issue:679, :issue:749.

  • The CI is now configured to use
    :external+tox:std:ref:tox-run---installpkg when testing
    pre-built dists. This replaces the previously existing
    tox-level hacks in test-binary-dists and
    test-source-dists environments that have now been
    removed.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:688.

  • The wheel building workflows have been updated to set the
    OCI image platform identifiers to legal values like
    linux/arm64.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:692.

  • The CI is now configured to always set job timeout values.
    This will ensure that the jobs that get stuck don't consume
    all 6 hours just hanging, improving responsiveness and the
    overall CI/CD resource usage.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:706.

  • The linting is now configured to check schemas of the
    Read The Docs configuration file and the GitHub Actions
    CI/CD workflow files in addition to enforcing timeouts.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:707.

  • The multiarch/qemu-user-static image got replaced with
    tonistiigi/binfmt because the latter is no longer
    maintained and the former includes the fixed version of QEMU.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:713.

  • Added Fedora 41 and 42 to CI configuration -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:715.

  • Removed needless step from CI adjusting centos8 repositories -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:716.

  • The CI/CD infrastructure no longer pre-builds custom manylinux images
    for building wheel targeting manylinux1, manylinux2010 and
    manylinux2014 tags.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:730.

  • The host OS is now ARM-based when building manylinux_*_*_aarch64
    images for CI/CD -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:731.

  • False negative warnings reported by coveragepy when are now
    disabled. They are evident when pytest-cov runs with the
    pytest-xdist integration. pytest 8.4 gives them more
    visibility and out filterwarnings = error setting was turning
    them into errors before this change.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:732.

  • GitHub Actions CI/CD no longer runs jobs that install source
    distributions into the tox environments for testing
    -- by :user:webknjaz.

    This is a temporary workaround for an upstream bug in tox and
    said jobs are non-essential.

    Related issues and pull requests on GitHub:
    :issue:733.

  • Updated the pre-built libffi version to 3.4.8 in the
    cached manylinux build environment container images
    -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:734.

  • Reverted workaround keeping the old CMake version installed
    as the new libssh works with newer versions -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:737.

  • The CI infrastructure now produces manylinux_2_31_armv7l base images
    with libssh and openssl pre-built -- by :user:Jakuje and
    :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:740.

  • Started caching manylinux build images to be used for producing 2_34 tagged wheels
    in build-manylinux-container-images workflow -- by :user:KB-perByte.

    Related issues and pull requests on GitHub:
    :issue:741.

  • The :file:reusable-cibuildwheel.yml workflow has been refactored to
    be more generic and :file:ci-cd.yml now holds all the configuration
    toggles -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:750.

  • Updated the version of libssh to the latest release v0.11.2
    in the cached manylinux build environment container images
    -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:752.

  • When building wheels, the source distribution is now passed directly
    to the cibuildwheel invocation -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:754.

  • Fixed link to python3-pytest for CentOS 9 Stream as it was recently moved from
    CRB to AppStream -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:758.

  • The CI/CD jobs for smoke-testing RPMs have been simplified
    and now, they execute the same steps for all distro types.
    They make use of pyproject-rpm-macros even under RHEL.
    Installing external RPMs is the only conditional step that
    is skipped on Fedora.

    -- by :user:webknjaz

    Related issues and pull requests on GitHub:
    :issue:759.

  • The requires setting has been removed from :file:tox.ini, which
    works around the upstream tool bug. This enabled us to re-introduce
    CI jobs testing against sdist under Python 3.12 and newer
    -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    :issue:764.

  • Updated the version of libssh to the latest release v0.11.3
    in the cached manylinux build environment container images
    -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:765.

  • Changed tests to use more lightweight ECDSA keys to avoid
    timeouts -- by :user:Jakuje.

    Related issues and pull requests on GitHub:
    :issue:768.


astral-sh/ruff-pre-commit (astral-sh/ruff-pre-commit)

v0.14.1

Compare Source

See: https://github.com/astral-sh/ruff/releases/tag/0.14.1

astral-sh/uv-pre-commit (astral-sh/uv-pre-commit)

v0.9.3

Compare Source

See: https://github.com/astral-sh/uv/releases/tag/0.9.3

nedbat/coveragepy (coverage)

v7.11.0

Compare Source

  • Dropped support for Python 3.9, declared support for Python 3.15 alpha.

.. _changes_7-10-7:

pycqa/pylint (pycqa/pylint)

v4.0.1

Compare Source

What's new in Pylint 4.0.1?

Release date: 2025-10-14

False Positives Fixed

  • Exclude __all__ and __future__.annotations from unused-variable.

    Closes #​10019

  • Fix false-positive for bare-name-capture-pattern if a case guard is used.

    Closes #​10647

  • Check enums created with the Enum() functional syntax to pass against the
    --class-rgx for the invalid-name check, like other enums.

    Closes #​10660

v4.0.0

Compare Source

  • Pylint now supports Python 3.14.

  • Pylint's inference engine (astroid) is now much more precise,
    understanding implicit booleanness and ternary expressions. (Thanks @​zenlyj!)

Consider this example:

class Result:
    errors: dict | None = None

result = Result()
if result.errors:
    result.errors[field_key]

### inference engine understands result.errors cannot be None
### pylint no longer raises unsubscriptable-object

The required astroid version is now 4.0.0. See the astroid changelog for additional fixes, features, and performance improvements applicable to pylint.

  • Handling of invalid-name at the module level was patchy. Now,
    module-level constants that are reassigned are treated as variables and checked
    against --variable-rgx rather than --const-rgx. Module-level lists,
    sets, and objects can pass against either regex.

Here, LIMIT is reassigned, so pylint only uses --variable-rgx:

LIMIT = 500  # [invalid-name]
if sometimes:
    LIMIT = 1  # [invalid-name]

If this is undesired, refactor using exclusive assignment so that it is
evident that this assignment happens only once:

if sometimes:
    LIMIT = 1
else:
    LIMIT = 500  # exclusive assignment: uses const regex, no warning

Lists, sets, and objects still pass against either const-rgx or variable-rgx
even if reassigned, but are no longer completely skipped:

MY_LIST = []
my_list = []
My_List = []  # [invalid-name]

Remember to adjust the regexes and allow lists to your liking.

Breaking Changes

  • invalid-name now distinguishes module-level constants that are assigned only once
    from those that are reassigned and now applies --variable-rgx to the latter. Values
    other than literals (lists, sets, objects) can pass against either the constant or
    variable regexes (e.g. "LOGGER" or "logger" but not "LoGgEr").

    Remember that --good-names or --good-names-rgxs can be provided to explicitly
    allow good names.

    Closes #​3585

  • The unused pylintrc argument to PyLinter.__init__() is deprecated
    and will be removed.

    Refs #​6052

  • Commented out code blocks such as # bar() # TODO: remove dead code will no longer emit fixme.

    Refs #​9255

  • pyreverse Run was changed to no longer call sys.exit() in its __init__.
    You should now call Run(args).run() which will return the exit code instead.
    Having a class that always raised a SystemExit exception was considered a bug.

    Normal usage of pyreverse through the CLI will not be affected by this change.

    Refs #​9689

  • The suggestion-mode option was removed, as pylint now always emits user-friendly hints instead
    of false-positive error messages. You should remove it from your conf if it's defined.

    Refs #​9962

  • The async.py checker module has been renamed to async_checker.py since async is a Python keyword
    and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.

    Refs #​10071

  • The message-id of continue-in-finally was changed from E0116 to W0136. The warning is
    now emitted for every Python version since it will raise a syntax warning in Python 3.14.
    See PEP 765 - Disallow return/break/continue that exit a finally block.

    Refs #​10480

  • Removed support for nmp.NaN alias for numpy.NaN being recognized in ':ref:nan-comparison'. Use np or numpy instead.

    Refs #​10583

  • Version requirement for isort has been bumped to >=5.0.0.
    The internal compatibility for older isort versions exposed via pylint.utils.IsortDriver has
    been removed.

    Refs #​10637

New Features

  • comparison-of-constants now uses the unicode from the ast instead of reformatting from
    the node's values preventing some bad formatting due to utf-8 limitation. The message now uses
    " instead of ' to better work with what the python ast returns.

    Refs #​8736

  • Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.

    Closes #​9045
    Closes #​9267

  • The fixme check can now search through docstrings as well as comments, by using
    check-fixme-in-docstring = true in the [tool.pylint.miscellaneous] section.

    Closes #​9255

  • The use-implicit-booleaness-not-x checks now distinguish between comparisons
    used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.

    Closes #​9353

  • The verbose option now outputs the filenames of the files that have been checked.
    Previously, it only included the number of checked and skipped files.

    Closes #​9357

  • colorized reporter now colorizes messages/categories that have been configured as fail-on in red inverse.
    This makes it easier to quickly find the errors that are causing pylint CI job failures.

    Closes #​9898

  • Enhanced support for @​property decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.

    Closes #​10057

  • Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.
    This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.

    Refs #​10077

  • Handle deferred evaluation of annotations in Python 3.14.

    Closes #​10149

  • Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).

    Closes #​10236

  • pyreverse: add support for colorized output when using output format mmd (MermaidJS) and html.

    Closes #​10242

  • pypy 3.11 is now officially supported.

    Refs #​10287

  • Add support for Python 3.14.

    Refs #​10467

  • Add naming styles for ParamSpec and TypeVarTuple that align with the TypeVar style.

    Refs #​10541

New Checks

  • Add match-statements checker and the following message:
    bare-name-capture-pattern.
    This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.
    This code is a SyntaxError at runtime.

    Closes #​7128

  • Add new check async-context-manager-with-regular-with to detect async context managers used with regular with statements instead of async with.

    Refs #​10408

  • Add break-in-finally warning. Using break inside the finally clause
    will raise a syntax warning in Python 3.14.
    See PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>_.

    Refs #​10480

  • Add new checks for invalid uses of class patterns in :keyword:match.

    • :ref:invalid-match-args-definition is emitted if :py:data:object.__match_args__ isn't a tuple of strings.
    • :ref:too-many-positional-sub-patterns if there are more positional sub-patterns than specified in :py:data:object.__match_args__.
    • :ref:multiple-class-sub-patterns if there are multiple sub-patterns for the same attribute.

    Refs #​10559

  • Add additional checks for suboptimal uses of class patterns in :keyword:match.

    • :ref:match-class-bind-self is emitted if a name is bound to self instead of
      using an as pattern.
    • :ref:match-class-positional-attributes is emitted if a class pattern has positional
      attributes when keywords could be used.

    Refs #​10587

  • Add a consider-math-not-float message. float("nan") and float("inf") are slower
    than their counterpart math.inf and math.nan by a factor of 4 (notwithstanding
    the initial import of math) and they are also not well typed when using mypy.
    This check also catches typos in float calls as a side effect.

    The :ref:pylint.extensions.code_style need to be activated for this check to work.

    Refs #​10621

False Positives Fixed

  • Fix a false positive for used-before-assignment when a variable defined under
    an if and via a named expression (walrus operator) is used later when guarded
    under the same if test.

    Closes #​10061

  • Fix :ref:no-name-in-module for members of concurrent.futures with Python 3.14.

    Closes #​10632

False Negatives Fixed

  • Fix false negative for used-before-assignment when a TYPE_CHECKING import is used as a type annotation prior to erroneous usage.

    Refs #​8893

  • Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.

    Refs #​9667

  • Check module-level constants with type annotations for invalid-name.
    Remember to adjust const-naming-style or const-rgx to your liking.

    Closes #​9770

  • Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.

    Closes #​9894

  • We now raise a logging-too-few-args for format string with no
    interpolation arguments at all (i.e. for something like logging.debug("Awaiting process %s")
    or logging.debug("Awaiting process {pid}")). Previously we did not raise for such case.

    Closes #​9999

  • Fix false negative for used-before-assignment when a function is defined inside a TYPE_CHECKING guard block and used later.

    Closes #​10028

  • Fix a false negative for possibly-used-before-assignment when a variable is conditionally defined
    and later assigned to a type-annotated variable.

    Closes #​10421

  • Fix false negative for deprecated-module when a __import__ method is used instead of import sentence.

    Refs #​10453

  • Count match cases for too-many-branches check.

    Refs #​10542

  • Fix false-negative where :ref:unused-import was not reported for names referenced in a preceding global statement.

    Refs #​10633

Other Bug Fixes

  • When displaying unicode with surrogates (or other potential UnicodeEncodeError),
    pylint will now display a '?' character (using encode(encoding="utf-8", errors="replace"))
    instead of crashing. The functional tests classes are also updated to handle this case.

    Closes #​8736

  • Fixed unidiomatic-typecheck only checking left-hand side.

    Closes #​10217

  • Fix a crash caused by malformed format strings when using .format with keyword arguments.

    Closes #​10282

  • Fix false positive inconsistent-return-statements when using quit() or exit() functions.

    Closes #​10508

  • Fix a crash in :ref:nested-min-max when using builtins.min or builtins.max
    instead of min or max directly.

    Closes #​10626

  • Fixed a crash in :ref:unnecessary-dict-index-lookup when the index of an enumerated list
    was deleted inside a for loop.

    Closes #​10627

Other Changes

  • Remove support for launching pylint with Python 3.9.
    Code that supports Python 3.9 can still be linted with the --py-version=3.9 setting.

    Refs #​10405

Internal Changes

  • Modified test framework to allow for different test output for different Python versions.

    Refs #​10382

pylint-dev/pylint (pylint)

v4.0.1

Compare Source

What's new in Pylint 4.0.1?

Release date: 2025-10-14

False Positives Fixed

  • Exclude __all__ and __future__.annotations from unused-variable.

    Closes #​10019

  • Fix false-positive for bare-name-capture-pattern if a case guard is used.

    Closes #​10647

  • Check enums created with the Enum() functional syntax to pass against the
    --class-rgx for the invalid-name check, like other enums.

    Closes #​10660

astral-sh/ruff (ruff)

v0.14.1

Compare Source

Released on 2025-10-16.

Preview features
  • [formatter] Remove parentheses around multiple exception types on Python 3.14+ (#​20768)
  • [flake8-bugbear] Omit annotation in preview fix for B006 (#​20877)
  • [flake8-logging-format] Avoid dropping implicitly concatenated pieces in the G004 fix (#​20793)
  • [pydoclint] Implement docstring-extraneous-parameter (DOC102) (#​20376)
  • [pyupgrade] Extend UP019 to detect typing_extensions.Text (UP019) (#​20825)
  • [pyupgrade] Fix false negative for TypeVar with default argument in non-pep695-generic-class (UP046) (#​20660)
Bug fixes
  • Fix false negatives in Truthiness::from_expr for lambdas, generators, and f-strings (#​20704)
  • Fix syntax error false positives for escapes and quotes in f-strings (#​20867)
  • Fix syntax error false positives on parenthesized context managers (#​20846)
  • [fastapi] Fix false positives for path parameters that FastAPI doesn't recognize (FAST003) (#​20687)
  • [flake8-pyi] Fix operator precedence by adding parentheses when needed (PYI061) (#​20508)
  • [ruff] Suppress diagnostic for f-string interpolations with debug text (RUF010) (#​20525)
Rule changes
  • [airflow] Add warning to airflow.datasets.DatasetEvent usage (AIR301) (#​20551)
  • [flake8-bugbear] Mark B905 and B912 fixes as unsafe (#​20695)
  • Use DiagnosticTag for more rules - changes display in editors (#​20758,#​20734)
Documentation
  • Update Python compatibility from 3.13 to 3.14 in README.md (#​20852)
  • Update lint.flake8-type-checking.quoted-annotations docs (#​20765)
  • Update setup instructions for Zed 0.208.0+ (#​20902)
  • [flake8-datetimez] Clarify docs for several rules (#​20778)
  • Fix typo in RUF015 description (#​20873)
Other changes
  • Reduce binary size (#​20863)
  • Improved error recovery for unclosed strings (including f- and t-strings) (#​20848)
Contributors

Configuration

📅 Schedule: Branch creation - "before 4am on monday" in timezone UTC, Automerge - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) in timezone UTC.

🚦 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 merged commit c3dd95a into main Oct 20, 2025
30 checks passed
@renovate renovate bot deleted the renovate/all branch October 20, 2025 01:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

1 participant