Changelog - build 0.10.0

Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# 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