Releases: jazzband/pip-tools
v7.5.0
2025-07-30
Bug fixes
-
Fixed the ordering of format controls to preserve underlying
pip
behavior -- by @sethmlarson.PRs and issues: #2082
-
Fixed
NoCandidateFound
exception to be compatible withpip >= 24.1
-- by @chrysle.PRs and issues: #2083
-
pip-compile
now produces relative paths for editable dependencies -- by @macro1.PRs and issues: #2087
-
Fixed crash failures due to incompatibility with
pip >= 25.1
-- by @gkreitz and @sirosen.
Features
-
pip-compile
now treats package versions requested on the command line as constraints for the underlyingpip
usage.
This applies to build deps in addition to normal package requirements.-- by @chrysle
PRs and issues: #2106
-
pip-tools
now tests on and officially supports Python 3.12 -- by @sirosen.PRs and issues: #2188
-
Requirements file paths in
pip-compile
output are now normalized to POSIX-style, even whenpip-compile
is run on Windows.
This provides more consistent output across various platforms.-- by @sirosen
PRs and issues: #2195
-
pip-tools
now tests against and supportspip
up to version25.1
-- by @sirosen.PRs and issues: #2195
Removals and backward incompatible breaking changes
-
pip-compile
will now relativize the requirements paths which are recorded in its output.
Paths are made relative to the working directory.
This provides more consistent results acrosspip
versions.-- by @sirosen
Packaging updates and notes for downstreams
-
pip-tools
releases are now configured via Trusted Publishing.
This allows for signature and attestation verification via PyPI.-- by @webknjaz
Contributor-facing changes
-
pip-tools
's CI now runs against pinnedpip
versions, declared intox
configuration as the "supported" version.
This does not change the support policy forpip
versions, but declares what is tested and known to work.-- by @webknjaz
PRs and issues: #2142
-
pip-tools
now tests against PyPy 3.10 as its supported PyPy version -- by @webknjaz.PRs and issues: #2146
-
pip-tools
now uses Towncrier to manage the changelog.-- by @sirosen and @webknjaz, with suggestions from @jayaddison
-
pip-tools
now usessphinx-issues
to link to issues, PRs, commits, and user accounts -- by @sirosen.PRs and issues: #2202
7.4.1
7.4.0
Features:
- Allow force-enabling or force-disabling colorized output (#2041). Thanks @aneeshusa
- Add support for command-specific configuration sections (#1966). Thanks @chrysle
- Add options for including build dependencies in compiled output (#1681). Thanks @apljungquist
Bug Fixes:
- Fix for
src-files
not being used when specified in a config file (#2015). Thanks @csalerno-asml - Fix ignorance of inverted CLI options in config for
pip-sync
(#1989). Thanks @chrysle - Filter out origin ireqs for extra requirements before writing output annotations (#2011). Thanks @chrysle
- Make BacktrackingResolver ignore extras when dropping existing constraints (#1984). Thanks @chludwig-haufe
- Display
pyproject.toml
's metatada parsing errors in verbose mode (#1979). Thanks @szobov
Other Changes:
- Add mention of pip-compile-multi in Other useful tools README section (#1986). Thanks @peterdemin
7.3.0
Features:
- Add
--no-strip-extras
and warn about strip extras by default (#1954). Thanks @ryanhiebert
Bug Fixes:
- Fix revealed default config in header if requirements in subfolder (#1904). Thanks @atugushev
- Direct references show extra requirements in .txt files (#1582). Thanks @FlorentJeannot
Other Changes:
- Document how to run under
pipx run
(#1951). Thanks @brettcannon - Document that the backtracking resolver is the current default (#1948). Thanks @jeffwidman
7.2.0
Features:
- Add
-c/--constraint
option topip-compile
(#1936). Thanks @atugushev
Bug Fixes:
- Allow options in config from both
pip-compile
andpip-sync
(#1933). Thanks @atugushev - Fix rejection of negating CLI boolean flags in config (#1913). Thanks @chrysle
Other Changes:
- Add Command Line Reference section to docs (#1934). Thanks @atugushev
7.1.0
Features:
- Validate parsed config against CLI options (#1910). Thanks @atugushev
Bug Fixes:
- Fix a bug where pip-sync would unexpectedly uninstall some packages (#1919). Thanks @atugushev
7.0.0
Backwards Incompatible Changes:
- Default to
--resolver=backtracking
(#1897). Thanks @atugushev - Drop support for Python 3.7 (#1879). Thanks @chrysle
Features:
- Add support for
pip==23.2
where refactored outDEV_PKGS
(#1906). Thanks @atugushev - Add
--no-config
option (#1896). Thanks @atugushev
Bug Fixes:
- Sync direct references with hashes (#1885). Thanks @siddharthab
- Fix missing
via
s when more than two input files are used (#1890). Thanks @lpulley
6.14.0
Features:
- Support config defaults using
.pip-tools.toml
orpyproject.toml
(#1863). Thanks @j00bar - Log a warning if the user specifies
-P
and the output file is present but empty (#1822). Thanks @davidmreed - Improve warning for
pip-compile
if no--allow-unsafe
was passed (#1867). Thanks @chrysle
Other Changes:
- Correct in README
pre-commit
hook to run offrequirements.in
(#1847). Thanks @atugushev - Add
pyprojects.toml
example for using setuptools (#1851). Thanks @shatakshiiii
6.13.0
Features:
- Add support for self-referential extras (#1791). Thanks @q0w
- Add support for
pip==23.1
where removedFormatControl
inWheelCache
(#1834). Thanks @atugushev - Add support for
pip==23.1
where refactored requirement options (#1832). Thanks @atugushev - Add support for
pip==23.1
where deprecated--install-option
has been removed (#1828). Thanks @atugushev
Bug Fixes:
Other Changes:
- Update examples in README (#1835). Thanks @lucaswerkmeister
6.12.3
Bug Fixes:
- Remove extras from user-supplied constraints in backtracking resolver (#1808). Thanks @thomdixon
- Fix for sync error when the ireqs being merged have no names (#1802). Thanks @richafrank