FAQ | This is a LIVE service | Changelog

Skip to content

fix(deps): update all dependencies

This MR contains the following updates:

Package Type Update Change Age Confidence
DavidAnson/markdownlint-cli2 repository minor v0.18.1 -> v0.20.0 age confidence
black (changelog) minor ==25.9.0 -> ==25.11.0 age confidence
copier minor ==9.10.3 -> ==9.11.0 age confidence
coverage minor ==7.11.0 -> ==7.12.0 age confidence
django (changelog) major ==5.2.7 -> ==6.0 age confidence
django-crispy-forms (changelog) minor ==2.4 -> ==2.5 age confidence
django-debug-toolbar (changelog) minor ==6.0.0 -> ==6.1.0 age confidence
django-structlog (changelog) major ==9.1.1 -> ==10.0.0 age confidence
drf-spectacular minor ==0.28.0 -> ==0.29.0 age confidence
editorconfig-checker/editorconfig-checker.python repository minor 3.4.0 -> 3.6.0 age confidence
faker (changelog) major ==37.11.0 -> ==38.2.0 age confidence
ipython minor ==9.6.0 -> ==9.8.0 age confidence
mkdocs-gen-files (changelog) minor ==0.5.0 -> ==0.6.0 age confidence
mkdocs-material (changelog) minor ==9.6.22 -> ==9.7.0 age confidence
mkdocstrings (changelog) major ==0.30.1 -> ==1.0.0 age confidence
mkdocstrings-python (changelog) major ==1.18.2 -> ==2.0.1 age confidence
postgres service-image digest 073e7c8 -> 5ec39c1
pre-commit minor ==4.3.0 -> ==4.5.0 age confidence
pre-commit/mirrors-mypy repository minor v1.18.2 -> v1.19.0 age confidence
psf/black repository minor 25.9.0 -> 25.11.0 age confidence
psycopg (source, changelog) minor ==3.2.11 -> ==3.3.2 age confidence
pytest (changelog) major ==8.4.2 -> ==9.0.2 age confidence
structlog (changelog) minor ==25.4.0 -> ==25.5.0 age confidence
tox (changelog) minor ==4.31.0 -> ==4.32.0 age confidence
uis/devops/continuous-delivery/ci-templates repository minor v7.19.0 -> v7.23.1 age confidence

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

DavidAnson/markdownlint-cli2 (DavidAnson/markdownlint-cli2)

v0.20.0

Compare Source

v0.19.1

Compare Source

v0.19.0

Compare Source

psf/black (black)

v25.11.0

Compare Source

