# What changed in build

> 21 changes in build 1 from its official release notes, upgrade guides and advisories: 4 breaking, 1 deprecations, 1 security, 2 new APIs and options. Each one cited. Sources checked 2026-10-28. HTML: https://unstale.sh/pypi/build/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## build 1

### Breaking changes

- The CLI now rejects a file as the environment directory. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- Dependency floors are raised to Python 3.10 minimums. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- The minimum virtualenv dependency is raised to address vulnerable dependency floors. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- The minimum wheel dependency is raised to address vulnerable dependency floors. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)

### Security

- Fixes hash verification so it can no longer be silently skipped when using dependency constraints. (1.6.0) — [release notes](https://github.com/pypa/build/releases/tag/1.6.0)

### Deprecations

- The project_wheel_metadata utility is deprecated. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)

### New APIs and options

- The location of the isolated build environment can now be controlled. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- Adds an option to reuse compiler caches when extracting an sdist. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)

### Behavior and default changes

- The default installer is now pip. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- The missing-dependencies error now shows wanted versus found versions. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- The CLI now accepts an sdist tarball as the srcdir argument. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)

### Tooling

- Debug paths are surfaced when a backend build fails. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- Adds a machine-readable build report and metadata from a wheel. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- The CLI can now obtain metadata from a wheel. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- Builds now report resolved build dependency versions. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- The CLI warns when config settings have no value. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)

### Fixes and other changes

- CLI warnings are written to stderr instead of stdout. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- Color support is decided separately for each output stream instead of solely from stdout. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- The dist-info directory is derived from wheel contents rather than the filename. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- Requirements files are written with LF line endings rather than os.linesep. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
- Verbose subprocess output is drained without using a worker thread. (1.5.1) — [release notes](https://github.com/pypa/build/releases/tag/1.5.1)
