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.