Update dependency pluggy to v1 #11

Open
renovate wants to merge 1 commit from renovate/pluggy-1.x into master
Collaborator

This PR contains the following updates:

Package Change Age Confidence
pluggy (changelog) ==0.6.0 → ==1.7.0 age confidence

Release Notes

pytest-dev/pluggy (pluggy)

v1.7.0

Compare Source

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

Deprecations and Removals

  • #&#8203;632 <https://github.com/pytest-dev/pluggy/issues/632>_: Hookspec methods defined without self as the first parameter now emit a :class:DeprecationWarning. Add self as the first parameter or use @staticmethod.

Features

  • #&#8203;170 <https://github.com/pytest-dev/pluggy/issues/170>_: Hookspecs can now declare default values for arguments, using the usual def myhook(myarg="default") syntax.
    This is mainly a backward compatibility feature, to allow a hookspec to add new parameters to an existing hook without breaking existing callers.
    See :ref:hookspec_arg_default for details.

  • #&#8203;729 <https://github.com/pytest-dev/pluggy/issues/729>_: Tracing now adds detail where str() is ambiguous: empty strings and strings containing
    whitespace are quoted, and enums and paths show their repr().

    A value spanning several lines is now displayed as a block instead of running into the
    surrounding trace.

Bug Fixes

  • #&#8203;629 <https://github.com/pytest-dev/pluggy/issues/629>_: Fix hooks failing to register on Python 3.14+ when type annotations use forward references.

  • #&#8203;315 <https://github.com/pytest-dev/pluggy/issues/315>_: Source archives created by git archive (including GitHub's "Source code" downloads) now carry version information, so building pluggy from them no longer fails with a missing version.

  • #&#8203;442 <https://github.com/pytest-dev/pluggy/issues/442>_: With the addition of default values for hookspec arguments, we also changed the precedence of default values for hookimpl arguments.
    Previously, if a hookimpl function declared a default for an argument, it was always used, even if the hook call passed an explicit value.
    Now the precedence is changed to: hook call passed value > hookspec default value > hookimpl default value.
    See :ref:hookimpl_arg_defaults.

  • #&#8203;701 <https://github.com/pytest-dev/pluggy/issues/701>_: Hookimpls and hookspecs are now discovered via :func:inspect.getattr_static, so
    properties, cached_property and other descriptors are no longer executed while
    scanning a plugin. Hooks declared through such a descriptor are not supported.

    As a side effect, @hookimpl/@hookspec applied above @classmethod or
    @staticmethod is now picked up; previously the marker sat on the wrapper where
    getattr() never saw it. Callables stored directly on a plugin instance -- in its
    __dict__ or in a __slots__ slot -- keep being called exactly as getattr()
    returned them, i.e. without an implicit self.

  • #&#8203;431 <https://github.com/pytest-dev/pluggy/issues/431>_: Fix HookCaller._remove_plugin() to remove all hook implementations for a plugin in a single call, instead of only the first one. Also fix PluginManager.get_hookcallers() to not return duplicate HookCaller entries when a plugin has multiple implementations on the same hook (e.g. via specname).

  • #&#8203;695 <https://github.com/pytest-dev/pluggy/issues/695>_: Fixed :func:~pluggy.PluginManager.subset_hook_caller() not excluding removed plugins which use :func:@hookiml(specname="...") <pluggy.HookimplMarker>.

  • #&#8203;424 <https://github.com/pytest-dev/pluggy/issues/424>_: Tracing no longer breaks hook execution when a traced object has a broken __repr__
    or __str__. Such a value is now rendered as
    <[RuntimeError(...) raised in str()] Broken object at 0x...>, in the same style
    pytest uses for unpresentable objects, instead of propagating the exception out of the
    hook call.

  • #&#8203;681 <https://github.com/pytest-dev/pluggy/issues/681>_: Tracing no longer crashes with UnicodeEncodeError when a hook argument or return
    value contains lone surrogates; they are escaped with backslashreplace before the
    message reaches the writer. Trace output is otherwise unchanged.

  • #&#8203;727 <https://github.com/pytest-dev/pluggy/issues/727>_: Fix the warning for hookspec arguments missing from a hook call being attributed to pluggy's own frame instead of to the code making the call. This affected HookCaller.__call__, call_historic and call_extra.

  • #&#8203;731 <https://github.com/pytest-dev/pluggy/issues/731>_: :func:PluginManager.register(None) <pluggy.PluginManager.register> is now ignored instead of having some weird behaviors.

  • #&#8203;733 <https://github.com/pytest-dev/pluggy/issues/733>_: :meth:PluginManager.register() <pluggy.PluginManager.register> now validates all hook implementations of a plugin before registering any of them, so a plugin that fails validation no longer stays partially registered.

  • #&#8203;755 <https://github.com/pytest-dev/pluggy/issues/755>_: Skip already registered entry-point plugins without evaluating the plugin object's truthiness.

  • #&#8203;757 <https://github.com/pytest-dev/pluggy/issues/757>_: Restore the project URLs in the package metadata, which were lost in pluggy 1.6.0 when the packaging configuration moved to pyproject.toml.
    Links to the documentation, changelog, issue tracker and funding page were added as well.

  • #&#8203;759 <https://github.com/pytest-dev/pluggy/issues/759>_: :meth:PluginManager.unregister() <pluggy.PluginManager.unregister> now raises :exc:ValueError when both plugin and name are given but refer to different plugins, instead of removing one plugin's hook implementations and another plugin's registry entry.
    It also fully unregisters plugin objects that are falsy (e.g. define __len__ returning 0); previously their name stayed in the registry.

  • #&#8203;186 <https://github.com/pytest-dev/pluggy/issues/186>_: Fixed broken external documentation references in the list of projects using pluggy.

Trivial/Internal Changes

  • #&#8203;417 <https://github.com/pytest-dev/pluggy/issues/417>_: Fix the tox -e docs build, which failed under sphinx-build -W because nitpicky mode reported unresolved references to the private names.

  • #&#8203;590 <https://github.com/pytest-dev/pluggy/issues/590>_: The pluggy.__version__ variable is now dynamically provided via a module-level __getattr__ implementation, using importlib to obtain the installed version.

  • #&#8203;691 <https://github.com/pytest-dev/pluggy/issues/691>_: Fix outdated links in README.rst.

  • #&#8203;703 <https://github.com/pytest-dev/pluggy/issues/703>_: The internal pluggy._hooks module was split into role-specific modules
    (_caller, _config, _decorators, _execution and _impl).
    pluggy._hooks remains as a re-export shim, and the public API is
    unchanged.

  • #&#8203;776 <https://github.com/pytest-dev/pluggy/issues/776>_: Building pluggy without git metadata now yields the placeholder version 1.6.0+fallback instead of failing, so Dependabot relocks no longer resolve pluggy as 0.0.0 and silently downgrade pytest and tox in uv.lock. tox was dropped from the dev dependency group; run it as a tool with uvx tox.

