Sourced from build's releases.
1.6.0
What's Changed
- Replace prettier with mdformat and yamlfmt by
@gaborbernatin pypa/build#1133- Let yamlfmt format the workflows by
@gaborbernatin pypa/build#1134- 🐛 fix(release): semver auto bump, changelog reflow, and roll back 1.5.1 by
@gaborbernatin pypa/build#1132- fix: hash verification in --dependency-constraints-txt could be silently skipped by
@manfred-kaiserin pypa/build#1140- 🐛 fix(ci): bump build-and-inspect-python-package to v3.0.1 by
@gaborbernatin pypa/build#1147- 🐛 fix(ci): pin coverage core to ctrace so test contexts record by
@gaborbernatin pypa/build#1148- chore: run mypy on more parts of the code by
@henryiiiin pypa/build#1151- chore: turn up strictness on mypy by
@henryiiiin pypa/build#1153- chore: faster mypy, fix merge error by
@henryiiiin pypa/build#1156- 🐛 fix(ci): rerun integration tests on transient network errors by
@gaborbernatin pypa/build#1150- chore: clean up unused casts in tests by
@henryiiiin pypa/build#1154- refactor(typing): apply review feedback from #1093 by
@henryiiiin pypa/build#1155- chore: Generator is more accurate than Iterator by
@henryiiiin pypa/build#1152- tests: mark test_main_sdist_input_end_to_end with pytest.mark.network by
@frenzymadnessin pypa/build#1144- Revert "⚠️ feat(util): deprecate project_wheel_metadata" by
@henryiiiin pypa/build#1158- tests: download integration sources once per run by
@henryiiiin pypa/build#1157- Use stdlib
importlib.metadatafor typing by@laydayin pypa/build#1162- Drop redundant
exc_infoparameter from backend exception wrapper by@laydayin pypa/build#1161- Drop a few PyPy-specific test skips by
@laydayin pypa/build#1164- 🔧 chore: batch dependency updates weekly on Tuesday by
@gaborbernatin pypa/build#1165- 👷 ci: use app token for releases by
@gaborbernatin pypa/build#1169New Contributors
@manfred-kaisermade their first contribution in pypa/build#1140@frenzymadnessmade their first contribution in pypa/build#1144Full Changelog: https://github.com/pypa/build/compare/1.5.1...1.6.0
Sourced from build's changelog.
#################### 1.6.0 (2026-08-27) ####################
Features
- Add
--report=PATHto write a machine-readable JSON report of built artifacts;--metadatanow also accepts.whlfiles - by :user:gaborbernat(:issue:198)- The
srcdirargument now accepts.tar.gzsource distributions, extracting and building from them - by :user:gaborbernat(:issue:311)- The "Unmet dependencies" error from
--no-isolationbuilds now shows the wanted version, found version, and interpreter - by :user:gaborbernat(:issue:504)- Add
--sdist-extract-dirto extract the intermediate sdist into a persistent directory, enabling compiler cache reuse across rebuilds - by :user:gaborbernat(:issue:614)- Add
--env-dirto place the isolated build environment at a fixed path, enabling compiler cache reuse across builds
- by :user:
gaborbernat(:issue:655)- Print a summary of resolved dependency versions (
name==version) after installing them in isolated builds - by :user:gaborbernat(:issue:959)- On build failure, print a tip pointing to
--env-dirand--sdist-extract-dirfor debugging and link to the "Debug a failed build" how-to - reported by :user:dimpase, implemented by :user:gaborbernat(:issue:966)
Bugfixes
- Drain verbose subprocess output inline instead of using a
ThreadPoolExecutor, which silently swallowed logging errors - by :user:henryiii(:issue:1098)- Reject a file passed as
--env-dirwith a clear error instead of a rawFileExistsError- by :user:henryiii(:issue:1100)- Emit CLI warnings to stderr instead of stdout, so they no longer corrupt
--metadataJSON output on stdout - by :user:ymyzk(:issue:1111)- Fix the Windows symlink support probe always returning
Falsedue to a stale object interpolated into the destination path - by :user:henryiii(:issue:1118)- Fix
metadata_path's build-backend fallback returning a nonexistent dist-info path for wheels with a build tag - by :user:henryiii(:issue:1119)- Write pip/uv requirements and constraints files with
\ninstead ofos.linesep, avoiding doubled\r\r\nline endings on Windows - by :user:henryiii(:issue:1120)- Batch of small robustness fixes: correct macOS release parsing for the minimum pip version, avoid sharing the mutable default build-system table between builders, keep the original error when isolated-environment setup fails early, and raise
BuildExceptionfor an invalid wheel - by :user:henryiii(:issue:1121)- Decide color support independently for stdout and stderr instead of only checking
stdout.isatty(), so redirecting one stream no longer disables or leaks ANSI colors on the other - by :user:henryiii(:issue:1123)- Pass
--dependency-constraints-txtfiles through to the installer unmodified instead of re-parsing them into a deduplicated set of lines, fixing a case where a hashed requirement (e.g. frompip-compile --generate-hashes) could have its--hashcontinuation line separated from its requirement line and silently dropped, depending on the interpreter's hash seed - by :user:manfred-kaiser(:issue:1140)
... (truncated)
7ac9efe
chore: prepare for 1.6.0e57e2bf
👷 ci: use app token for releases (#1169)66438ab
pre-commit: bump repositories (#1167)4ed9658
build(deps): bump the github-actions group with 3 updates (#1166)c76707f
🔧 chore: batch dependency updates weekly on Tuesday (#1165)b317437
Drop a few PyPy-specific test skips (#1164)561f331
pre-commit: bump repositories (#1163)9456281
refactor: drop redundant exc_info parameter from backend
exception wrapper ...3e7a445
Use stdlib importlib.metadata for typing (#1162)9a2e1e9
tests: download integration sources once per run (#1157)Sourced from click's releases.
8.5.0
This is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.
We encourage everyone to upgrade. You can read more about our Version Support Policy on our website.
PyPI: https://pypi.org/project/click/8.5.0/ Changes: https://click.palletsprojects.com/page/changes/#version-8-5-0 Milestone https://github.com/pallets/click/milestone/33
- Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing
bash,zsh, andfishcompleters. Use_FOO_BAR_COMPLETE=powershell_source foo-barto generate the completion script. #2672 #3637- Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. #2986 #3505
- {class}
Argumentaccepts ahelpparameter, and help output includes aPositional argumentssection when argument help is available. #2983 #3473confirm()andprompt()strip ANSI color and style codes from the prompt when the output stream does not support them, matchingecho(). This stripping was lost in8.4.0when #2969 began writing the prompt withinput()directly. #3572 #3653- {class}
Pathwithallow_dash=Trueno longer triggers aBytesWarning, an error underpython -bb, when checking a value against the-convention. #2877 #3642- Add {func}
custom_version_option, a--versionoption whose output is produced by a callback, covering cases {func}version_optionintentionally does not. The feature set of {func}version_optionis now frozen; see [discussion #3527](https://github.com/pallets/click/discussions/3527). #3581style()andsecho()no longer silently drop the 256-color index0(black) passed asfgorbg, and now validate color arguments. Invalid colors raise aValueErrorinstead of aTypeError. #3677- The automatic help option stores its value under the reserved name
_click_default_helpinstead ofhelp, so a parameter namedhelpno longer breaks parsing. The new name is visible in {meth}Command.to_info_dictoutput. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). #2819 #3678unstyleand the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. #3681- Streamline
Optionflag handling: the flag-kind, type, lazy-default and validation steps inOption.__init__move into focused helpers, andflag_valueanddefaultkeep their unset sentinel at construction (resolved lazily on read) sois UNSETreliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dictnow resolvesdefault=Trueon a feature switch to itsflag_value, matching what the function receives at call
... (truncated)
Sourced from click's changelog.
Version 8.5.0
Released 2026-08-24
- Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing
bash,zsh, andfishcompleters. Use_FOO_BAR_COMPLETE=powershell_source foo-barto generate the completion script. {issue}2672{pr}3637- Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. {issue}
2986{pr}3505- {class}
Argumentaccepts ahelpparameter, and help output includes aPositional argumentssection when argument help is available. {issue}2983{pr}3473confirm()andprompt()strip ANSI color and style codes from the prompt when the output stream does not support them, matchingecho(). This stripping was lost in8.4.0when {pr}2969began writing the prompt withinput()directly. {issue}3572{pr}3653- Fix test failures when using pytest >= 9.1. {pr}
3656- {class}
Pathwithallow_dash=Trueno longer triggers aBytesWarning, an error underpython -bb, when checking a value against the-convention. {issue}2877{pr}3642- Add {func}
custom_version_option, a--versionoption whose output is produced by a callback, covering cases {func}version_optionintentionally does not. The feature set of {func}version_optionis now frozen; see [discussion #3527](https://github.com/pallets/click/discussions/3527). {pr}3581style()andsecho()no longer silently drop the 256-color index0(black) passed asfgorbg, and now validate color arguments. Invalid colors raise aValueErrorinstead of aTypeError. {pr}3677- The automatic help option stores its value under the reserved name
_click_default_helpinstead ofhelp, so a parameter namedhelpno longer breaks parsing. The new name is visible in {meth}Command.to_info_dictoutput. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). {issue}2819{pr}3678unstyleand the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. {pr}3681- Streamline
Optionflag handling: the flag-kind, type, lazy-default and validation steps inOption.__init__move into focused helpers, andflag_valueanddefaultkeep their unset sentinel at construction (resolved lazily on read) sois UNSETreliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dictnow resolvesdefault=Trueon a feature switch to itsflag_value, matching what the function receives at call time. {pr}3641- {func}
get_binary_streamand {func}get_text_streamare deprecated and will be removed in Click 9.0. {issue}3481{pr}3695- The following
click.utilsnames were never intentionally public and are now private (_-prefixed). The old names remain available with aDeprecationWarninguntil Click 9.0:LazyFile,KeepOpenFile,
... (truncated)
8b19813
Release version 8.5.02c8cd3a
Add FAQ entry about UnicodeEncodeError on Windows (#3778)131c86a
Add FAQ entry about UnicodeEncodeError on Windowse1fd594
Add support of pathlib.Path to edit (#3781)a1d8785
Add support of pathlib.Path to edit2103e15
Forward all user's parameters set in PAGER and improve flag
detection (#3777)a6256bf
Forwards all user's parameters set in PAGER61b69e9
Resolve the pager command once, in _pager_contextmanager
(#3776)9835b0f
Resolve the pager command once, in
_pager_contextmanagerf36d58b
Refactor pager stream handling (#3767)