Releases: jazzband/pip-tools
v7.5.3
2026-02-11
Bug fixes
-
The option
--unsafe-packageis now normalized -- by @shifqu.PRs and issues: #2150
-
Fixed a bug in which
pip-compilelost any index URL options when
looking up hashes -- by @sirosen.This caused errors when a package was only available from an extra
index, and causedpip-compileto incorrectly drop index URL options
from output, even when they were present in the input requirements. -
Fixed removal of temporary files used when reading requirements from stdin
-- by @sirosen.
Features
-
pip-toolsis now tested against Python 3.14 and 3.14t in CI, and
marks them as supported in the core packaging metadata
-- by @webknjaz.PRs and issues: #2255
-
pip-tools is now compatible with pip 26.0 -- by @sirosen.
Removals and backward incompatible breaking changes
- Removed support for Python 3.8 -- by @sirosen.
Improved documentation
-
The change log management infra now allows the maintainers to add notes
before and after the regular categories -- by @webknjaz. -
Added documentation clarifying that
pip-compilereads the existing
output file as a constraint source, and how to use--upgradeto
refresh dependencies -- by @maliktafheem.PRs and issues: #2307
Packaging updates and notes for downstreams
-
pip-toolsis now tested against Python 3.14 and 3.14t in CI, and
marks them as supported in the core packaging metadata
-- by @webknjaz.PRs and issues: #2255
Contributor-facing changes
-
Consistency of the Markdown files is now being enforced by linting
with pymarkdownlnt -- by @webknjaz.PRs and issues: #2256
-
The linting is now set up to perform structured GitHub Actions
workflows and actions checks against json schemas
-- by @webknjaz.PRs and issues: #2273
-
The CI/CD is now set up so that the distribution build job
is a part of the test pipeline. That pipeline is included in
the release workflow which sources the artifact in produces.
The tests must now pass for the release to be published to PyPI.-- by @webknjaz
PRs and issues: #2274
-
Fix
actionlinthook usage to always includeshellcheckintegration -- by @sirosen.PRs and issues: #2281
-
Utilities for interacting with
piphave started to move into the
:py:mod:piptools._internal._pip_apisubpackage -- by @sirosen.PRs and issues: #2285
-
The change log management infra now allows the maintainers to add notes
before and after the regular categories -- by @webknjaz. -
The linting is now set up to demand that
typingis always
imported as a module under the name of_t-- by @webknjaz.This is enforced by @sirosen's flake8-typing-as-t
plugin for flake8.PRs and issues: #2289
-
The
tox.iniand.github/parts of the repository now
have project leads assigned as GitHub code owners -- by @webknjaz.PRs and issues: #2291
-
Remove a redundant 'v' prefix from the CI release workflow job name -- by @anandvenugopal-tech.
PRs and issues: #2300
-
The
check-jsonschemaReadTheDocs hook has been enabled, and
the config has been tweaked to pass -- by @sirosen.
v7.5.2
2025-11-11
Bug fixes
-
Fixed
pip-compileto handle relative path includes which are not subpaths of the current working directory -- by @sirosen. -
Using
--upgrade-packageand dynamically building project metadata no longer causes anAttributeErrorwhen pip encounters an error during the build -- by @Epic_Wink and @tusharsadhwani.PRs and issues: #2258
Features
-
Test and declare Python 3.13 support -- by @jayaddison (for OpenCulinary).
PRs and issues: #2251
-
pip-tools is now compatible with pip 25.3 -- by @shifqu.
Packaging updates and notes for downstreams
-
pip-toolsnow supports installation from git archives by providingsetuptools-scmwith.git_archival.txtdata.PRs and issues: #2225
Contributor-facing changes
-
The change log entry bot has been explicitly configured to stop requiring news fragments in pull requests having the
bot:chronographer:skiplabel set -- by @sirosen and @webknjaz.It was also set up to reference our change log authoring document from the GitHub Checks pages. And the reported check name is now set to
Change log entry.PRs and issues: #2201
-
The CI is now set up to invoke failed tests again with maximum level of detail -- by @webknjaz.
The change is aimed at helping troubleshoot failures that might be difficult to reproduce locally.
PRs and issues: #2254
-
The integration with Codecov has been updated to ensure that reports are uploaded to the service even on failures -- by @webknjaz.
GitHub Actions is now configured to also send an explicit notification to Codecov about the completion of previously initiated uploads.
Additionally, the configuration file is now
.codecov.yml.PRs and issues: #2265
-
The linting suite now runs
actionlint-- by @webknjaz.This tool checks typical problems with GitHub Actions workflow definitions and has a registry of widely-used GitHub Action arguments that it validates.
PRs and issues: #2266
v7.5.1
2025-09-26
Bug fixes
-
Fixed static parsing of
pyproject.tomldata when thepyproject.tomlis supplied as a relative path -- by @sirosen. -
The "via" paths in
pip-compileoutput for requirements discovered frompyproject.tomldata are now written in POSIX format -- by @sirosen.PRs and issues: #2221
-
Fixed a bug which removed slashes from URLs in
-rand-cin the output ofpip-compile-- by @sirosen.PRs and issues: #2223
-
Fixed an incompatibility with
click >= 8.3which madepip-compiledisplay incorrect options in the compile command in output headers -- by @sirosen.PRs and issues: #2235
Features
Improved documentation
-
ReadTheDocs builds for
pip-toolsno longer include htmlzip and pdf outputs -- by @sirosen.PRs and issues: #2218
Contributor-facing changes
-
pip-toolsnow tests onpipversion 25.2 -- by @sirosen.PRs and issues: #2214
-
The changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by @jayaddison (for OpenCulinary).
PRs and issues: #2217
-
The CPython versions tested in nightly CI runs are now separate from branch and PR CI, and don't include very old versions -- by @sirosen.
PRs and issues: #2226
v7.5.0
2025-07-30
Bug fixes
-
Fixed the ordering of format controls to preserve underlying
pipbehavior -- by @sethmlarson.PRs and issues: #2082
-
Fixed
NoCandidateFoundexception to be compatible withpip >= 24.1-- by @chrysle.PRs and issues: #2083
-
pip-compilenow 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-compilenow treats package versions requested on the command line as constraints for the underlyingpipusage.
This applies to build deps in addition to normal package requirements.-- by @chrysle
PRs and issues: #2106
-
pip-toolsnow tests on and officially supports Python 3.12 -- by @sirosen.PRs and issues: #2188
-
Requirements file paths in
pip-compileoutput are now normalized to POSIX-style, even whenpip-compileis run on Windows.
This provides more consistent output across various platforms.-- by @sirosen
PRs and issues: #2195
-
pip-toolsnow tests against and supportspipup to version25.1-- by @sirosen.PRs and issues: #2195
Removals and backward incompatible breaking changes
-
pip-compilewill now relativize the requirements paths which are recorded in its output.
Paths are made relative to the working directory.
This provides more consistent results acrosspipversions.-- by @sirosen
Packaging updates and notes for downstreams
-
pip-toolsreleases 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 pinnedpipversions, declared intoxconfiguration as the "supported" version.
This does not change the support policy forpipversions, but declares what is tested and known to work.-- by @webknjaz
PRs and issues: #2142
-
pip-toolsnow tests against PyPy 3.10 as its supported PyPy version -- by @webknjaz.PRs and issues: #2146
-
pip-toolsnow uses Towncrier to manage the changelog.-- by @sirosen and @webknjaz, with suggestions from @jayaddison
-
pip-toolsnow usessphinx-issuesto 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-filesnot 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-extrasand 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/--constraintoption topip-compile(#1936). Thanks @atugushev
Bug Fixes:
- Allow options in config from both
pip-compileandpip-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.2where refactored outDEV_PKGS(#1906). Thanks @atugushev - Add
--no-configoption (#1896). Thanks @atugushev
Bug Fixes:
- Sync direct references with hashes (#1885). Thanks @siddharthab
- Fix missing
vias when more than two input files are used (#1890). Thanks @lpulley