v1.6.0

Compare Source

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

Deprecations and Removals

  • #&#8203;632 <https://github.com/pytest-dev/pluggy/issues/632>_: Hookspec methods defined without self as the first parameter now emit a :class:DeprecationWarning. Add self as the first parameter or use @staticmethod.

Features

  • #&#8203;170 <https://github.com/pytest-dev/pluggy/issues/170>_: Hookspecs can now declare default values for arguments, using the usual def myhook(myarg="default") syntax.
    This is mainly a backward compatibility feature, to allow a hookspec to add new parameters to an existing hook without breaking existing callers.
    See :ref:hookspec_arg_default for details.

  • #&#8203;729 <https://github.com/pytest-dev/pluggy/issues/729>_: Tracing now adds detail where str() is ambiguous: empty strings and strings containing
    whitespace are quoted, and enums and paths show their repr().

    A value spanning several lines is now displayed as a block instead of running into the
    surrounding trace.

Bug Fixes

  • #&#8203;629 <https://github.com/pytest-dev/pluggy/issues/629>_: Fix hooks failing to register on Python 3.14+ when type annotations use forward references.

  • #&#8203;315 <https://github.com/pytest-dev/pluggy/issues/315>_: Source archives created by git archive (including GitHub's "Source code" downloads) now carry version information, so building pluggy from them no longer fails with a missing version.

  • #&#8203;442 <https://github.com/pytest-dev/pluggy/issues/442>_: With the addition of default values for hookspec arguments, we also changed the precedence of default values for hookimpl arguments.
    Previously, if a hookimpl function declared a default for an argument, it was always used, even if the hook call passed an explicit value.
    Now the precedence is changed to: hook call passed value > hookspec default value > hookimpl default value.
    See :ref:hookimpl_arg_defaults.

  • #&#8203;701 <https://github.com/pytest-dev/pluggy/issues/701>_: Hookimpls and hookspecs are now discovered via :func:inspect.getattr_static, so
    properties, cached_property and other descriptors are no longer executed while
    scanning a plugin. Hooks declared through such a descriptor are not supported.

    As a side effect, @hookimpl/@hookspec applied above @classmethod or
    @staticmethod is now picked up; previously the marker sat on the wrapper where
    getattr() never saw it. Callables stored directly on a plugin instance -- in its
    __dict__ or in a __slots__ slot -- keep being called exactly as getattr()
    returned them, i.e. without an implicit self.

  • #&#8203;431 <https://github.com/pytest-dev/pluggy/issues/431>_: Fix HookCaller._remove_plugin() to remove all hook implementations for a plugin in a single call, instead of only the first one. Also fix PluginManager.get_hookcallers() to not return duplicate HookCaller entries when a plugin has multiple implementations on the same hook (e.g. via specname).

  • #&#8203;695 <https://github.com/pytest-dev/pluggy/issues/695>_: Fixed :func:~pluggy.PluginManager.subset_hook_caller() not excluding removed plugins which use :func:@hookiml(specname="...") <pluggy.HookimplMarker>.

  • #&#8203;424 <https://github.com/pytest-dev/pluggy/issues/424>_: Tracing no longer breaks hook execution when a traced object has a broken __repr__
    or __str__. Such a value is now rendered as
    <[RuntimeError(...) raised in str()] Broken object at 0x...>, in the same style
    pytest uses for unpresentable objects, instead of propagating the exception out of the
    hook call.

  • #&#8203;681 <https://github.com/pytest-dev/pluggy/issues/681>_: Tracing no longer crashes with UnicodeEncodeError when a hook argument or return
    value contains lone surrogates; they are escaped with backslashreplace before the
    message reaches the writer. Trace output is otherwise unchanged.

  • #&#8203;727 <https://github.com/pytest-dev/pluggy/issues/727>_: Fix the warning for hookspec arguments missing from a hook call being attributed to pluggy's own frame instead of to the code making the call. This affected HookCaller.__call__, call_historic and call_extra.

  • #&#8203;731 <https://github.com/pytest-dev/pluggy/issues/731>_: :func:PluginManager.register(None) <pluggy.PluginManager.register> is now ignored instead of having some weird behaviors.

  • #&#8203;733 <https://github.com/pytest-dev/pluggy/issues/733>_: :meth:PluginManager.register() <pluggy.PluginManager.register> now validates all hook implementations of a plugin before registering any of them, so a plugin that fails validation no longer stays partially registered.

  • #&#8203;755 <https://github.com/pytest-dev/pluggy/issues/755>_: Skip already registered entry-point plugins without evaluating the plugin object's truthiness.

  • #&#8203;757 <https://github.com/pytest-dev/pluggy/issues/757>_: Restore the project URLs in the package metadata, which were lost in pluggy 1.6.0 when the packaging configuration moved to pyproject.toml.
    Links to the documentation, changelog, issue tracker and funding page were added as well.

  • #&#8203;759 <https://github.com/pytest-dev/pluggy/issues/759>_: :meth:PluginManager.unregister() <pluggy.PluginManager.unregister> now raises :exc:ValueError when both plugin and name are given but refer to different plugins, instead of removing one plugin's hook implementations and another plugin's registry entry.
    It also fully unregisters plugin objects that are falsy (e.g. define __len__ returning 0); previously their name stayed in the registry.

  • #&#8203;186 <https://github.com/pytest-dev/pluggy/issues/186>_: Fixed broken external documentation references in the list of projects using pluggy.

Trivial/Internal Changes

  • #&#8203;417 <https://github.com/pytest-dev/pluggy/issues/417>_: Fix the tox -e docs build, which failed under sphinx-build -W because nitpicky mode reported unresolved references to the private names.

  • #&#8203;590 <https://github.com/pytest-dev/pluggy/issues/590>_: The pluggy.__version__ variable is now dynamically provided via a module-level __getattr__ implementation, using importlib to obtain the installed version.

  • #&#8203;691 <https://github.com/pytest-dev/pluggy/issues/691>_: Fix outdated links in README.rst.

  • #&#8203;703 <https://github.com/pytest-dev/pluggy/issues/703>_: The internal pluggy._hooks module was split into role-specific modules
    (_caller, _config, _decorators, _execution and _impl).
    pluggy._hooks remains as a re-export shim, and the public API is
    unchanged.

  • #&#8203;776 <https://github.com/pytest-dev/pluggy/issues/776>_: Building pluggy without git metadata now yields the placeholder version 1.6.0+fallback instead of failing, so Dependabot relocks no longer resolve pluggy as 0.0.0 and silently downgrade pytest and tox in uv.lock. tox was dropped from the dev dependency group; run it as a tool with uvx tox.

