Changelog

v1.2

  • Improve interoperability with importlib.metadata, fixing a regression in setuptools compatibility in 1.1 (#199).

  • Clean up the _in_process directory inside the package from sys.path before imporing the backend (#193).

v1.1

  • Add type annotations to the public API.

  • More careful handling of the backend-path key from pyproject.toml. Previous versions would load the backend and then check that it was loaded from the specified path; the new version only loads it from the specified path. The BackendInvalid exception is now a synonym for BackendUnavailable, and code should move to using the latter name.

v1.0

  • Rename package to pyproject_hooks (from pep517).

  • Remove deprecated modules (.build, .check and .envbuild). Use the build project instead for this higher-level functionality of setting up a temporary build environment.

  • Require Python 3.7 or above.

  • Use tomllib from the standard library on Python 3.11. pyproject_hooks now has no external dependencies when installed in Python 3.11.

  • Avoid chaining exceptions when using the fallback implementation for prepare_metadata_for_build_wheel().

  • Fix propagating error message for BackendInvalid errors.

v0.13

  • Remove support for end-of-life Pythons. Now requires Python3.6+.

  • Remove support for toml package. Now requires tomli.

  • Rely on preferred “files” API on Python 3.9 and later (#140).

v0.12

  • Add method for pip to check if build_editable hook is supported. This is a private API for now.

v0.11.1

  • Fix DeprecationWarning in tomli.

v0.11

  • Support editable hooks (PEP 660).

  • Use the TOML 1.0 compliant tomli parser module on Python 3.6 and above.

  • Ensure TOML files are always read as UTF-8.

  • Switch CI to Github actions.

v0.10

  • Avoid shadowing imports such as colorlog in the backend, by moving the _in_process.py script into a separate subpackage.

  • Issue warnings when using the deprecated pep517.build and pep517.check modules at the command line. See the PyPA build project for a replacement.

  • Allow building with flit_core 3.x.

  • Prefer the standard library unittest.mock to mock for tests on Python 3.6 and above.

v0.9.1

  • Silence some static analysis warnings.

v0.9

  • Deprecated the higher level API which handles creating an environment and installing build dependencies. This was not very complete, and the PyPA build project is designed for this use case.

  • New python_executable parameter for BuildBackendHookCaller to run hooks with a different Python interpreter.

  • Fix for locating the script to run in the subprocess in some scenarios.

  • Fix example in README to get build-backend correctly.

  • Created documentation on Read the Docs

  • Various minor improvements to testing.