- Accept
os.PathLike[str]
in addition tostr
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)
- Failure to create a virtual environment in the
build.env
module now raisesbuild.FailedProcessError
(PR #442)
- Add
build.util
module with an high-level utility API (PR #340)
- 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
andbuild.env
(PR #333) - Switch to a TOML v1 compliant parser (PR #336, Fixes #308)
- Dropped support for Python 2 and 3.5.
- 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)
- 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)
- 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 overrideswarnings.showwarning
or runscolorama.init
on import (PR #312)
- 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 toProjectBuilder
(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)
- As a side-effect of PR #260, projects not containing either a
pyproject.toml
orsetup.py
will be reported as invalid. This affects projects specifying only asetup.cfg
, such projects are recommended to add apyproject.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 ofbuild.__main__.build_package
has been renamed toskip_dependency_check
(PR #297) build.ConfigSettings
has been renamed tobuild.ConfigSettingsType
(PR #298)build.ProjectBuilder.build_dependencies
tobuild.ProjectBuilder.build_system_requires
(PR #284, Fixes #182)build.ProjectBuilder.get_dependencies
tobuild.ProjectBuilder.get_requires_for_build
(PR #284, Fixes #182)
- 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)
- 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)
- 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)
- 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
- 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
- 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
- Fix bug preventing the CLI from being invoked
- Improved documentation
- Misc improvements
- Added documentation
- Add setuptools as a default fallback backend
- Fix extras handling in requirement strings
- Initial release