v1.5.0

Compare Source

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

Features

  • #&#8203;178 <https://github.com/pytest-dev/pluggy/issues/178>_: Add support for deprecating specific hook parameters, or more generally, for issuing a warning whenever a hook implementation requests certain parameters.

    See :ref:warn_on_impl for details.

Bug Fixes

  • #&#8203;481 <https://github.com/pytest-dev/pluggy/issues/481>_: PluginManager.get_plugins() no longer returns None for blocked plugins.

v1.4.0

Compare Source

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

Features

  • #&#8203;463 <https://github.com/pytest-dev/pluggy/issues/463>_: A warning :class:~pluggy.PluggyTeardownRaisedWarning is now issued when an old-style hookwrapper raises an exception during teardown.
    See the warning documentation for more details.

  • #&#8203;471 <https://github.com/pytest-dev/pluggy/issues/471>_: Add :func:PluginManager.unblock <pluggy.PluginManager.unblock> method to unblock a plugin by plugin name.

Bug Fixes

  • #&#8203;441 <https://github.com/pytest-dev/pluggy/issues/441>_: Fix :func:~pluggy.HookCaller.call_extra() extra methods getting ordered before everything else in some circumstances. Regressed in pluggy 1.1.0.

  • #&#8203;438 <https://github.com/pytest-dev/pluggy/issues/438>_: Fix plugins registering other plugins in a hook when the other plugins implement the same hook itself. Regressed in pluggy 1.1.0.

v1.3.0

Compare Source

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

Deprecations and Removals

  • #&#8203;426 <https://github.com/pytest-dev/pluggy/issues/426>_: Python 3.7 is no longer supported.

Features

  • #&#8203;428 <https://github.com/pytest-dev/pluggy/issues/428>_: Pluggy now exposes its typings to static type checkers.

    As part of this, the following changes are made:

    • Renamed _Result to Result, and exported as :class:pluggy.Result.
    • Renamed _HookRelay to HookRelay, and exported as :class:pluggy.HookRelay.
    • Renamed _HookCaller to HookCaller, and exported as :class:pluggy.HookCaller.
    • Exported HookImpl as :class:pluggy.HookImpl.
    • Renamed _HookImplOpts to HookimplOpts, and exported as :class:pluggy.HookimplOpts.
    • Renamed _HookSpecOpts to HookspecOpts, and exported as :class:pluggy.HookspecOpts.
    • Some fields and classes are marked Final and @final.
    • The :ref:api-reference is updated to clearly delineate pluggy's public API.

    Compatibility aliases are put in place for the renamed types.
    We do not plan to remove the aliases, but we strongly recommend to only import from pluggy.* to ensure future compatibility.

    Please note that pluggy is currently unable to provide strong typing for hook calls, e.g. pm.hook.my_hook(...),
    nor to statically check that a hook implementation matches the hook specification's type.

v1.2.0

Compare Source

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

Features

  • #&#8203;405 <https://github.com/pytest-dev/pluggy/issues/405>_: The new-style hook wrappers, added in the yanked 1.1.0 release, now require an explicit wrapper=True designation in the @hookimpl() decorator.

v1.1.0

Compare Source

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

Deprecations and Removals

  • #&#8203;556 <https://github.com/pytest-dev/pluggy/issues/556>_: Python 3.8 is no longer supported.

Bug Fixes

  • #&#8203;504 <https://github.com/pytest-dev/pluggy/issues/504>_: Fix a regression in pluggy 1.1.0 where using :func:result.get_result() <pluggy.Result.get_result> on the same failed :class:~pluggy.Result causes the exception's traceback to get longer and longer.

  • #&#8203;544 <https://github.com/pytest-dev/pluggy/issues/544>_: Correctly pass :class:StopIteration through hook wrappers.

    Raising a :class:StopIteration in a generator triggers a :class:RuntimeError.

    If the :class:RuntimeError of a generator has the passed in :class:StopIteration as cause
    resume with that :class:StopIteration as normal exception instead of failing with the :class:RuntimeError.

  • #&#8203;573 <https://github.com/pytest-dev/pluggy/issues/573>_: Fix python 3.14 SyntaxError by rearranging code.

v1.0.0

Compare Source

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

Deprecations and Removals

  • #&#8203;116 <https://github.com/pytest-dev/pluggy/issues/116>_: Remove deprecated implprefix support.
    Decorate hook implementations using an instance of HookimplMarker instead.
    The deprecation was announced in release 0.7.0.

  • #&#8203;120 <https://github.com/pytest-dev/pluggy/issues/120>_: Remove the deprecated proc argument to call_historic.
    Use result_callback instead, which has the same behavior.
    The deprecation was announced in release 0.7.0.

  • #&#8203;265 <https://github.com/pytest-dev/pluggy/issues/265>_: Remove the _Result.result property. Use _Result.get_result() instead.
    Note that unlike result, get_result() raises the exception if the hook raised.
    The deprecation was announced in release 0.6.0.

  • #&#8203;267 <https://github.com/pytest-dev/pluggy/issues/267>_: Remove official support for Python 3.4.

  • #&#8203;272 <https://github.com/pytest-dev/pluggy/issues/272>_: Dropped support for Python 2.
    Continue to use pluggy 0.13.x for Python 2 support.

  • #&#8203;308 <https://github.com/pytest-dev/pluggy/issues/308>_: Remove official support for Python 3.5.

  • #&#8203;313 <https://github.com/pytest-dev/pluggy/issues/313>_: The internal pluggy.callers, pluggy.manager and pluggy.hooks are now explicitly marked private by a _ prefix (e.g. pluggy._callers).
    Only API exported by the top-level pluggy module is considered public.

  • #&#8203;59 <https://github.com/pytest-dev/pluggy/issues/59>_: Remove legacy __multicall__ recursive hook calling system.
    The deprecation was announced in release 0.5.0.

Features

  • #&#8203;282 <https://github.com/pytest-dev/pluggy/issues/282>_: When registering a hookimpl which is declared as hookwrapper=True but whose
    function is not a generator function, a :class:~pluggy.PluginValidationError exception is
    now raised.

    Previously this problem would cause an error only later, when calling the hook.

    In the unlikely case that you have a hookwrapper that returns a generator
    instead of yielding directly, for example:

    .. code-block:: python

    def my_hook_impl(arg):
        print("before")
        yield
        print("after")
    
    @hookimpl(hookwrapper=True)
    def my_hook(arg):
        return my_hook_impl(arg)
    

    change it to use yield from instead:

    .. code-block:: python

    @hookimpl(hookwrapper=True)
    def my_hook(arg):
        yield from my_hook_impl(arg)
    
  • #&#8203;309 <https://github.com/pytest-dev/pluggy/issues/309>_: Add official support for Python 3.9.

  • #&#8203;251 <https://github.com/pytest-dev/pluggy/issues/251>_: Add specname option to @hookimpl. If specname is provided, it will be used
    instead of the function name when matching this hook implementation to a hook specification during registration (allowing a plugin to register
    a hook implementation that was not named the same thing as the corresponding @hookspec).

