Changelog

0.7.0 (16-09-2021)

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

0.6.0.post1 (05-08-2021)

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

0.6.0 (02-08-2021)

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

  • The CLI now honnors 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 (22-06-2021)

  • 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 (19-06-2021)

  • 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 (23-05-2021)

  • 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-depencencies 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 (09-03-2021)

  • 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 (19-02-2021)

  • 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 (09-02-2021)

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

0.2.0 (07-02-2021)

  • 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 (29-10-2020)

  • 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 miscelaneous 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 (08-09-2020)

  • 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 (10-06-2020)

  • Fix bug preventing the CLI from being invoked

  • Improved documentation

0.0.3 (09-06-2020)

  • Misc improvements

  • Added documentation

0.0.2 (29-05-2020)

  • Add setuptools as a default fallback backend

  • Fix extras handling in requirement strings

0.0.1 (17-05-2020)

  • Initial release