Highlights
  • Enable base 3.14 support (#​4804)
  • Add support for the new Python 3.14 t-string syntax introduced by PEP 750 (#​4805)
Stable style
  • Fix bug where comments between # fmt: off and # fmt: on were reformatted (#​4811)
  • Comments containing fmt directives now preserve their exact formatting instead of being normalized (#​4811)
Preview style
  • Move multiline_string_handling from --unstable to --preview (#​4760)
  • Fix bug where module docstrings would be treated as normal strings if preceded by comments (#​4764)
  • Fix bug where python 3.12 generics syntax split line happens weirdly (#​4777)
  • Standardize type comments to form # type: <value> (#​4645)
  • Fix fix_fmt_skip_in_one_liners preview feature to respect # fmt: skip for compound statements with semicolon-separated bodies (#​4800)
Configuration
  • Add no_cache option to control caching behavior. (#​4803)
Packaging
  • Releases now include arm64 Linux binaries (#​4773)
  • Releases now include arm64 Windows binaries and wheels (#​4814)
Output
  • Write unchanged content to stdout when excluding formatting from stdin using pipes (#​4610)
Blackd
  • Implemented BlackDClient. This simple python client allows to easily send formatting requests to blackd (#​4774)
Integrations
  • Enable 3.14 base CI (#​4804)
  • Enhance GitHub Action psf/black to support the required-version major-version-only "stability" format when using pyproject.toml (#​4770)
  • Improve error message for vim plugin users. It now handles independently vim version
  • Vim: Warn on unsupported Vim and Python versions independently (#​4772)
  • Vim: Print the import paths when importing black fails (#​4675)
  • Vim: Fix handling of virtualenvs that have a different Python version (#​4675)
copier-org/copier (copier)

v9.11.0

Compare Source

Feat
  • updating: allow updating a dirty Git repository when the subproject directory is clean (#​2369)
  • add support for custom question icons (#​2381)
  • add support for conditionally unsetting a question's default value
Fix
  • raise warning instead of error when chmod is not allowed
  • fix using default answers from settings for required questions (#​2374)
Refactor
  • drop support for Python 3.9
coveragepy/coveragepy (coverage)

v7.12.0

Compare Source

  • The HTML report now shows separate coverage totals for statements and branches, as well as the usual combined coverage percentage. Thanks to Ryuta Otsuka for the discussion <issue 2081_>_ and the implementation <pull 2085_>_.

  • The JSON report now includes separate coverage totals for statements and branches, thanks to Ryuta Otsuka <pull 2090_>_.

  • Fix: except* clauses were not handled properly under the "sysmon" measurement core, causing KeyError exceptions as described in issue 2086_. This is now fixed.

  • Fix: we now defend against aggressive mocking of open() that could cause errors inside coverage.py. An example of a failure is in issue 2083_.

  • Fix: in unusual cases where a test suite intentionally exhausts the system's file descriptors to test handling errors in open(), coverage.py would fail when trying to open source files, as described in issue 2091_. This is now fixed.

  • A small tweak to the HTML report: file paths now use thin spaces around slashes to make them easier to read.

.. _issue 2081: #​2081 .. _issue 2083: #​2083 .. _pull 2085: #​2085 .. _issue 2086: #​2086 .. _pull 2090: #​2090 .. _issue 2091: #​2091

.. _changes_7-11-3:

v7.11.3

Compare Source

  • Fix: the 7.11.1 changes meant that conflicts between a requested measurement core and other settings would raise an error. This was a breaking change from previous behavior, as reported in issue 2076_ and issue 2078_.

    The previous behavior has been restored: when the requested core conflicts with other settings, another core is used instead, and a warning is issued.

  • For contributors: the repo has moved from Ned's nedbat GitHub account_ to the coveragepy GitHub organization_. The default branch has changed from master to main.

.. _issue 2076: #​2076 .. _issue 2078: #​2078 .. _nedbat GitHub account: https://github.com/nedbat .. _coveragepy GitHub organization: https://github.com/coveragepy

.. _changes_7-11-2:

v7.11.2

Compare Source

  • Fix: using the "sysmon" measurement core in 7.11.1, if Python code was claimed to come from a non-Python file, a NotPython exception could be raised. This could happen for example with Jinja templates compiled to Python, as reported in issue 2077_. This is now fixed.

  • Doc: corrected the first entry in the 7.11.1 changelog.

.. _issue 2077: #​2077

.. _changes_7-11-1:

v7.11.1

Compare Source

  • Fix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The "sysmon" core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.

    • If the core is not specified and defaults to "sysmon" (Python 3.14+), but other settings conflict with sysmon, then the "ctrace" core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in issue 2064_.

    • If the "sysmon" core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.

  • Fix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in issue 2070_. This is now fixed.

  • Fix: when running in pytest under coverage, a breakpoint() would stop in the wrong frame, one level down from where it should, as described in issue 1420_. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improvement, but I couldn't reproduce the performance gain, so it's been reverted, fixing the debugger problem.

  • A new debug option --debug=core shows which core is in use and why.

  • Split sqlite debugging information out of the sys :ref:coverage debug <cmd_debug> and :ref:cmd_run_debug options since it's bulky and not very useful.

  • Updated the :ref:howitworks page to better describe the three different measurement cores.

.. _issue 1420: #​1420 .. _issue 2064: #​2064 .. _issue 2070: #​2070

.. _changes_7-11-0:

django/django (django)

v6.0

Compare Source

v5.2.9

Compare Source

v5.2.8

Compare Source

django-crispy-forms/django-crispy-forms (django-crispy-forms)

v2.5

Compare Source

  • Confirmed support for Python 3.14.
  • Confirmed support for Django 6.0.
  • Dropped support for Python 3.8.
django-commons/django-debug-toolbar (django-debug-toolbar)

v6.1.0

Compare Source

What's Changed

See change log here

Commits:

New Contributors

Full Changes: https://github.com/django-commons/django-debug-toolbar/compare/6.0.0...6.1.0

jrobichaud/django-structlog (django-structlog)

v10.0.0

Compare Source

tfranzel/drf-spectacular (drf-spectacular)

v0.29.0

Compare Source

  • Add l18n handling for Decimal field #&#8203;1466 <https://github.com/tfranzel/drf-spectacular/issues/1466>_
  • Fix LogoutSerializer for JWT/dj_rest_auth #&#8203;1392 <https://github.com/tfranzel/drf-spectacular/issues/1392>_
  • fix: support token blacklist feature in rest_auth [Bart van Andel]
  • [django-filter] Add null_label if set in ChoiceFilter (#&#8203;1450 <https://github.com/tfranzel/drf-spectacular/issues/1450>_) [Enric Pou]
  • fix: camelize tuples/fixed length array (#&#8203;1432 <https://github.com/tfranzel/drf-spectacular/issues/1432>_) [Chris Wesseling]
  • Fix items:False case in enum hook #&#8203;1432 <https://github.com/tfranzel/drf-spectacular/issues/1432>_
  • Add option to overwrite serializer description #&#8203;1463 <https://github.com/tfranzel/drf-spectacular/issues/1463>_
  • Fix OpenApiViewExtension not providing view instance under self.target (#&#8203;1405 <https://github.com/tfranzel/drf-spectacular/issues/1405>_) [astro-stan]
  • Move list default fix to source of the problem #&#8203;1436 <https://github.com/tfranzel/drf-spectacular/issues/1436>_
  • Improve confusing doc #&#8203;1461 <https://github.com/tfranzel/drf-spectacular/issues/1461>_
  • Add assert to pagination test #&#8203;1459 <https://github.com/tfranzel/drf-spectacular/issues/1459>_
  • fix SafeString handling for picky CDumper (#&#8203;1435 <https://github.com/tfranzel/drf-spectacular/issues/1435>_)
  • Remove EOL 3.7 from suite; pydantic not updated for <=3.8
  • Fix DecimalField with decimal_places and max_digits equal. [keter2002]
  • fix test for i18n changes on DRF (#&#8203;1444 <https://github.com/tfranzel/drf-spectacular/issues/1444>_)
  • Improve to_filter_name support for django_filter [Matwey V. Kornilov]
  • fixes prefix estimation on windows [Luis Nell]
  • Fix default for array types [Stanislav Khlud]
  • fix: use CSafeDumper for render yaml if available [florian]
  • fix: sort list to produce same hash [florian]
  • Add typing.Generic to default lib_doc_excludes [Max Howald]
  • Add get_doc test for class that inherits from Generic [Max Howald]
  • Add Django REST framework 3.16 support [Paolo Melchiorre]
  • Fix memory leak [artemkucher]
  • Fix python 3.11 slice index [Egor Litvinov]
  • fix: correct port mapping for the container in README [Maksym Bieńkowski]
  • Update docs [q0w]
  • Allow setting callable for ENUM_NAME_OVERRIDES [q0w]
  • Add allauth's DRF token auth #&#8203;1401 <https://github.com/tfranzel/drf-spectacular/issues/1401>_
  • update away from retired GH worker image
  • add condition to check, that serializer Meta has model attribute [aliev_vt]
  • Fix docs compile issue and update some old code (#&#8203;1389 <https://github.com/tfranzel/drf-spectacular/issues/1389>_) [Mike Manger]
  • Fix location of @​extend_schema_field [johnthagen]
  • Remove reference to non-exposed lazy_serializer [johnthagen]
  • Document how to lazily define a recursive SerializerMethod [johnthagen]
  • Link to SerializerMethod docs [johnthagen]
  • Document Django 5.1 support in README [johnthagen]
  • Bump django from 4.2.11 to 4.2.18 in /requirements [dependabot[bot]]
  • Enhance bug report template with instructions for better clarity [antoliny0919]
  • add pydantic computed field to tests #&#8203;1354 <https://github.com/tfranzel/drf-spectacular/issues/1354>_

Breaking changes / important additions:

  • Finally fixed the memory leak thanks to @​artKucher.
  • Another performance improvement is the usage of the C versions of yaml, if available.
  • Apart from that, there are a lot of small improvements and bugfixes.
editorconfig-checker/editorconfig-checker.python (editorconfig-checker/editorconfig-checker.python)

v3.6.0

Compare Source

v3.5.0

Compare Source

v3.4.1

Compare Source

joke2k/faker (faker)

v38.2.0

Compare Source

v38.1.0

Compare Source

v38.0.0

Compare Source

  • Drop support for Python 3.9
  • Add support for Python 3.14

v37.12.0

Compare Source

ipython/ipython (ipython)

v9.8.0

Compare Source

v9.7.0

Compare Source

oprypin/mkdocs-gen-files (mkdocs-gen-files)

v0.6.0

Compare Source

  • Compatibility with MkDocs 1.6 is improved - generated files don't have to have an abs_src_path - 7baa032

  • There was a bug: using edit_uri_template in MkDocs would prevent set_edit_path() from working. This is now fixed - #​37 - thanks to @​frankkusters

  • The MkDocs configuration file now can be mkdocs.yaml, not only mkdocs.yml. Thanks to @​mgor in #​39

  • MkDocs 1.4.1 is now the lowest supported version - 2e47124

  • Python 3.9 is now the lowest supported version.

  • The nav generator can support empty paths - 440b0bf

Full Changelog: https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0

squidfunk/mkdocs-material (mkdocs-material)

v9.7.0: mkdocs-material-9.7.0

Compare Source

[!WARNING]

Material for MkDocs is now in maintenance mode

This is the last release of Material for MkDocs that will receive new features. Going forward, the Material for MkDocs team focuses on Zensical, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs for 12 months at least.

Read the full announcement on our blog

This release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.

Note on deprecated plugins: The projects and typeset plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.

Changes:

  • Added support for projects plugin (for compat, now deprecated)
  • Added support for typeset plugin (for compat, now deprecated)
  • Added support for pinned blog posts and author profiles
  • Added support for customizing pagination for blog index pages
  • Added support for customizing blog category sort order
  • Added support for staying on page when switching languages
  • Added support for disabling tags in table of contents
  • Added support for nested tags and shadow tags
  • Added support for footnote tooltips
  • Added support for instant previews
  • Added support for instant prefetching
  • Added support for custom social card layouts
  • Added support for custom social card background images
  • Added support for selectable rangs in code blocks
  • Added support for custom selectors for code annotations
  • Added support for configurable log level in privacy plugin
  • Added support for processing of external links in privacy plugin
  • Added support for automatic image optimization via optimize plugin
  • Added support for navigation paths (breadcrumbs)
  • Fixed #​8519: Vector accents do not render when using KaTeX

v9.6.23: mkdocs-material-9.6.23

Compare Source

  • Updated Burmese translation
mkdocstrings/mkdocstrings (mkdocstrings)

v1.0.0

Compare Source

Compare with 0.30.1

Breaking Changes
  • BaseHandler.name: Attribute value was changed: '' -> unset
  • BaseHandler.domain: Attribute value was changed: '' -> unset
  • BaseHandler.fallback_config: Public object was removed
  • BaseHandler.__init__(args): Parameter was removed
  • BaseHandler.__init__(kwargs): Parameter was removed
  • BaseHandler.__init__(theme): Parameter was added as required
  • BaseHandler.__init__(custom_templates): Parameter was added as required
  • BaseHandler.__init__(mdx): Parameter was added as required
  • BaseHandler.__init__(mdx_config): Parameter was added as required
  • BaseHandler.update_env(args): Parameter was removed
  • BaseHandler.update_env(kwargs): Parameter was removed
  • BaseHandler.update_env(config): Parameter was added as required
  • Handlers.get_anchors: Public object was removed (import from mkdocstrings directly)
  • mkdocstrings.plugin: Public module was removed (import from mkdocstrings directly)
  • mkdocstrings.loggers: Public module was removed (import from mkdocstrings directly)
  • mkdocstrings.inventory: Public module was removed (import from mkdocstrings directly)
  • mkdocstrings.extension: Public module was removed (import from mkdocstrings directly)
  • mkdocstrings.handlers: Public module was removed (import from mkdocstrings directly)
Code Refactoring
  • Remove deprecated code before v1 (de34044 by Timothée Mazzucotelli).
  • Expect Zensical to pass extension configuration instead of loading it again from YAML (6b73d5a by Timothée Mazzucotelli).
  • Expose the Markdown extension, to make mkdocstrings compatible with Zensical (6de2667 by Timothée Mazzucotelli).
mkdocstrings/python (mkdocstrings-python)

v2.0.1

Compare Source

Compare with 2.0.0

Bug Fixes
  • Don't ignore filters when category grouping is disabled (63aa1b0 by Timothée Mazzucotelli). Issue-324
Code Refactoring
  • Localize more contents in templates (854b6a6 by Zhikang Yan). MR-321
  • Improve ja/zh translations (b83107c by Zhikang Yan). MR-322

v2.0.0

Compare Source

Compare with 1.19.0

Code Refactoring
  • Remove deprecated code for v2 (c10afdb by Timothée Mazzucotelli).

v1.19.0

Compare Source

Compare with 1.18.2

Features
  • Release scoped and relative cross-references (872afc5 by Timothée Mazzucotelli).
  • Release __all__ ordering feature (84aaebc by Timothée Mazzucotelli).
  • Release public filter feature (3be14cc by Timothée Mazzucotelli).
  • Release backlinks feature (ae7cc2d by Timothée Mazzucotelli).
  • Release expression modernization feature (dbadd1e by Timothée Mazzucotelli).
  • Release visually-lighter admonitions for source code blocks (fdaeb48 by Timothée Mazzucotelli).
  • Release inheritance diagram features (669b42e by Timothée Mazzucotelli).
Code Refactoring
  • Update code base for Python 3.10 (b696ed2 by Timothée Mazzucotelli).
pre-commit/pre-commit (pre-commit)

v4.5.0

Compare Source

==================

Features

v4.4.0

Compare Source

==================

Features
Fixes
pre-commit/mirrors-mypy (pre-commit/mirrors-mypy)

v1.19.0

Compare Source

psycopg/psycopg (psycopg)

v3.3.2

Compare Source

v3.3.1

Compare Source

v3.3.0

Compare Source

v3.2.13

Compare Source

v3.2.12

Compare Source

pytest-dev/pytest (pytest)

v9.0.2

Compare Source

pytest 9.0.2 (2025-12-06)
Bug fixes
  • #​13896: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.

    You may enable it again by passing -p terminalprogress. We may enable it by default again once compatibility improves in the future.

    Additionally, when the environment variable TERM is dumb, the escape codes are no longer emitted, even if the plugin is enabled.

  • #​13904: Fixed the TOML type of the tmp_path_retention_count settings in the API reference from number to string.

  • #​13946: The private config.inicfg attribute was changed in a breaking manner in pytest 9.0.0. Due to its usage in the ecosystem, it is now restored to working order using a compatibility shim. It will be deprecated in pytest 9.1 and removed in pytest 10.

  • #​13965: Fixed quadratic-time behavior when handling unittest subtests in Python 3.10.

Improved documentation
  • #​4492: The API Reference now contains cross-reference-able documentation of pytest's command-line flags <command-line-flags>.

v9.0.1

Compare Source

pytest 9.0.1 (2025-11-12)

Bug fixes

  • #​13895: Restore support for skipping tests via raise unittest.SkipTest.
  • #​13896: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.
  • #​13904: Fixed the TOML type of the verbosity settings in the API reference from number to string.
  • #​13910: Fixed UserWarning: Do not expect file_or_dir on some earlier Python 3.12 and 3.13 point versions.

Packaging updates and notes for downstreams

  • #​13933: The tox configuration has been adjusted to make sure the desired version string can be passed into its package_env through the SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST environment variable as a part of the release process -- by webknjaz.

Contributor-facing changes

  • #​13891, #​13942: The CI/CD part of the release automation is now capable of creating GitHub Releases without having a Git checkout on disk -- by bluetech and webknjaz.
  • #​13933: The tox configuration has been adjusted to make sure the desired version string can be passed into its package_env through the SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST environment variable as a part of the release process -- by webknjaz.

v9.0.0

Compare Source

pytest 9.0.0 (2025-11-05)

New features

  • #​1367: Support for subtests has been added.

    subtests <subtests> are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.

    Example:

    def contains_docstring(p: Path) -> bool:
        """Return True if the given Python file contains a top-level docstring."""
        ...
    
    def test_py_files_contain_docstring(subtests: pytest.Subtests) -> None:
        for path in Path.cwd().glob("*.py"):
            with subtests.test(path=str(path)):
                assert contains_docstring(path)

    Each assert failure or error is caught by the context manager and reported individually, giving a clear picture of all files that are missing a docstring.

    In addition, unittest.TestCase.subTest is now also supported.

    This feature was originally implemented as a separate plugin in pytest-subtests, but since then has been merged into the core.

    [!NOTE] This feature is experimental and will likely evolve in future releases. By that we mean that we might change how subtests are reported on failure, but the functionality and how to use it are stable.

  • #​13743: Added support for native TOML configuration files.

    While pytest, since version 6, supports configuration in pyproject.toml files under [tool.pytest.ini_options], it does so in an "INI compatibility mode", where all configuration values are treated as strings or list of strings. Now, pytest supports the native TOML data model.

    In pyproject.toml, the native TOML configuration is under the [tool.pytest] table.

    # pyproject.toml
    [tool.pytest]
    minversion = "9.0"
    addopts = ["-ra", "-q"]
    testpaths = [
        "tests",
        "integration",
    ]

    The [tool.pytest.ini_options] table remains supported, but both tables cannot be used at the same time.

    If you prefer to use a separate configuration file, or don't use pyproject.toml, you can use pytest.toml or .pytest.toml:

    # pytest.toml or .pytest.toml
    [pytest]
    minversion = "9.0"
    addopts = ["-ra", "-q"]
    testpaths = [
        "tests",
        "integration",
    ]

    The documentation now (sometimes) shows configuration snippets in both TOML and INI formats, in a tabbed interface.

    See config file formats for full details.

  • #​13823: Added a "strict mode" enabled by the strict configuration option.

    When set to true, the strict option currently enables

    • strict_config
    • strict_markers
    • strict_parametrization_ids
    • strict_xfail

    The individual strictness options can be explicitly set to override the global strict setting.

    The previously-deprecated --strict command-line flag now enables strict mode.

    If pytest adds new strictness options in the future, they will also be enabled in strict mode. Therefore, you should only enable strict mode if you use a pinned/locked version of pytest, or if you want to proactively adopt new strictness options as they are added.

    See strict mode for more details.

  • #​13737: Added the strict_parametrization_ids configuration option.

    When set, pytest emits an error if it detects non-unique parameter set IDs, rather than automatically making the IDs unique by adding 0, 1, ... to them. This can be particularly useful for catching unintended duplicates.

  • #​13072: Added support for displaying test session progress in the terminal tab using the OSC 9;4; ANSI sequence. When pytest runs in a supported terminal emulator like ConEmu, Gnome Terminal, Ptyxis, Windows Terminal, Kitty or Ghostty, you'll see the progress in the terminal tab or window, allowing you to monitor pytest's progress at a glance.

    This feature is automatically enabled when running in a TTY. It is implemented as an internal plugin. If needed, it can be disabled as follows:

    • On a user level, using -p no:terminalprogress on the command line or via an environment variable PYTEST_ADDOPTS='-p no:terminalprogress'.
    • On a project configuration level, using addopts = "-p no:terminalprogress".
  • #​478: Support PEP420 (implicit namespace packages) as --pyargs target when consider_namespace_packages is true in the config.

    Previously, this option only impacted package imports, now it also impacts tests discovery.

  • #​13678: Added a new faulthandler_exit_on_timeout configuration option set to "false" by default to let faulthandler interrupt the pytest process after a timeout in case of deadlock.

    Previously, a faulthandler timeout would only dump the traceback of all threads to stderr, but would not interrupt the pytest process.

    -- by ogrisel.

  • #​13829: Added support for configuration option aliases via the aliases parameter in Parser.addini() <pytest.Parser.addini>.

    Plugins can now register alternative names for configuration options, allowing for more flexibility in configuration naming and supporting backward compatibility when renaming options. The canonical name always takes precedence if both the canonical name and an alias are specified in the configuration file.

Improvements in existing functionality

  • #​13330: Having pytest configuration spread over more than one file (for example having both a pytest.ini file and pyproject.toml with a [tool.pytest.ini_options] table) will now print a warning to make it clearer to the user that only one of them is actually used.

    -- by sgaist

  • #​13574: The single argument --version no longer loads the entire plugin infrastructure, making it faster and more reliable when displaying only the pytest version.

    Passing --version twice (e.g., pytest --version --version) retains the original behavior, showing both the pytest version and plugin information.

    [!NOTE] Since --version is now processed early, it only takes effect when passed directly via the command line. It will not work if set through other mechanisms, such as PYTEST_ADDOPTS or addopts.

  • #​13823: Added strict_xfail as an alias to the xfail_strict option, strict_config as an alias to the --strict-config flag, and strict_markers as an alias to the --strict-markers flag. This makes all strictness options consistently have configuration options with the prefix strict_.

  • #​13700: --junitxml no longer prints the generated xml file summary at the end of the pytest session when --quiet is given.

  • #​13732: Previously, when filtering warnings, pytest would fail if the filter referenced a class that could not be imported. Now, this only outputs a message indicating the problem.

  • #​13859: Clarify the error message for pytest.raises() when a regex match fails.

  • #​13861: Better sentence structure in a test's expected error message. Previously, the error message would be "expected exception must be <expected>, but got <actual>". Now, it is "Expected <expected>, but got <actual>".

Removals and backward incompatible breaking changes

  • #​12083: Fixed a bug where an invocation such as pytest a/ a/b would cause only tests from a/b to run, and not other tests under a/.

    The fix entails a few breaking changes to how such overlapping arguments and duplicates are handled:

    1. pytest a/b a/ or pytest a/ a/b are equivalent to pytest a; if an argument overlaps another arguments, only the prefix remains.
    2. pytest x.py x.py is equivalent to pytest x.py; previously such an invocation was taken as an explicit request to run the tests from the file twice.

    If you rely on these behaviors, consider using --keep-duplicates <duplicate-paths>, which retains its existing behavior (including the bug).

  • #​13719: Support for Python 3.9 is dropped following its end of life.

  • #​13766: Previously, pytest would assume it was running in a CI/CD environment if either of the environment variables CI</span> or <span class="title-ref">BUILD_NUMBER was defined; now, CI mode is only activated if at least one of those variables is defined and set to a non-empty value.

  • #​13779: PytestRemovedIn9Warning deprecation warnings are now errors by default.

    Following our plan to remove deprecated features with as little disruption as possible, all warnings of type PytestRemovedIn9Warning now generate errors instead of warning messages by default.

    The affected features will be effectively removed in pytest 9.1, so please consult the deprecations section in the docs for directions on how to update existing code.

    In the pytest 9.0.X series, it is possible to change the errors back into warnings as a stopgap measure by adding this to your pytest.ini file:

    [pytest]
    filterwarnings =
        ignore::pytest.PytestRemovedIn9Warning

    But this will stop working when pytest 9.1 is released.

    If you have concerns about the removal of a specific feature, please add a comment to 13779.

Deprecations (removal in next major release)

  • #​13807: monkeypatch.syspath_prepend() <pytest.MonkeyPatch.syspath_prepend> now issues a deprecation warning when the prepended path contains legacy namespace packages (those using pkg_resources.declare_namespace()). Users should migrate to native namespace packages (420). See monkeypatch-fixup-namespace-packages for details.

Bug fixes

  • #​13445: Made the type annotations of pytest.skip and friends more spec-complaint to have them work across more type checkers.

  • #​13537: Fixed a bug in which ExceptionGroup with only Skipped exceptions in teardown was not handled correctly and showed as error.

  • #​13598: Fixed possible collection confusion on Windows when short paths and symlinks are involved.

  • #​13716: Fixed a bug where a nonsensical invocation like pytest x.py[a] (a file cannot be parametrized) was silently treated as pytest x.py. This is now a usage error.

  • #​13722: Fixed a misleading assertion failure message when using pytest.approx on mappings with differing lengths.

  • #​13773: Fixed the static fixture closure calculation to properly consider transitive dependencies requested by overridden fixtures.

  • #​13816: Fixed pytest.approx which now returns a clearer error message when comparing mappings with different keys.

  • #​13849: Hidden .pytest.ini files are now picked up as the config file even if empty. This was an inconsistency with non-hidden pytest.ini.

  • #​13865: Fixed --show-capture with --tb=line.

  • #​13522: Fixed pytester in subprocess mode ignored all :attr`pytester.plugins <pytest.Pytester.plugins>` except the first.

    Fixed pytester in subprocess mode silently ignored non-str pytester.plugins <pytest.Pytester.plugins>. Now it errors instead. If you are affected by this, specify the plugin by name, or switch the affected tests to use pytester.runpytest_inprocess <pytest.Pytester.runpytest_inprocess> explicitly instead.

Packaging updates and notes for downstreams

  • #​13791: Minimum requirements on iniconfig and packaging were bumped to 1.0.1 and 22.0.0, respectively.

Contributor-facing changes

  • #​12244: Fixed self-test failures when TERM=dumb.
  • #​12474: Added scheduled GitHub Action Workflow to run Sphinx linkchecks in repo documentation.
  • #​13621: pytest's own testsuite now handles the lsof command hanging (e.g. due to unreachable network filesystems), with the affected selftests being skipped after 10 seconds.
  • #​13638: Fixed deprecated gh pr new command in scripts/prepare-release-pr.py. The script now uses gh pr create which is compatible with GitHub CLI v2.0+.
  • #​13695: Flush stdout and stderr in Pytester.run to avoid truncated outputs in test_faulthandler.py::test_timeout on CI -- by ogrisel.
  • #​13771: Skip test_do_not_collect_symlink_siblings on Windows environments without symlink support to avoid false negatives.
  • #​13841: tox>=4 is now required when contributing to pytest.
  • #​13625: Added missing docstrings to pytest_addoption(), pytest_configure(), and cacheshow() functions in cacheprovider.py.

Miscellaneous internal changes

  • #​13830: Configuration overrides (-o/--override-ini) are now processed during startup rather than during config.getini() <pytest.Config.getini>.
hynek/structlog (structlog)

v25.5.0

Compare Source

Deprecated
  • structlog.dev.ConsoleRenderer()'s pad_event argument has been renamed to pad_event_to to differentiate it from the boolean pad_level argument. pad_event is now deprecated.
Added
  • Added structlog.dev.ConsoleRenderer.get_active() that returns the currently active structlog.dev.ConsoleRenderer(). #​749

  • structlog.dev.ConsoleRenderer() now supports setting the exception_formatter attribute.

    You can now disable the pretty-printing of exceptions by setting it to structlog.dev.plain_traceback:

    cr = structlog.dev.ConsoleRenderer.get_active()
    cr.exception_formatter = structlog.dev.plain_traceback

    Same goes for sort_keys, columns, colors, force_colors, level_styles, pad_event_to, event_key, timestamp_key, and repr_native_str.

    #​749 #​756 #​757 #​759

  • Added structlog.dev.ConsoleRenderer.get_default_column_styles() for reuse the default column styles. #​741

  • structlog.testing.capture_logs() now optionally accepts processors to apply before capture. #​728

  • structlog.dev.RichTracebackFormatter now exposes the upstream code_width parameter. Default width is now None for full terminal width. Full terminal width is now handled by Rich itself, bringing support for reflow and COLUMN environment variable. Passing -1 for width is now deprecated and automatically replaced by None. #​717

  • Native loggers now allow the passing of a dictionary for dictionary-based interpolation log.info("hello %(name)s!", {"name": "world"}). #​748

  • On Python 3.11+, structlog.processors.CallsiteParameterAdder now supports CallsiteParameter.QUAL_NAME that adds the qualified name of the callsite, including scope and class names. This is only available for structlog-originated events since the standard library has no equivalent.

  • structlog.stdlib.LoggerFactory now supports the stacklevel parameter. #​763

Changed
  • structlog.dev.rich_traceback() now throws a more helpful error when Rich is missing. #​735
Fixed
  • structlog.processors.MaybeTimeStamper now respects the key argument when determining whether to overwrite the timestamp field. #​747

  • structlog.tracebacks.extract() no longer raises a RecursionError when the cause chain of an exception contains itself. #​739

  • Default config now respects FORCE_COLOR on Windows. #​758

tox-dev/tox (tox)

v4.32.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/tox-dev/tox/compare/4.31.0...4.32.0

uis/devops/continuous-delivery/ci-templates (uis/devops/continuous-delivery/ci-templates)

v7.23.1: 7.23.1

Compare Source

7.23.1 (2025-12-05)

v7.23.0: 7.23.0

Compare Source

7.23.0 (2025-11-28)
Features
  • tox-tests to use dind config from fragments (c765400)

v7.22.1: 7.22.1

Compare Source

7.22.1 (2025-11-25)
Bug Fixes
  • add missing before_script reference to dind in .terraform-test-cleanup (2852ccd)

v7.22.0: 7.22.0

Compare Source

7.22.0 (2025-11-24)
Features
  • docker-in-docker: add waiting before_script to fragment (2b0924e), closes #​178

v7.21.0: 7.21.0

Compare Source

7.21.0 (2025-11-19)

Features
  • re-work maven jobs rules (da9962b)
  • re-work maven jobs rules: try to re-name the job (4efa101)

v7.20.3: 7.20.3

Compare Source

7.20.3 (2025-11-03)
Bug Fixes
  • use only needed bits of Terraform-Module.gitlab-ci.yml to avoid duplicate jobs (ff646a0)

v7.20.2: 7.20.2

Compare Source

7.20.2 (2025-10-30)
Bug Fixes
  • check-latest-tag-in-changelog: skip job if tag is an alpha or beta release (210ffd5)

v7.20.1: 7.20.1

Compare Source

7.20.1 (2025-10-29)
Bug Fixes
  • allow no test coverage in maven (40db7bf)

v7.20.0: 7.20.0

Compare Source

7.20.0 (2025-10-28)
Features
  • add code coverage to maven jobs (53c1345)

v7.19.2: 7.19.2

Compare Source

7.19.2 (2025-10-23)
Bug Fixes
  • maven.gitab-ci.yml: added missing GKE_RUNNER_TAG on build_artifact (470fc86)

v7.19.1: 7.19.1

Compare Source

7.19.1 (2025-10-23)
Bug Fixes
  • maven.gitlab-ci.yml: update publish to use CI_COMMIT_TAG for a release, or script for snapshot (e616bd4)

Configuration

📅 Schedule: Branch creation - "on sunday" in timezone Europe/London, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

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


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

This MR has been generated by Renovate Bot.

Edited by uis-devops-renovatebot

Merge request reports

Loading