v0.13.1

Compare Source

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

Trivial/Internal Changes

  • #&#8203;236 <https://github.com/pytest-dev/pluggy/pull/236>_: Improved documentation, especially with regard to references.

v0.13.0

Compare Source

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

Trivial/Internal Changes

  • #&#8203;222 <https://github.com/pytest-dev/pluggy/issues/222>_: Replace importlib_metadata backport with importlib.metadata from the
    standard library on Python 3.8+.

v0.12.0

Compare Source

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

Features

  • #&#8203;215 <https://github.com/pytest-dev/pluggy/issues/215>_: Switch from pkg_resources to importlib-metadata for entrypoint detection for improved performance and import time. This time with .egg support.

v0.11.0

Compare Source

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

Bug Fixes

  • #&#8203;205 <https://github.com/pytest-dev/pluggy/issues/205>_: Revert changes made in 0.10.0 release breaking .egg installs.

v0.10.0

Compare Source

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

Bug Fixes

  • #&#8203;205 <https://github.com/pytest-dev/pluggy/issues/205>_: Revert changes made in 0.10.0 release breaking .egg installs.

v0.9.0

Compare Source

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

Features

  • #&#8203;189 <https://github.com/pytest-dev/pluggy/issues/189>_: PluginManager.load_setuptools_entrypoints now accepts a name parameter that when given will
    load only entry points with that name.

    PluginManager.load_setuptools_entrypoints also now returns the number of plugins loaded by the
    call, as opposed to the number of all plugins loaded by all calls to this method.

Bug Fixes

  • #&#8203;187 <https://github.com/pytest-dev/pluggy/issues/187>_: Fix internal varnames function for PyPy3.

v0.8.1

Compare Source

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

Trivial/Internal Changes

  • #&#8203;166 <https://github.com/pytest-dev/pluggy/issues/166>_: Add stacklevel=2 to implprefix warning so that the reported location of warning is the caller of PluginManager.

v0.8.0

Compare Source

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

Features

  • #&#8203;177 <https://github.com/pytest-dev/pluggy/issues/177>_: Add get_hookimpls() method to hook callers.

Trivial/Internal Changes

  • #&#8203;165 <https://github.com/pytest-dev/pluggy/issues/165>_: Add changelog in long package description and documentation.

  • #&#8203;172 <https://github.com/pytest-dev/pluggy/issues/172>_: Add a test exemplifying the opt-in nature of spec defined args.

  • #&#8203;57 <https://github.com/pytest-dev/pluggy/issues/57>_: Encapsulate hook specifications in a type for easier introspection.

v0.7.1

Compare Source

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

Deprecations and Removals

  • #&#8203;116 <https://github.com/pytest-dev/pluggy/issues/116>_: Deprecate the implprefix kwarg to PluginManager and instead
    expect users to start using explicit HookimplMarker everywhere.

Features

  • #&#8203;122 <https://github.com/pytest-dev/pluggy/issues/122>_: Add .plugin member to PluginValidationError to access failing plugin during post-mortem.

  • #&#8203;138 <https://github.com/pytest-dev/pluggy/issues/138>_: Add per implementation warnings support for hookspecs allowing for both
    deprecation and future warnings of legacy and (future) experimental hooks
    respectively.

Bug Fixes

  • #&#8203;110 <https://github.com/pytest-dev/pluggy/issues/110>_: Fix a bug where _HookCaller.call_historic() would call the proc
    arg even when the default is None resulting in a TypeError.

  • #&#8203;160 <https://github.com/pytest-dev/pluggy/issues/160>_: Fix problem when handling VersionConflict errors when loading setuptools plugins.

Improved Documentation

  • #&#8203;123 <https://github.com/pytest-dev/pluggy/issues/123>_: Document how exceptions are handled and how the hook call loop
    terminates immediately on the first error which is then delivered
    to any surrounding wrappers.

  • #&#8203;136 <https://github.com/pytest-dev/pluggy/issues/136>_: Docs rework including a much better introduction and comprehensive example
    set for new users. A big thanks goes out to @​obestwalter for the great work!

Trivial/Internal Changes

  • #&#8203;117 <https://github.com/pytest-dev/pluggy/issues/117>_: Break up the main monolithic package modules into separate modules by concern

  • #&#8203;131 <https://github.com/pytest-dev/pluggy/issues/131>_: Automate setuptools wheels building and PyPi upload using TravisCI.

  • #&#8203;153 <https://github.com/pytest-dev/pluggy/issues/153>_: Reorganize tests more appropriately by modules relating to each
    internal component/feature. This is in an effort to avoid (future)
    duplication and better separation of concerns in the test set.

  • #&#8203;156 <https://github.com/pytest-dev/pluggy/issues/156>_: Add HookImpl.__repr__() for better debugging.

  • #&#8203;66 <https://github.com/pytest-dev/pluggy/issues/66>_: Start using towncrier and a custom tox environment to prepare releases!


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

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

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

