2026-07-13
Features
-
The
--helpoutput forpip-compileandpip-synccommands has been extended to include usage examples -- by @Dzhud.PRs and issues: #1142
-
Added
--uploaded-prior-toas a passthrough option forpip-compile, allowing users to restrict package candidates to versions uploaded before a given datetime. Requires pip >= 26.0 -- by @miettal.PRs and issues: #2288
-
pip-toolsis now compatible withpip26.1 -- @gaborbernat.PRs and issues: #2379
Improved documentation
-
Fixed the contents sidebar for the index doc -- by @sirosen.
PRs and issues: #2169
-
pip-toolsnow has a policy regarding LLM-generated contributions, noted in the contributing documentation -- by @sirosen.Thanks to @0cjs, @gpshead, mr-@c, @samdoran, @webknjaz, and everyone else in the broader community who helped us to craft a policy which is considerate of contributors and protective of the project and its maintainers.
PRs and issues: #2318
-
pip-tools' documentation now features a section titled "Reference" covering the CLI commands and configuration. Configuration documentation has been removed from the readme.-- by @sirosen
Contributor-facing changes
-
CI testing now runs on Intel and ARM macOS runners, and is pinned to a specific macOS version -- by @sirosen.
-
pip-toolsnow has a policy regarding LLM-generated contributions, noted in the contributing documentation -- by @sirosen.Thanks to @0cjs, @gpshead, mr-@c, @samdoran, @webknjaz, and everyone else in the broader community who helped us to craft a policy which is considerate of contributors and protective of the project and its maintainers.
-
Started running {pypi}
zizmoras a part of CI pipelines to improve security of how we configure GitHub Actions CI/CD -- by @webknjaz.PRs and issues: #2327
-
pip-tools docs now support GitHub Flavored Markdown admonition blocks -- by @webknjaz.
PRs and issues: #2343
-
Coverage reporting in
pip-toolsnow skips_t.TYPE_CHECKINGblocks -- by @gaborbernat.PRs and issues: #2386
-
piptools.repositories.LocalRequirementsRepositorynow accepts anypiptools.repositories.BaseRepositorysubclass as its proxied repository, not onlypiptools.repositories.PyPIRepository-- by @gaborbernat.PRs and issues: #2387
-
A handful of f-string conversions in
piptools.utilsand the CLI entry points inpiptools.scripts.compileandpiptools.scripts.synccarried a stray space before!s(e.g.f"...{value !s}..."). PEP 498 forbids the whitespace before the conversion flag and tooling differs on whether the form parses; the literals are now in canonical{value!s}shape -- by @gaborbernat.PRs and issues: #2388
-
A session-scoped autouse fixture in
tests/conftest.pynow drops everyPIP_*environment variable before any other fixture runs, so the test suite no longer flakes on contributor machines whose shell exportsPIP_INDEX_URL,PIP_FIND_LINKS,PIP_TRUSTED_HOST, and the rest of the family for a corporate mirror. Tests that need a specific variable keep their function-scopedpytest:pytest.MonkeyPatch.setenvand supersede the session-level deletion -- by @gaborbernat.PRs and issues: #2390
-
The Sphinx configuration now resolves cross-references for packaging, pip, click, build, and importlib_metadata via intersphinx, and the deprecated
sphinx.util.console.boldhelper is replaced with a plainlogger.infocall (the colour markup never rendered in CI logs anyway). Cross-references in docstrings that previously fell back to nitpick suppression now link to the upstream documentation -- by @gaborbernat.PRs and issues: #2391
-
The
Notify CodecovCI workflow job now only fails on privilege errors in the upstream project repository runs. This fixes a problem contributors face when running CI within their forks that are not filed as true Codecov-side projects.-- by @gaborbernat and @webknjaz
PRs and issues: #2392
-
Fixed incorrect nitpick ignore regexes -- by @sirosen.
-
pip-toolsCI now pins GitHub Actions versions to hashes -- by @sirosen. -
pip-toolsnow tests against PyPy 3.11 -- by @sirosen and @webknjaz. -
pip-tools's GitHub Actions config now specifies the Ubuntu and Windows runner versions used.