Changelog#

0.10.0 (2023-01-11)#

  • Replace pep517 dependency with pyproject_hooks, into which pep517 has been renamed (PR #539, Fixes #529)

  • Change build backend from setuptools to flit (PR #470, Fixes #394)

  • Dropped support for Python 3.6 (PR #532)

0.9.0 (2022-10-27)#

  • Hide a Python 3.11.0 unavoidable warning with venv (PR #527)

  • Fix infinite recursion error in check_dependency with circular dependencies (PR #512, Fixes #511)

  • Only import colorama on Windows (PR #494, Fixes #493)

  • Flush output more often to reduce interleaved output (PR #494)

  • Small API cleanup, like better __all__ and srcdir being read only. (PR #477)

  • Only use importlib_metadata when needed (PR #401)

  • Clarify in printout when build dependencies are being installed (PR #514)

0.8.0 (2022-05-22)#

  • Accept os.PathLike[str] in addition to str for paths in public API (PR #392, Fixes #372)

  • Add schema validation for build-system table to check conformity with PEP 517 and PEP 518 (PR #365, Fixes #364)

  • Better support for Python 3.11 (sysconfig schemes PR #434, PR #463, tomllib PR #443, warnings PR #420)

  • Improved error printouts (PR #442)

  • Avoid importing packaging unless needed (PR #395, Fixes #393)

Breaking Changes#

  • Failure to create a virtual environment in the build.env module now raises build.FailedProcessError (PR #442)

0.7.0 (2021-09-16)#

  • Add build.util module with an high-level utility API (PR #340)

0.6.0.post1 (2021-08-05)#

  • Fix compatibility with Python 3.6 and 3.7 (PR #339, Fixes #338)

0.6.0 (2021-08-02)#

  • Improved output (PR #333, Fixes #142)

  • The CLI now honors NO_COLOR (PR #333)

  • The CLI can now be forced to colorize the output by setting the FORCE_COLOR environment variable (PR #335)

  • Added logging to build and build.env (PR #333)

  • Switch to a TOML v1 compliant parser (PR #336, Fixes #308)

Breaking Changes#

  • Dropped support for Python 2 and 3.5.

0.5.1 (2021-06-22)#

  • Fix invoking the backend on an inexistent output directory with multiple levels (PR #318, Fixes #316)

  • When building wheels via sdists, use an isolated temporary directory (PR #321, Fixes #320)

0.5.0 (2021-06-19)#

  • Add ProjectBuilder.metadata_path helper (PR #303, Fixes #301)

  • Added a build.__main__.build_package_via_sdist method (PR #304)

  • Use appropriate installation scheme for Apple Python venvs (PR #314, Fixes #310)

Breaking Changes#

  • Binary distributions are now built via the sdist by default in the CLI (PR #304, Fixes #257) - python -m build will now build a sdist, extract it, and build a wheel from the source

  • As a side-effect of PR #304, build.__main__.build_package no longer does CLI error handling (print nice message and exit the program)

  • Importing build.__main__ no longer has any side-effects, it no longer overrides warnings.showwarning or runs colorama.init on import (PR #312)

0.4.0 (2021-05-23)#

  • Validate that the supplied source directory is valid (PR #260, Fixes #259)

  • Set and test minimum versions of build’s runtime dependencies (PR #267, Fixes #263)

  • Use symlinks on creating venv’s when available (PR #274, Fixes #271)

  • Error sooner if pip upgrade is required and fails (PR #288, Fixes #256)

  • Add a runner argument to ProjectBuilder (PR #290, Fixes #289)

  • Hide irrelevant pep517 error traceback and improve error messages (PR #296)

  • Try to use colorama to fix colors on Windows (PR #300)

Breaking Changes#

  • As a side-effect of PR #260, projects not containing either a pyproject.toml or setup.py will be reported as invalid. This affects projects specifying only a setup.cfg, such projects are recommended to add a pyproject.toml. The new behavior is on par with what pip currently does, so if you are affected by this, your project should not be pip installable.

  • The --skip-dependencies option has been renamed to --skip-dependency-check (PR #297)

  • The skip_dependencies argument of build.__main__.build_package has been renamed to skip_dependency_check (PR #297)

  • build.ConfigSettings has been renamed to build.ConfigSettingsType (PR #298)

  • build.ProjectBuilder.build_dependencies to build.ProjectBuilder.build_system_requires (PR #284, Fixes #182)

  • build.ProjectBuilder.get_dependencies to build.ProjectBuilder.get_requires_for_build (PR #284, Fixes #182)

0.3.1 (2021-03-09)#

  • Support direct usage from pipx run in 0.16.1.0+ (PR #247)

  • Use UTF-8 encoding when reading pyproject.toml (PR #251, Fixes #250)

0.3.0 (2021-02-19)#

  • Upgrade pip based on venv pip version, avoids error on Debian Python 3.6.5-3.8 or issues installing wheels on Big Sur (PR #229, PR #230, Fixes #228)

  • Build dependencies in isolation, instead of in the build environment (PR #232, Fixes #231)

  • Fallback on venv if virtualenv is too old (PR #241)

  • Add metadata preparation hook (PR #217, Fixes #130)

0.2.1 (2021-02-09)#

  • Fix error from unrecognised pip flag on Python 3.6.0 to 3.6.5 (PR #227, Fixes #226)

0.2.0 (2021-02-07)#

  • Check dependencies recursively (PR #183, Fixes #25)

  • Build wheel and sdist distributions in separate environments, as they may have different dependencies (PR #195, Fixes #194)

  • Add support for pre-releases in check_dependency (PR #204, Fixes #191)

  • Fixes console scripts not being available during build (PR #221, Fixes #214)

  • Do not add the default backend requirements to requires when no backend is specified (PR #177, Fixes #107)

  • Return the sdist name in ProjectBuild.build (PR #197)

  • Improve documentation (PR #178, PR #203)

  • Add changelog (PR #219, Fixes #169)

Breaking changes#

  • Move config_settings argument to the hook calls (PR #218, Fixes #216)

0.1.0 (2020-10-29)#

  • Moved the upstream to PyPA

  • Fixed building with isolation in a virtual environment

  • Added env.IsolatedEnv abstract class

  • Added env.IsolatedEnvBuilder (replaces env.IsolatedEnvironment usages)

  • Added python_executable argument to the ProjectBuilder constructor

  • Added –version/-V option to the CLI

  • Added support for Python 3.9

  • Added py.typed marker

  • Various miscellaneous fixes in the virtual environment creation

  • Many general improvements in the documentation

  • Documentation moved to the furo theme

  • Updated the CoC to the PSF CoC, which PyPA has adopted

Breaking changes#

  • Renamed the entrypoint script to pyproject-build

  • Removed default arguments from all paths in ProjectBuilder

  • Removed ProjectBuilder.hook

  • Renamed __main__.build to __main__.build_package

  • Changed the default outdir value to {srcdir}/dest

  • Removed env.IsolatedEnvironment

0.0.4 (2020-09-08)#

  • Packages are now built in isolation by default

  • Added –no-isolation/-n flag to build in the current environment

  • Add –config-setting/-C option to pass options to the backend

  • Add IsolatedEnvironment class

  • Fix creating the output directory if it doesn’t exit

  • Fix building with in-tree backends

  • Fix broken entrypoint script (python-build)

  • Add warning about incomplete verification when verifying extras

  • Automatically detect typos in the build system table

  • Minor documentation improvements

0.0.3.1 (2020-06-10)#

  • Fix bug preventing the CLI from being invoked

  • Improved documentation

0.0.3 (2020-06-09)#

  • Misc improvements

  • Added documentation

0.0.2 (2020-05-29)#

  • Add setuptools as a default fallback backend

  • Fix extras handling in requirement strings

0.0.1 (2020-05-17)#

  • Initial release