Vendored packages and coverage failed to import on Python 3.15, which
removed the legacy load_module() fallback from the import machinery. Both
of PyBuilder’s meta path loaders now implement the PEP 451
create_module()/exec_module() protocol.
packaging 26.3 gave Requirement a __slots__ layout, breaking the
project_name attribute PyBuilder attached to dependency requirements.
Requirement names are now read from Requirement.name.
Removed Features
Removed compatibility workarounds for Python versions below 3.10
Vendorized Dependency Upgrades
Bumped vendorized dependencies, notably:
virtualenv 20.36.1 to 21.7.4, which splits interpreter discovery into a
separate python-discovery package and no longer depends on click
importlib-metadata 8.7.1 to 9.0.0
packaging 26.0 to 26.3
importlib-resources 6.5.2 to 7.1.0
rich 14.3.2 to 15.0.0
wheel 0.46.3 to 0.48.0
setuptools to 84.0.0
Version 0.13.20
New Features
pyb -i / pyb --project-info — outputs the full project configuration as
pretty-printed JSON without running a build. Runs plugin initializers to
populate all properties but does not execute any tasks or create venvs.
JSON goes to stdout; log messages go to stderr so the output is
machine-parseable.