The core of this package has been renamed to pyproject-hooks. Please use that package (low level) or build (higher level) in place of pep517.


  • 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).


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


  • Fix DeprecationWarning in tomli.


  • 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.


  • Avoid shadowing imports such as colorlog in the backend, by moving the script into a separate subpackage.
  • Issue warnings when using the deprecated 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.


  • Silence some static analysis warnings.


  • 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 Pep517HookCaller 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.