Skip to content

Upgrading pluggy 0.13 to 1

Breaking0.13.1 → 1.7.0Breaking6Platform8Deprecated2New9Changed12Fixed19Other5

BreakingUpgrade verdict

6 breaking changes and 8 platform requirement changes.

  • An old way of marking plugin functions as hooks is gone; use the marker decorator instead.
  • An old argument for receiving results from historic hook calls is removed; use the callback argument instead.
  • An old way to read a hook result is removed; the replacement reports errors by raising them.
  • An old hook calling mechanism is removed.
Top 5 of 16 that need code or config changes

Python requirement changed in 1.7.0: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* → >=3.10.

Breaking6
Removes deprecated implprefix support; decorate hook implementations with a HookimplMarker instance instead.
implprefixHookimplMarker
Removes the deprecated proc argument to call_historic; use result_callback instead.
call_historicprocresult_callback
Removes the _Result.result property; use _Result.get_result() instead, which raises if the hook raised.
_Result.result_Result.get_result()
Removes the legacy __multicall__ recursive hook calling system.
__multicall__
New-style hook wrappers now require an explicit wrapper=True in the @hookimpl() decorator.
@hookimpl()wrapper=True
Marks internal pluggy.callers, pluggy.manager and pluggy.hooks private with a _ prefix; only top-level pluggy API is public.
pluggy.callerspluggy.managerpluggy.hookspluggy._callers
Platform8
Drops support for Python 3.8.
Drops support for Python 3.7.
Drops support for Python 3.6.
Adds official support for Python 3.11 and 3.12.
Removes official support for Python 3.4.
Drops support for Python 2; use pluggy 0.13.x for Python 2 support.
Removes official support for Python 3.5.
Adds official support for Python 3.9.
Deprecated2
Hookspec methods defined without self as the first parameter now emit a DeprecationWarning.
DeprecationWarning
Adds compatibility aliases for renamed types, recommending imports only from pluggy.*.