🔕 Ignore: Close this PR and you won't be reminded about this update again.


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

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [pluggy](https://github.com/pytest-dev/pluggy) ([changelog](https://pluggy.readthedocs.io/en/latest/changelog.html)) | `==0.6.0` → `==1.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pluggy/1.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pluggy/0.6.0/1.7.0?slim=true) | --- ### Release Notes <details> <summary>pytest-dev/pluggy (pluggy)</summary> ### [`v1.7.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-170-2026-10-14) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.6.0...1.7.0) \========================= ## Deprecations and Removals - `#&#8203;632 <https://github.com/pytest-dev/pluggy/issues/632>`\_: Hookspec methods defined without `self` as the first parameter now emit a :class:`DeprecationWarning`. Add `self` as the first parameter or use `@staticmethod`. ## Features - `#&#8203;170 <https://github.com/pytest-dev/pluggy/issues/170>`\_: Hookspecs can now declare default values for arguments, using the usual `def myhook(myarg="default")` syntax. This is mainly a backward compatibility feature, to allow a hookspec to add new parameters to an existing hook without breaking existing *callers*. See :ref:`hookspec_arg_default` for details. - `#&#8203;729 <https://github.com/pytest-dev/pluggy/issues/729>`\_: Tracing now adds detail where `str()` is ambiguous: empty strings and strings containing whitespace are quoted, and enums and paths show their `repr()`. A value spanning several lines is now displayed as a block instead of running into the surrounding trace. ## Bug Fixes - `#&#8203;629 <https://github.com/pytest-dev/pluggy/issues/629>`\_: Fix hooks failing to register on Python 3.14+ when type annotations use forward references. - `#&#8203;315 <https://github.com/pytest-dev/pluggy/issues/315>`\_: Source archives created by `git archive` (including GitHub's "Source code" downloads) now carry version information, so building pluggy from them no longer fails with a missing version. - `#&#8203;442 <https://github.com/pytest-dev/pluggy/issues/442>`\_: With the addition of default values for hookspec arguments, we also changed the precedence of default values for *hookimpl* arguments. Previously, if a hookimpl function declared a default for an argument, it was always used, even if the *hook call* passed an explicit value. Now the precedence is changed to: hook call passed value > hookspec default value > hookimpl default value. See :ref:`hookimpl_arg_defaults`. - `#&#8203;701 <https://github.com/pytest-dev/pluggy/issues/701>`\_: Hookimpls and hookspecs are now discovered via :func:`inspect.getattr_static`, so properties, `cached_property` and other descriptors are no longer executed while scanning a plugin. Hooks declared through such a descriptor are not supported. As a side effect, `@hookimpl`/`@hookspec` applied *above* `@classmethod` or `@staticmethod` is now picked up; previously the marker sat on the wrapper where `getattr()` never saw it. Callables stored directly on a plugin instance -- in its `__dict__` or in a `__slots__` slot -- keep being called exactly as `getattr()` returned them, i.e. without an implicit `self`. - `#&#8203;431 <https://github.com/pytest-dev/pluggy/issues/431>`\_: Fix `HookCaller._remove_plugin()` to remove all hook implementations for a plugin in a single call, instead of only the first one. Also fix `PluginManager.get_hookcallers()` to not return duplicate `HookCaller` entries when a plugin has multiple implementations on the same hook (e.g. via `specname`). - `#&#8203;695 <https://github.com/pytest-dev/pluggy/issues/695>`\_: Fixed :func:`~pluggy.PluginManager.subset_hook_caller()` not excluding removed plugins which use :func:`@hookiml(specname="...") <pluggy.HookimplMarker>`. - `#&#8203;424 <https://github.com/pytest-dev/pluggy/issues/424>`\_: Tracing no longer breaks hook execution when a traced object has a broken `__repr__` or `__str__`. Such a value is now rendered as `<[RuntimeError(...) raised in str()] Broken object at 0x...>`, in the same style pytest uses for unpresentable objects, instead of propagating the exception out of the hook call. - `#&#8203;681 <https://github.com/pytest-dev/pluggy/issues/681>`\_: Tracing no longer crashes with `UnicodeEncodeError` when a hook argument or return value contains lone surrogates; they are escaped with `backslashreplace` before the message reaches the writer. Trace output is otherwise unchanged. - `#&#8203;727 <https://github.com/pytest-dev/pluggy/issues/727>`\_: Fix the warning for hookspec arguments missing from a hook call being attributed to pluggy's own frame instead of to the code making the call. This affected `HookCaller.__call__`, `call_historic` and `call_extra`. - `#&#8203;731 <https://github.com/pytest-dev/pluggy/issues/731>`\_: :func:`PluginManager.register(None) <pluggy.PluginManager.register>` is now ignored instead of having some weird behaviors. - `#&#8203;733 <https://github.com/pytest-dev/pluggy/issues/733>`\_: :meth:`PluginManager.register() <pluggy.PluginManager.register>` now validates all hook implementations of a plugin before registering any of them, so a plugin that fails validation no longer stays partially registered. - `#&#8203;755 <https://github.com/pytest-dev/pluggy/issues/755>`\_: Skip already registered entry-point plugins without evaluating the plugin object's truthiness. - `#&#8203;757 <https://github.com/pytest-dev/pluggy/issues/757>`\_: Restore the project URLs in the package metadata, which were lost in pluggy 1.6.0 when the packaging configuration moved to `pyproject.toml`. Links to the documentation, changelog, issue tracker and funding page were added as well. - `#&#8203;759 <https://github.com/pytest-dev/pluggy/issues/759>`\_: :meth:`PluginManager.unregister() <pluggy.PluginManager.unregister>` now raises :exc:`ValueError` when both `plugin` and `name` are given but refer to different plugins, instead of removing one plugin's hook implementations and another plugin's registry entry. It also fully unregisters plugin objects that are falsy (e.g. define `__len__` returning `0`); previously their name stayed in the registry. - `#&#8203;186 <https://github.com/pytest-dev/pluggy/issues/186>`\_: Fixed broken external documentation references in the list of projects using pluggy. ## Trivial/Internal Changes - `#&#8203;417 <https://github.com/pytest-dev/pluggy/issues/417>`\_: Fix the `tox -e docs` build, which failed under `sphinx-build -W` because nitpicky mode reported unresolved references to the private names. - `#&#8203;590 <https://github.com/pytest-dev/pluggy/issues/590>`\_: The `pluggy.__version__` variable is now dynamically provided via a module-level `__getattr__` implementation, using `importlib` to obtain the installed version. - `#&#8203;691 <https://github.com/pytest-dev/pluggy/issues/691>`\_: Fix outdated links in `README.rst`. - `#&#8203;703 <https://github.com/pytest-dev/pluggy/issues/703>`\_: The internal `pluggy._hooks` module was split into role-specific modules (`_caller`, `_config`, `_decorators`, `_execution` and `_impl`). `pluggy._hooks` remains as a re-export shim, and the public API is unchanged. - `#&#8203;776 <https://github.com/pytest-dev/pluggy/issues/776>`\_: Building `pluggy` without git metadata now yields the placeholder version `1.6.0+fallback` instead of failing, so Dependabot relocks no longer resolve `pluggy` as `0.0.0` and silently downgrade pytest and tox in `uv.lock`. `tox` was dropped from the `dev` dependency group; run it as a tool with `uvx tox`. ### [`v1.6.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-170-2026-10-14) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.5.0...1.6.0) \========================= ## Deprecations and Removals - `#&#8203;632 <https://github.com/pytest-dev/pluggy/issues/632>`\_: Hookspec methods defined without `self` as the first parameter now emit a :class:`DeprecationWarning`. Add `self` as the first parameter or use `@staticmethod`. ## Features - `#&#8203;170 <https://github.com/pytest-dev/pluggy/issues/170>`\_: Hookspecs can now declare default values for arguments, using the usual `def myhook(myarg="default")` syntax. This is mainly a backward compatibility feature, to allow a hookspec to add new parameters to an existing hook without breaking existing *callers*. See :ref:`hookspec_arg_default` for details. - `#&#8203;729 <https://github.com/pytest-dev/pluggy/issues/729>`\_: Tracing now adds detail where `str()` is ambiguous: empty strings and strings containing whitespace are quoted, and enums and paths show their `repr()`. A value spanning several lines is now displayed as a block instead of running into the surrounding trace. ## Bug Fixes - `#&#8203;629 <https://github.com/pytest-dev/pluggy/issues/629>`\_: Fix hooks failing to register on Python 3.14+ when type annotations use forward references. - `#&#8203;315 <https://github.com/pytest-dev/pluggy/issues/315>`\_: Source archives created by `git archive` (including GitHub's "Source code" downloads) now carry version information, so building pluggy from them no longer fails with a missing version. - `#&#8203;442 <https://github.com/pytest-dev/pluggy/issues/442>`\_: With the addition of default values for hookspec arguments, we also changed the precedence of default values for *hookimpl* arguments. Previously, if a hookimpl function declared a default for an argument, it was always used, even if the *hook call* passed an explicit value. Now the precedence is changed to: hook call passed value > hookspec default value > hookimpl default value. See :ref:`hookimpl_arg_defaults`. - `#&#8203;701 <https://github.com/pytest-dev/pluggy/issues/701>`\_: Hookimpls and hookspecs are now discovered via :func:`inspect.getattr_static`, so properties, `cached_property` and other descriptors are no longer executed while scanning a plugin. Hooks declared through such a descriptor are not supported. As a side effect, `@hookimpl`/`@hookspec` applied *above* `@classmethod` or `@staticmethod` is now picked up; previously the marker sat on the wrapper where `getattr()` never saw it. Callables stored directly on a plugin instance -- in its `__dict__` or in a `__slots__` slot -- keep being called exactly as `getattr()` returned them, i.e. without an implicit `self`. - `#&#8203;431 <https://github.com/pytest-dev/pluggy/issues/431>`\_: Fix `HookCaller._remove_plugin()` to remove all hook implementations for a plugin in a single call, instead of only the first one. Also fix `PluginManager.get_hookcallers()` to not return duplicate `HookCaller` entries when a plugin has multiple implementations on the same hook (e.g. via `specname`). - `#&#8203;695 <https://github.com/pytest-dev/pluggy/issues/695>`\_: Fixed :func:`~pluggy.PluginManager.subset_hook_caller()` not excluding removed plugins which use :func:`@hookiml(specname="...") <pluggy.HookimplMarker>`. - `#&#8203;424 <https://github.com/pytest-dev/pluggy/issues/424>`\_: Tracing no longer breaks hook execution when a traced object has a broken `__repr__` or `__str__`. Such a value is now rendered as `<[RuntimeError(...) raised in str()] Broken object at 0x...>`, in the same style pytest uses for unpresentable objects, instead of propagating the exception out of the hook call. - `#&#8203;681 <https://github.com/pytest-dev/pluggy/issues/681>`\_: Tracing no longer crashes with `UnicodeEncodeError` when a hook argument or return value contains lone surrogates; they are escaped with `backslashreplace` before the message reaches the writer. Trace output is otherwise unchanged. - `#&#8203;727 <https://github.com/pytest-dev/pluggy/issues/727>`\_: Fix the warning for hookspec arguments missing from a hook call being attributed to pluggy's own frame instead of to the code making the call. This affected `HookCaller.__call__`, `call_historic` and `call_extra`. - `#&#8203;731 <https://github.com/pytest-dev/pluggy/issues/731>`\_: :func:`PluginManager.register(None) <pluggy.PluginManager.register>` is now ignored instead of having some weird behaviors. - `#&#8203;733 <https://github.com/pytest-dev/pluggy/issues/733>`\_: :meth:`PluginManager.register() <pluggy.PluginManager.register>` now validates all hook implementations of a plugin before registering any of them, so a plugin that fails validation no longer stays partially registered. - `#&#8203;755 <https://github.com/pytest-dev/pluggy/issues/755>`\_: Skip already registered entry-point plugins without evaluating the plugin object's truthiness. - `#&#8203;757 <https://github.com/pytest-dev/pluggy/issues/757>`\_: Restore the project URLs in the package metadata, which were lost in pluggy 1.6.0 when the packaging configuration moved to `pyproject.toml`. Links to the documentation, changelog, issue tracker and funding page were added as well. - `#&#8203;759 <https://github.com/pytest-dev/pluggy/issues/759>`\_: :meth:`PluginManager.unregister() <pluggy.PluginManager.unregister>` now raises :exc:`ValueError` when both `plugin` and `name` are given but refer to different plugins, instead of removing one plugin's hook implementations and another plugin's registry entry. It also fully unregisters plugin objects that are falsy (e.g. define `__len__` returning `0`); previously their name stayed in the registry. - `#&#8203;186 <https://github.com/pytest-dev/pluggy/issues/186>`\_: Fixed broken external documentation references in the list of projects using pluggy. ## Trivial/Internal Changes - `#&#8203;417 <https://github.com/pytest-dev/pluggy/issues/417>`\_: Fix the `tox -e docs` build, which failed under `sphinx-build -W` because nitpicky mode reported unresolved references to the private names. - `#&#8203;590 <https://github.com/pytest-dev/pluggy/issues/590>`\_: The `pluggy.__version__` variable is now dynamically provided via a module-level `__getattr__` implementation, using `importlib` to obtain the installed version. - `#&#8203;691 <https://github.com/pytest-dev/pluggy/issues/691>`\_: Fix outdated links in `README.rst`. - `#&#8203;703 <https://github.com/pytest-dev/pluggy/issues/703>`\_: The internal `pluggy._hooks` module was split into role-specific modules (`_caller`, `_config`, `_decorators`, `_execution` and `_impl`). `pluggy._hooks` remains as a re-export shim, and the public API is unchanged. - `#&#8203;776 <https://github.com/pytest-dev/pluggy/issues/776>`\_: Building `pluggy` without git metadata now yields the placeholder version `1.6.0+fallback` instead of failing, so Dependabot relocks no longer resolve `pluggy` as `0.0.0` and silently downgrade pytest and tox in `uv.lock`. `tox` was dropped from the `dev` dependency group; run it as a tool with `uvx tox`. ### [`v1.5.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-150-2024-04-19) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.4.0...1.5.0) \========================= ## Features - `#&#8203;178 <https://github.com/pytest-dev/pluggy/issues/178>`\_: Add support for deprecating specific hook parameters, or more generally, for issuing a warning whenever a hook implementation requests certain parameters. See :ref:`warn_on_impl` for details. ## Bug Fixes - `#&#8203;481 <https://github.com/pytest-dev/pluggy/issues/481>`\_: `PluginManager.get_plugins()` no longer returns `None` for blocked plugins. ### [`v1.4.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-140-2024-01-24) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.3.0...1.4.0) \========================= ## Features - `#&#8203;463 <https://github.com/pytest-dev/pluggy/issues/463>`\_: A warning :class:`~pluggy.PluggyTeardownRaisedWarning` is now issued when an old-style hookwrapper raises an exception during teardown. See the warning documentation for more details. - `#&#8203;471 <https://github.com/pytest-dev/pluggy/issues/471>`\_: Add :func:`PluginManager.unblock <pluggy.PluginManager.unblock>` method to unblock a plugin by plugin name. ## Bug Fixes - `#&#8203;441 <https://github.com/pytest-dev/pluggy/issues/441>`\_: Fix :func:`~pluggy.HookCaller.call_extra()` extra methods getting ordered before everything else in some circumstances. Regressed in pluggy 1.1.0. - `#&#8203;438 <https://github.com/pytest-dev/pluggy/issues/438>`\_: Fix plugins registering other plugins in a hook when the other plugins implement the same hook itself. Regressed in pluggy 1.1.0. ### [`v1.3.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-130-2023-08-26) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.2.0...1.3.0) \========================= ## Deprecations and Removals - `#&#8203;426 <https://github.com/pytest-dev/pluggy/issues/426>`\_: Python 3.7 is no longer supported. ## Features - `#&#8203;428 <https://github.com/pytest-dev/pluggy/issues/428>`\_: Pluggy now exposes its typings to static type checkers. As part of this, the following changes are made: - Renamed `_Result` to `Result`, and exported as :class:`pluggy.Result`. - Renamed `_HookRelay` to `HookRelay`, and exported as :class:`pluggy.HookRelay`. - Renamed `_HookCaller` to `HookCaller`, and exported as :class:`pluggy.HookCaller`. - Exported `HookImpl` as :class:`pluggy.HookImpl`. - Renamed `_HookImplOpts` to `HookimplOpts`, and exported as :class:`pluggy.HookimplOpts`. - Renamed `_HookSpecOpts` to `HookspecOpts`, and exported as :class:`pluggy.HookspecOpts`. - Some fields and classes are marked `Final` and `@final`. - The :ref:`api-reference` is updated to clearly delineate pluggy's public API. Compatibility aliases are put in place for the renamed types. We do not plan to remove the aliases, but we strongly recommend to only import from `pluggy.*` to ensure future compatibility. Please note that pluggy is currently unable to provide strong typing for hook calls, e.g. `pm.hook.my_hook(...)`, nor to statically check that a hook implementation matches the hook specification's type. ### [`v1.2.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-120-2023-06-21) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.1.0...1.2.0) \========================= ## Features - `#&#8203;405 <https://github.com/pytest-dev/pluggy/issues/405>`\_: The new-style hook wrappers, added in the yanked 1.1.0 release, now require an explicit `wrapper=True` designation in the `@hookimpl()` decorator. ### [`v1.1.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-160-2025-05-15) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.0.0...1.1.0) \========================= ## Deprecations and Removals - `#&#8203;556 <https://github.com/pytest-dev/pluggy/issues/556>`\_: Python 3.8 is no longer supported. ## Bug Fixes - `#&#8203;504 <https://github.com/pytest-dev/pluggy/issues/504>`\_: Fix a regression in pluggy 1.1.0 where using :func:`result.get_result() <pluggy.Result.get_result>` on the same failed :class:`~pluggy.Result` causes the exception's traceback to get longer and longer. - `#&#8203;544 <https://github.com/pytest-dev/pluggy/issues/544>`\_: Correctly pass :class:`StopIteration` through hook wrappers. Raising a :class:`StopIteration` in a generator triggers a :class:`RuntimeError`. If the :class:`RuntimeError` of a generator has the passed in :class:`StopIteration` as cause resume with that :class:`StopIteration` as normal exception instead of failing with the :class:`RuntimeError`. - `#&#8203;573 <https://github.com/pytest-dev/pluggy/issues/573>`\_: Fix python 3.14 SyntaxError by rearranging code. ### [`v1.0.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-100-2021-08-25) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.13.1...1.0.0) \========================= ## Deprecations and Removals - `#&#8203;116 <https://github.com/pytest-dev/pluggy/issues/116>`\_: Remove deprecated `implprefix` support. Decorate hook implementations using an instance of HookimplMarker instead. The deprecation was announced in release `0.7.0`. - `#&#8203;120 <https://github.com/pytest-dev/pluggy/issues/120>`\_: Remove the deprecated `proc` argument to `call_historic`. Use `result_callback` instead, which has the same behavior. The deprecation was announced in release `0.7.0`. - `#&#8203;265 <https://github.com/pytest-dev/pluggy/issues/265>`\_: Remove the `_Result.result` property. Use `_Result.get_result()` instead. Note that unlike `result`, `get_result()` raises the exception if the hook raised. The deprecation was announced in release `0.6.0`. - `#&#8203;267 <https://github.com/pytest-dev/pluggy/issues/267>`\_: Remove official support for Python 3.4. - `#&#8203;272 <https://github.com/pytest-dev/pluggy/issues/272>`\_: Dropped support for Python 2. Continue to use pluggy 0.13.x for Python 2 support. - `#&#8203;308 <https://github.com/pytest-dev/pluggy/issues/308>`\_: Remove official support for Python 3.5. - `#&#8203;313 <https://github.com/pytest-dev/pluggy/issues/313>`\_: The internal `pluggy.callers`, `pluggy.manager` and `pluggy.hooks` are now explicitly marked private by a `_` prefix (e.g. `pluggy._callers`). Only API exported by the top-level `pluggy` module is considered public. - `#&#8203;59 <https://github.com/pytest-dev/pluggy/issues/59>`\_: Remove legacy `__multicall__` recursive hook calling system. The deprecation was announced in release `0.5.0`. ## Features - `#&#8203;282 <https://github.com/pytest-dev/pluggy/issues/282>`\_: When registering a hookimpl which is declared as `hookwrapper=True` but whose function is not a generator function, a :class:`~pluggy.PluginValidationError` exception is now raised. Previously this problem would cause an error only later, when calling the hook. In the unlikely case that you have a hookwrapper that *returns* a generator instead of yielding directly, for example: .. code-block:: python ``` def my_hook_impl(arg): print("before") yield print("after") @hookimpl(hookwrapper=True) def my_hook(arg): return my_hook_impl(arg) ``` change it to use `yield from` instead: .. code-block:: python ``` @hookimpl(hookwrapper=True) def my_hook(arg): yield from my_hook_impl(arg) ``` - `#&#8203;309 <https://github.com/pytest-dev/pluggy/issues/309>`\_: Add official support for Python 3.9. - `#&#8203;251 <https://github.com/pytest-dev/pluggy/issues/251>`\_: Add `specname` option to `@hookimpl`. If `specname` is provided, it will be used instead of the function name when matching this hook implementation to a hook specification during registration (allowing a plugin to register a hook implementation that was not named the same thing as the corresponding `@hookspec`). ### [`v0.13.1`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-0131-2019-11-21) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.13.0...0.13.1) \========================== ## Trivial/Internal Changes - `#&#8203;236 <https://github.com/pytest-dev/pluggy/pull/236>`\_: Improved documentation, especially with regard to references. ### [`v0.13.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-0130-2019-09-10) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.12.0...0.13.0) \========================== ## Trivial/Internal Changes - `#&#8203;222 <https://github.com/pytest-dev/pluggy/issues/222>`\_: Replace `importlib_metadata` backport with `importlib.metadata` from the standard library on Python 3.8+. ### [`v0.12.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-0120-2019-05-27) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.11.0...0.12.0) \========================== ## Features - `#&#8203;215 <https://github.com/pytest-dev/pluggy/issues/215>`\_: Switch from `pkg_resources` to `importlib-metadata` for entrypoint detection for improved performance and import time. This time with `.egg` support. ### [`v0.11.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-0110-2019-05-07) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.10.0...0.11.0) \========================== ## Bug Fixes - `#&#8203;205 <https://github.com/pytest-dev/pluggy/issues/205>`\_: Revert changes made in 0.10.0 release breaking `.egg` installs. ### [`v0.10.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-0110-2019-05-07) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.9.0...0.10.0) \========================== ## Bug Fixes - `#&#8203;205 <https://github.com/pytest-dev/pluggy/issues/205>`\_: Revert changes made in 0.10.0 release breaking `.egg` installs. ### [`v0.9.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-090-2019-02-21) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.8.1...0.9.0) \========================= ## Features - `#&#8203;189 <https://github.com/pytest-dev/pluggy/issues/189>`\_: `PluginManager.load_setuptools_entrypoints` now accepts a `name` parameter that when given will load only entry points with that name. `PluginManager.load_setuptools_entrypoints` also now returns the number of plugins loaded by the call, as opposed to the number of all plugins loaded by all calls to this method. ## Bug Fixes - `#&#8203;187 <https://github.com/pytest-dev/pluggy/issues/187>`\_: Fix internal `varnames` function for PyPy3. ### [`v0.8.1`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-081-2018-11-09) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.8.0...0.8.1) \========================= ## Trivial/Internal Changes - `#&#8203;166 <https://github.com/pytest-dev/pluggy/issues/166>`\_: Add `stacklevel=2` to implprefix warning so that the reported location of warning is the caller of PluginManager. ### [`v0.8.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-080-2018-10-15) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.7.1...0.8.0) \========================= ## Features - `#&#8203;177 <https://github.com/pytest-dev/pluggy/issues/177>`\_: Add `get_hookimpls()` method to hook callers. ## Trivial/Internal Changes - `#&#8203;165 <https://github.com/pytest-dev/pluggy/issues/165>`\_: Add changelog in long package description and documentation. - `#&#8203;172 <https://github.com/pytest-dev/pluggy/issues/172>`\_: Add a test exemplifying the opt-in nature of spec defined args. - `#&#8203;57 <https://github.com/pytest-dev/pluggy/issues/57>`\_: Encapsulate hook specifications in a type for easier introspection. ### [`v0.7.1`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-071-2018-07-28) [Compare Source](https://github.com/pytest-dev/pluggy/compare/0.6.0...0.7.1) \========================= ## Deprecations and Removals - `#&#8203;116 <https://github.com/pytest-dev/pluggy/issues/116>`\_: Deprecate the `implprefix` kwarg to `PluginManager` and instead expect users to start using explicit `HookimplMarker` everywhere. ## Features - `#&#8203;122 <https://github.com/pytest-dev/pluggy/issues/122>`\_: Add `.plugin` member to `PluginValidationError` to access failing plugin during post-mortem. - `#&#8203;138 <https://github.com/pytest-dev/pluggy/issues/138>`\_: Add per implementation warnings support for hookspecs allowing for both deprecation and future warnings of legacy and (future) experimental hooks respectively. ## Bug Fixes - `#&#8203;110 <https://github.com/pytest-dev/pluggy/issues/110>`\_: Fix a bug where `_HookCaller.call_historic()` would call the `proc` arg even when the default is `None` resulting in a `TypeError`. - `#&#8203;160 <https://github.com/pytest-dev/pluggy/issues/160>`\_: Fix problem when handling `VersionConflict` errors when loading setuptools plugins. ## Improved Documentation - `#&#8203;123 <https://github.com/pytest-dev/pluggy/issues/123>`\_: Document how exceptions are handled and how the hook call loop terminates immediately on the first error which is then delivered to any surrounding wrappers. - `#&#8203;136 <https://github.com/pytest-dev/pluggy/issues/136>`\_: Docs rework including a much better introduction and comprehensive example set for new users. A big thanks goes out to [@&#8203;obestwalter](https://github.com/obestwalter) for the great work! ## Trivial/Internal Changes - `#&#8203;117 <https://github.com/pytest-dev/pluggy/issues/117>`\_: Break up the main monolithic package modules into separate modules by concern - `#&#8203;131 <https://github.com/pytest-dev/pluggy/issues/131>`\_: Automate `setuptools` wheels building and PyPi upload using TravisCI. - `#&#8203;153 <https://github.com/pytest-dev/pluggy/issues/153>`\_: Reorganize tests more appropriately by modules relating to each internal component/feature. This is in an effort to avoid (future) duplication and better separation of concerns in the test set. - `#&#8203;156 <https://github.com/pytest-dev/pluggy/issues/156>`\_: Add `HookImpl.__repr__()` for better debugging. - `#&#8203;66 <https://github.com/pytest-dev/pluggy/issues/66>`\_: Start using `towncrier` and a custom `tox` environment to prepare releases! </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xOTAuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE5MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin "renovate/pluggy-1.x:renovate/pluggy-1.x"
git switch "renovate/pluggy-1.x"

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch "master"
git merge --no-ff "renovate/pluggy-1.x"
git switch "renovate/pluggy-1.x"
git rebase "master"
git switch "master"
git merge --ff-only "renovate/pluggy-1.x"
git switch "renovate/pluggy-1.x"
git rebase "master"
git switch "master"
git merge --no-ff "renovate/pluggy-1.x"
git switch "master"
git merge --squash "renovate/pluggy-1.x"
git switch "master"
git merge --ff-only "renovate/pluggy-1.x"
git switch "master"
git merge "renovate/pluggy-1.x"
git push origin "master"
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
andylockran/dtmfapy!11
No description provided.