Upgrading pluggy 0.13 to 1
Breaking0.13.1 → 1.7.0Breaking6Platform8Deprecated2New9Changed12Fixed19Other5
BreakingUpgrade verdict
6 breaking changes and 8 platform requirement changes.
In plain terms
- 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.
Must act 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.
What you must change
Breaking6
Removes deprecated implprefix support; decorate hook implementations with a HookimplMarker instance instead.
implprefixHookimplMarkerRemoves the deprecated proc argument to call_historic; use result_callback instead.
call_historicprocresult_callbackRemoves 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=TrueMarks internal pluggy.callers, pluggy.manager and pluggy.hooks private with a _ prefix; only top-level pluggy API is public.
pluggy.callerspluggy.managerpluggy.hookspluggy._callersPlatform8
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.
Deprecations to plan for
Deprecated2
Hookspec methods defined without self as the first parameter now emit a DeprecationWarning.
DeprecationWarningAdds compatibility aliases for renamed types, recommending imports only from pluggy.*.