Changelog¶
Unreleased Changes¶
Generated for preview on 2026-05-25
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-toolsdocumentation now features a how-to section, featuring an initial doc which covers controlling output file headers – by @sirosen.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 zizmor as 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
LocalRequirementsRepositorynow accepts anyBaseRepositorysubclass as its proxied repository, not onlyPyPIRepository– 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 :user: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.MonkeyPatch.setenv()and supersede the session-level deletion – by @gaborbernat.PRs and issues: #2390
The Sphinx configuration now resolves cross-references for packaging, pip, click,
build, andimportlib_metadatavia intersphinx, and the deprecatedsphinx.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 privilige 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.– @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.
v7.5.3¶
2026-02-09
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 caused
pip-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¶
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¶
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¶
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¶
Packaging updates and notes for downstreams¶
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
v7.4.1¶
05 Mar 2024
Bug Fixes¶
v7.4.0¶
16 Feb 2024
Features¶
Allow force-enabling or force-disabling colorized output (#2041) – by @aneeshusa.
Add support for command-specific configuration sections (#1966) – by @chrysle.
Add options for including build dependencies in compiled output (#1681) – by @apljungquist.
Bug Fixes¶
Fix for
src-filesnot being used when specified in a config file (#2015) – by @csalerno-asml.Fix ignorance of inverted CLI options in config for
pip-sync(#1989) – by @chrysle.Filter out origin ireqs for extra requirements before writing output annotations (#2011) – by @chrysle.
Make BacktrackingResolver ignore extras when dropping existing constraints (#1984) – by @chludwig-haufe.
Display
pyproject.toml’s metatada parsing errors in verbose mode (#1979) – by @szobov.
Other Changes¶
Add mention of pip-compile-multi in Other useful tools README section (#1986) – by @peterdemin.
v7.3.0¶
09 Aug 2023
Features¶
Add
--no-strip-extrasand warn about strip extras by default (#1954) – by @ryanhiebert.
Bug Fixes¶
Fix revealed default config in header if requirements in subfolder (#1904) – by @atugushev.
Direct references show extra requirements in .txt files (#1582) – by @FlorentJeannot.
Other Changes¶
Document how to run under
pipx run(#1951) – by @brettcannon.Document that the backtracking resolver is the current default (#1948) – by @jeffwidman.
v7.2.0¶
02 Aug 2023
Features¶
Add
-c/--constraintoption topip-compile(#1936) – by @atugushev.
Bug Fixes¶
Allow options in config from both
pip-compileandpip-sync(#1933) – by @atugushev.Fix rejection of negating CLI boolean flags in config (#1913) – by @chrysle.
Other Changes¶
Add Command Line Reference section to docs (#1934) – by @atugushev.
v7.1.0¶
18 Jul 2023
Features¶
Validate parsed config against CLI options (#1910) – by @atugushev.
Bug Fixes¶
Fix a bug where
pip-syncwould unexpectedly uninstall some packages (#1919) – by @atugushev.
v7.0.0¶
14 Jul 2023
Backwards Incompatible Changes¶
Default to
--resolver=backtracking(#1897) – by @atugushev.
Features¶
Add support for
pip==23.2where refactored outDEV_PKGS(#1906) – by @atugushev.Add
--no-configoption (#1896) – by @atugushev.
Bug Fixes¶
Sync direct references with hashes (#1885) – by @siddharthab.
Fix missing
vias when more than two input files are used (#1890) – by @lpulley.
v6.14.0¶
28 Jun 2023
Features¶
Other Changes¶
Correct in README
pre-commithook to run offrequirements.in(#1847) – by @atugushev.Add pyprojects.toml example for using setuptools (#1851) – by @shatakshiiii.
v6.13.0¶
07 Apr 2023
Features¶
Add support for
pip==23.1where removedFormatControlinWheelCache(#1834) – by @atugushev.Add support for
pip==23.1where refactored requirement options (#1832) – by @atugushev.Add support for
pip==23.1where deprecated--install-optionhas been removed (#1828) – by @atugushev.
Bug Fixes¶
Other Changes¶
Update examples in README (#1835) – by @lucaswerkmeister.
v6.12.3¶
01 Mar 2023
Bug Fixes¶
Remove extras from user-supplied constraints in backtracking resolver (#1808) – by @thomdixon.
Fix for sync error when the ireqs being merged have no names (#1802) – by @richafrank.
v6.12.2¶
25 Dec 2022
Bug Fixes¶
Raise error if input and output filenames are matched (#1787) – by @atugushev.
Add
pyproject.tomlas default input file format (#1780) – by @berislavlopac.Fix a regression with unsafe packages for
--allow-unsafe(#1788) – by @q0w.
v6.12.1¶
16 Dec 2022
Bug Fixes¶
v6.12.0¶
13 Dec 2022
Features¶
Add
--no-indexflag topip-compile(#1745) – by @atugushev.
Bug Fixes¶
v6.11.0¶
30 Nov 2022
Features¶
Support build isolation using
setuptools/pyproject.tomlrequirement files (#1727) – by @atugushev.
Bug Fixes¶
Other Changes¶
Bump click minimum version to
>= 8(#1733) – by @atugushev.Bump pip minimum version to
>= 22.2(#1729) – by @atugushev.
v6.10.0¶
13 Nov 2022
Features¶
Deprecate
pip-compile --resolver=legacy(#1724) – by @atugushev.Prompt user to use the backtracking resolver on errors (#1719) – by @maxfenv.
Add
--newline=[LF|CRLF|native|preserve]option topip-compile(#1652) – by @AndydeCleyre.
Bug Fixes¶
Fix inconsistent handling of constraints comments with backtracking resolver (#1713) – by @mkniewallner.
Fix some encoding warnings in Python 3.10 (PEP 597) (#1614) – by @GalaxySnail.
Other Changes¶
v6.9.0¶
05 Oct 2022
Features¶
Add
--all-extrasflag topip-compile(#1630) – by @apljungquist.Support Exclude Package with custom unsafe packages (#1509) – by @hmc-cs-mdrissi.
Bug Fixes¶
Fix compile cached vcs packages (#1649) – by @atugushev.
Include
py.typedin wheel file (#1648) – by @FlorentJeannot.
Other Changes¶
v6.8.0¶
30 Jun 2022
Features¶
Add support for pip’s 2020 dependency resolver. Use
pip-compile --resolver backtrackingto enable new resolver (#1539) – by @atugushev.
v6.7.0¶
27 Jun 2022
Features¶
Support for the
importlib.metadatametadata implementation (#1632) – by @richafrank.
Bug Fixes¶
Instantiate a new accumulator
InstallRequirementforcombine_install_requirementsoutput (#1519) – by @richafrank.
Other Changes¶
Replace direct usage of the
pep517module with thebuildmodule, for loading project metadata (#1629) – by @AndydeCleyre.
v6.6.2¶
23 May 2022
Bug Fixes¶
v6.6.1¶
13 May 2022
Bug Fixes¶
v6.6.0¶
06 Apr 2022
Features¶
Add support for pip>=22.1 (#1607) – by @atugushev.
Bug Fixes¶
Ensure
pip-compile --dry-run --quietstill shows what would be done, while omitting the dry run message (#1592) – by @AndydeCleyre.Fix
--generate-hasheswhen hashes are computed from files (#1540) – by @RazerM.
v6.5.1¶
08 Feb 2022
Bug Fixes¶
Ensure canonicalized requirement names are used as keys, to prevent unnecessary reinstallations during sync (#1572) – by @AndydeCleyre.
v6.5.0¶
04 Feb 2022
Features¶
Other Changes¶
v6.4.0¶
12 Oct 2021
Features¶
Add support for
pip>=21.3(#1501) – by @atugushev.Add support for Python 3.10 (#1497) – by @joshuadavidthomas.
Other Changes¶
Bump pip minimum version to
>= 21.2(#1500) – by @atugushev.
v6.3.1¶
08 Oct 2021
Bug Fixes¶
Ensure
pip-toolsunions dependencies of multiple declarations of a package with different extras (#1486) – by @richafrank.Allow comma-separated arguments for
--extra(#1493) – by @AndydeCleyre.Improve clarity of help text for options supporting multiple (#1492) – by @AndydeCleyre.
v6.3.0¶
21 Sep 2021
Features¶
Enable single-line annotations with
pip-compile --annotation-style=line(#1477) – by @AndydeCleyre.Generate PEP 440 direct reference whenever possible (#1455) – by @FlorentJeannot.
PEP 440 Direct Reference support (#1392) – by @FlorentJeannot.
Bug Fixes¶
Change log level of hash message (#1460) – by @plannigan.
v6.2.0¶
22 Jun 2021
Features¶
Add
--emit-options/--no-emit-optionsflags topip-compile(#1123) – by @atugushev.Add
--python-executableoption forpip-sync(#1333) – by @MaratFM.Log which python version was used during compile (#828) – by @graingert.
Bug Fixes¶
Other Changes¶
Document updating requirements with
pre-commithooks (#1387) – by @microcat49.Add
setuptoolsandwheeldependencies to thesetup.cfg(#889) – by @jayvdb.Improve instructions for new contributors (#1394) – by @FlorentJeannot.
Better explain role of existing
requirements.txt(#1369) – by @mikepqr.
v6.1.0¶
14 Apr 2021
Features¶
Bug Fixes¶
Restore ability to set compile cache with env var
PIP_TOOLS_CACHE_DIR(#1368) – by @AndydeCleyre.
v6.0.1¶
15 Mar 2021
Bug Fixes¶
Fixed a bug with undeclared dependency on
importlib-metadataat Python 3.6 (#1353) – by @atugushev.
Dependencies¶
Add
pep517dependency (#1353) – by @atugushev.
v6.0.0¶
12 Mar 2021
Backwards Incompatible Changes¶
Remove support for EOL Python 3.5 and 2.7 (#1243) – by @jdufresne.
Remove deprecated
--index/--no-indexoption frompip-compile(#1234) – by @jdufresne.
Features¶
Use
pep517to parse dependencies metadata fromsetup.py(#1311) – by @astrojuanlu.
Bug Fixes¶
Fix a bug where
pip-compilewithsetup.pywould not include dependencies with environment markers (#1311) – by @astrojuanlu.Prefer
===over==when generatingrequirements.txtif a dependency was pinned with===(#1323) – by @IceTDrinker.Fix a bug where
pip-compilewithsetup.pyin nested folder would generatesetup.txtoutput file (#1324) – by @peymanslh.Write out default index when it is provided as
--extra-index-url(#1325) – by @fahrradflucht.
Dependencies¶
Bump
pipminimum version to>= 20.3(#1340) – by @atugushev.
v5.5.0¶
31 Dec 2020
Features¶
Add Python 3.9 support (#1222) – by @jdufresne.
Improve formatting of long “via” annotations (#1237) – by @jdufresne.
Add
--verboseand--quietoptions topip-sync(#1241) – by @jdufresne.Add
--no-allow-unsafeoption topip-compile(#1265) – by @jdufresne.
Bug Fixes¶
Restore
PIP_EXISTS_ACTIONenvironment variable to its previous state when resolve dependencies inpip-compile(#1255) – by @jdufresne.
Dependencies¶
Remove
sixdependency in favorpip’s vendoredsix(#1240) – by @jdufresne.
Improved Documentation¶
Add
pip-requirements.el(for Emacs) to useful tools toREADME(#1244) – by @jdufresne.Add supported Python versions to
README(#1246) – by @jdufresne.
v5.4.0¶
21 Nov 2020
Features¶
Add
pip>=20.3support (#1216) – by @atugushev and @AndydeCleyre.Exclude
--no-reuse-hashesoption from «command to run» header (#1197) – by @graingert.
Dependencies¶
Bump
pipminimum version to>= 20.1(#1191) – by @atugushev and @AndydeCleyre.
v5.3.1¶
31 Jul 2020
Bug Fixes¶
Fix
pip-20.2compatibility issue that causedpip-toolsto sometime fail to stabilize in a constant number of rounds (#1194) – by @vphilippon.
v5.3.0¶
26 Jul 2020
Features¶
Add
-halias for--helpoption topip-syncandpip-compile(#1163) – by @jan25.Add
pip>=20.2support (#1168) – by @atugushev.pip-syncnow exists with code1on--dry-run(#1172) – by @francisbrito.pip-compilenow doesn’t resolve constraints from-c constraints.txtthat are not (yet) requirements (#1175) – by @clslgrnc.Add
--reuse-hashes/--no-reuse-hashesoptions topip-compile(#1177) – by @graingert.
v5.2.1¶
09 Jun 2020
Bug Fixes¶
Fix a bug where
pip-compilewould lose some dependencies on update arequirements.txt(#1159) – by @richafrank.
v5.2.0¶
27 May 2020
Features¶
Show basename of URLs when
pip-compilegenerates hashes in a verbose mode (#1113) – by @atugushev.Add
--emit-index-url/--no-emit-index-urloptions topip-compile(#1130) – by @atugushev.
Bug Fixes¶
Fix a bug where
pip-compilewould ignore some of package versions whenPIP_PREFER_BINARYis set on (#1119) – by @atugushev.Fix leaked URLs with credentials in the debug output of
pip-compile(#1146) – by @atugushev.Fix a bug where URL requirements would have name collisions (#1149) – by @geokala.
Deprecations¶
Deprecate
--index/--no-indexin favor of--emit-index-url/--no-emit-index-urloptions inpip-compile(#1130) – by @atugushev.
Other Changes¶
Switch to
setuptoolsdeclarative syntax throughsetup.cfg(#1141) – by @jdufresne.
v5.1.2¶
05 May 2020
Bug Fixes¶
Fix grouping of editables and non-editables requirements (#1132) – by @richafrank.
v5.1.1¶
01 May 2020
Bug Fixes¶
Fix a bug where
pip-compilewould generate hashes for*.eggfiles (#1122) – by @atugushev.
v5.1.0¶
27 Apr 2020
Features¶
Show progress bar when downloading packages in
pip-compileverbose mode (#949) – by @atugushev.pip-compilenow gets hashes fromPyPIJSON API (if available) which significantly increases the speed of hashes generation (#1109) – by @atugushev.
v5.0.0¶
16 Apr 2020
Backwards Incompatible Changes¶
pip-toolsnow requirespip>=20.0(previously8.1.x-20.0.x). Windows users, make sure to usepython -m pip install pip-toolsto avoid issues withpipself-update from now on (#1055) – by @atugushev.--build-isolationoption now set on by default forpip-compile(#1060) – by @hramezani.
Features¶
Exclude requirements with non-matching markers from
pip-sync(#927) – by @AndydeCleyre.Add
pre-commithook forpip-compile(#976) – by @atugushev.pip-compileandpip-syncnow pass anything provided to the new--pip-argsoption on topip(#1080) – by @AndydeCleyre.pip-compileoutput headers are now more accurate when--is used to escape filenames (#1080) – by @AndydeCleyre.Add
pip>=20.1support (#1088) – by @atugushev.
Bug Fixes¶
Fix a bug where editables that are both direct requirements and constraints wouldn’t appear in
pip-compileoutput (#1093) – by @richafrank.pip-compilenow sorts format controls (--no-binary/--only-binary) to ensure consistent results (#1098) – by @richafrank.
Improved Documentation¶
Add cross-environment usage documentation to
README(#651) – by @vphilippon.Add versions compatibility table to
README(#1106) – by @atugushev.
v4.5.1¶
26 Feb 2020
Bug Fixes¶
Strip line number annotations such as “(line XX)” from file requirements, to prevent diff noise when modifying input requirement files (#1075) – by @adamchainz.
Improved Documentation¶
Updated
READMEexample outputs for primary requirement annotations (#1072) – by @richafrank.
v4.5.0¶
20 Feb 2020
Features¶
Primary requirements and VCS dependencies are now get annotated with any source
.infiles and reverse dependencies (#1058) – by @AndydeCleyre.
Bug Fixes¶
Improved Documentation¶
v4.4.1¶
31 Jan 2020
Bug Fixes¶
Fix a bug where
pip-compilewould keep outdated options fromrequirements.txt(#1029) – by @atugushev.Fix the
No handlers could be found for logger "pip.*"error by configuring the builtin logging module (#1035) – by @vphilippon.Fix a bug where dependencies of relevant constraints may be missing from output file (#1037) – by @jeevb.
Upgrade the minimal version of
clickfrom6.0to7.0version insetup.py(#1039) – by @hramezani.Ensure that depcache considers the python implementation such that (for example)
cpython3.6does not poison the results ofpypy3.6(#1050) – by @asottile.
Improved Documentation¶
Make the
READMEmore imperative about installing into a project’s virtual environment to avoid confusion (#1023) – by @tekumara.Add a note to the
READMEabout how to install requirements on different stages to Workflow for layered requirements section (#1044) – by @hramezani.
v4.4.0¶
21 Jan 2020
Features¶
Add
--cache-diroption topip-compile(#1022) – by @richafrank.Add
pip>=20.0support (#1024) – by @atugushev.
Bug Fixes¶
Fix a bug where
pip-compile --upgrade-packagewould upgrade those passed packages not already required according to the*.inand*.txtfiles (#1031) – by @AndydeCleyre.
v4.3.0¶
25 Nov 2019
Features¶
Add Python 3.8 support (#956) – by @hramezani.
Unpin commented out unsafe packages in
requirements.txt(#975) – by @atugushev.
Bug Fixes¶
Fix
pip-compiledoesn’t copy--trusted-hostfromrequirements.intorequirements.txt(#964) – by @atugushev.Add compatibility with
pip>=20.0(#953 and #978) – by @atugushev.Fix a bug where the resolver wouldn’t clean up the ephemeral wheel cache (#968) – by @atugushev.
Improved Documentation¶
Add a note to
READMEaboutrequirements.txtfile, which would possibly interfere if you’re compiling from scratch (#959) – by @hramezani.
v4.2.0¶
12 Oct 2019
Features¶
Bug Fixes¶
Add compatibility with
pip>=19.3(#864, #904, #910, #912 and #915) – by @atugushev.Ensure
pip-compile --no-header <blank requirements.in>creates/overwritesrequirements.txt(#909) – by @AndydeCleyre.Fix
pip-compile --upgrade-packageremoves «via» annotation (#931) – by @hramezani.
Improved Documentation¶
Add info to
READMEabout layered requirements files and-cflag (#905) – by @jamescooke.
v4.1.0¶
26 Aug 2019
Features¶
Add
--no-emit-find-linksoption topip-compile(#873) – by @jacobtolar.
Bug Fixes¶
v4.0.0¶
25 Jul 2019
Backwards Incompatible Changes¶
Bug Fixes¶
Fix
pip>=19.2compatibility (#857) – by @atugushev.
v3.9.0¶
17 Jul 2019
Features¶
Bug Fixes¶
Output all logging to stderr instead of stdout (#834) – by @georgek.
Fix output file update with
--dry-runoption inpip-compile(#842) – by @shipmints and. @atugushev
v3.8.0¶
06 Jun 2019
Features¶
Options
--upgradeand--upgrade-packageare no longer mutually exclusive (#831) – by @adamchainz.
Bug Fixes¶
Fix
--generate-hasheswith bare VCS URLs (#812) – by @jcushman.Fix issues with
UnicodeErrorwhen installingpip-toolsfrom source in some systems (#816) – by @AbdealiJK.Respect
--preoption in the input file (#822) – by @atugushev.Option
--upgrade-packagenow works even if the output file does not exist (#831) – by @adamchainz.
v3.7.0¶
09 May 2019
Features¶
Show progressbar on generation hashes in
pip-compileverbose mode (#743) – by @atugushev.Add options
--certand--client-certtopip-sync(#798) – by @atugushev.Add support for
--find-linksinpip-compileoutput (#793) – by @estan and @atugushev.Normalize «command to run» in
pip-compileheaders (#800) – by @atugushev.Support URLs as packages (#807) – by @jcushman, @nim65s and @toejough.
Bug Fixes¶
Fix replacing password to asterisks in
pip-compile(#808) – by @atugushev.
v3.6.1¶
24 Apr 2019
Bug Fixes¶
Fix
pip>=19.1compatibility (#795) – by @atugushev.
v3.6.0¶
03 Apr 2019
Features¶
Show less output on
pip-syncwith--quietoption (#765) – by @atugushev.Support the flag
--trusted-hostinpip-sync(#777) – by @firebirdberlin.
v3.5.0¶
13 Mar 2019
Features¶
Show default index url provided by
pip(#735) – by @atugushev.Add an option to allow enabling/disabling build isolation (#758) – by @atugushev.
Bug Fixes¶
Fix the output file for
pip-compilewith an explicitsetup.pyas source file (#731) – by @atugushev.Fix order issue with generated lock file when
hashesandmarkersare used together (#763) – by @milind-shakya-sp.
v3.4.0¶
19 Feb 2019
Features¶
Emit the original command to the
pip-compile’s header (#733) – by @atugushev.
Bug Fixes¶
Fix
pip-syncto use pip script depending on a python version (#737) – by @atugushev.
v3.3.2¶
26 Jan 2019
Bug Fixes¶
Fix
pip-syncwith a temporary requirement file on Windows (#723) – by @atugushev.Fix
pip-syncto prevent uninstall of stdlib and dev packages (#718) – by @atugushev.
v3.3.1¶
24 Jan 2019
Re-release of 3.3.0 after fixing the deployment pipeline (#716) – by @atugushev.
v3.3.0¶
23 Jan 2019
(Unreleased - Deployment pipeline issue, see 3.3.1)
Features¶
Added support of
pip19.0 (#715) – by @atugushev.Add
--allow-unsafeto update instructions in the generatedrequirements.txt(#708) – by @richafrank.
Bug Fixes¶
Fix
pip-syncto check hashes (#706) – by @atugushev.
v3.2.0¶
18 Dec 2018
Features¶
Apply version constraints specified with package upgrade option (
-P, --upgrade-package) (#694) – by @richafrank.
v3.1.0¶
05 Oct 2018
Features¶
Added support of
pip18.1 (#689) – by @vphilippon.
v3.0.0¶
24 Sep 2018
Major Changes¶
Update
pip-toolsfor nativepip8, 9, 10 and 18 compatibility, un-vendoringpipto use the user-installedpip(#657 and #672) – by @techalchemy, @suutari, @tysonclugg and. @vphilippon
Features¶
Removed the dependency on the external library
first(#676) – by @jdufresne.
v2.0.2¶
28 Apr 2018
Bug Fixes¶
v2.0.1¶
15 Apr 2018
Bug Fixes¶
Added missing package data from vendored pip, such as missing cacert.pem file – by @vphilippon.
v2.0.0¶
15 Apr 2018
Major Changes¶
Vendored
pip9.0.3 to keep compatibility for users withpip10.0.0 (#644) – by @vphilippon.
Features¶
Improved the speed of
pip-compile --generate-hashesby caching the hashes from an existing output file (#641) – by @justicz.Added a
pip-sync --useroption to restrict attention to user-local directory (#642) – by @jbergknoff-10e.Removed the hard dependency on setuptools (#645) – by @vphilippon.
Bug Fixes¶
The pip environment markers on top-level requirements in the source file (requirements.in) are now properly handled and will only be processed in the right environment (#647) – by @JoergRittinger.
v1.11.0¶
30 Nov 2017
Features¶
Allow editable packages in requirements.in with
pip-compile --generate-hashes(#524) – by @jdufresne.Allow for CA bundles with
pip-compile --cert(#612) – by @khwilson.Improved
pip-compileduration with large locally available editable requirement by skipping a copy to the cache (#583) – by @costypetrisor.Slightly improved the
NoCandidateFounderror message on potential causes (#614) – by @vphilippon.
Bug Fixes¶
Add
-markerlibto the list ofPACKAGES_TO_IGNOREofpip-sync(#613).
v1.10.2¶
22 Nov 2017
Bug Fixes¶
Fixed bug causing dependencies from invalid wheels for the current platform to be included (#571).
pip-syncwill respect environment markers in therequirements.txt(#600) – by @hazmat345.Converted the ReadMe to have a nice description rendering on PyPI – by @bittner.
v1.10.1¶
27 Sep 2017
Bug Fixes¶
Fixed bug breaking
pip-syncon Python 3, raisingTypeError: '<' not supported between instances of 'InstallRequirement' and 'InstallRequirement'(#570).
v1.10.0¶
27 Sep 2017
Features¶
--generate-hashesnow generates hashes for all wheels, not only wheels for the currently running platform (#520) – by @jdufresne.Added a
-q/--quietargument to thepip-synccommand to reduce log output.
Bug Fixes¶
Fixed bug where unsafe packages would get pinned in generated requirements files when
--allow-unsafewas not set (#517) – by @dschaller.Fixed bug where editable PyPI dependencies would have a
download_dirand be exposed togit-checkout-index, (thus losing their VCS directory) andpython setup.py egg_infofails (#385) and #538) – by @blueyed and @dfee.Fixed bug where some primary dependencies were annotated with “via” info comments (#542) – by @quantus.
Fixed bug where pkg-resources would be removed by
pip-syncin Ubuntu (#555) – by @cemsbr.Fixed bug where the resolver would sometime not stabilize on requirements specifying extras (#566) – by @vphilippon.
Fixed an unicode encoding error when distribution package contains non-ASCII file names (#567) – by @suutari.
Fixed package hashing doing unnecessary unpacking (#557) – by @suutari-ai.
v1.9.0¶
12 Apr 2017
Features¶
Added ability to read requirements from
setup.pyinstead of justrequirements.in(#418) – by @tysonclugg and @majuscule.Added a
--max-roundsargument to thepip-compilecommand to allow for solving large requirement sets (#472) – by @derek-miller.Exclude unsafe packages’ dependencies when
--allow-unsafeis not in use (#441) – by @jdufresne.Exclude irrelevant pip constraints (#471) – by @derek-miller.
Allow control over emitting trusted-host to the compiled requirements (#448) – by @tonyseek.
Allow running as a Python module (#461) – by @AndreLouisCaron.
Preserve environment markers in generated
requirements.txt(#460) – by @barrywhart.
Bug Fixes¶
Fixed the
--upgrade-packageoption to respect the given package list to update (#491).Fixed the default output file name when the source file has no extension (#488) – by @vphilippon.
Fixed crash on editable requirements introduced in 1.8.2.
Fixed duplicated
--trusted-host,--extra-index-urland--index-urlin the generated requirements.
v1.8.2¶
28 Mar 2017
Regression fix: editable reqs were losing their dependencies after first round (#476) – by @mattlong.
Remove duplicate index urls in generated
requirements.txt(#468) – by @majuscule.
v1.8.1¶
22 Mar 2017
Recalculate secondary dependencies between rounds (#378)
Calculated dependencies could be left with wrong candidates when toplevel requirements happen to be also pinned in sub-dependencies (#450)
Fix duplicate entries that could happen in generated
requirements.txt(#427)Gracefully report invalid pip version (#457)
Fix capitalization in the generated
requirements.txt, packages will always be lowercased (#452)
v1.8.0¶
17 Nov 2016
Adds support for upgrading individual packages with a new option
--upgrade-package. To upgrade a specific package to the latest or a specific version use--upgrade-package <pkg>. To upgrade all packages, you can still usepip-compile --upgrade. (#409)Adds support for pinning dependencies even further by including the hashes found on PyPI at compilation time, which will be re-checked when dependencies are installed at installation time. This adds protection against packages that are tampered with. (#383)
Improve support for extras, like
hypothesis[django]Drop support for
pip < 8
v1.7.1¶
20 Oct 2016
Add
--allow-unsafeoption (#377)
v1.7.0¶
06 Jul 2016
Add compatibility with
pip >= 8.1.2(#374) – by @jmbowman
v1.6.5¶
11 May 2016
Add warning that
pip >= 8.1.2is not supported until 1.7.x is out
v1.6.4¶
03 May 2016
Incorporate fix for atomic file saving behaviour on the Windows platform (see #351)
v1.6.3¶
02 May 2016
PyPI won’t let me upload 1.6.2
v1.6.2¶
02 May 2016
Respect pip configuration from
pip.{ini,conf}Fixes for atomic-saving of output files on Windows (see #351)
v1.6.1¶
06 Apr 2016
Minor Changes¶
pip-syncnow supports being invoked from within and outside an activated virtualenv (see #317)pip-compile: support-Uas a shorthand for--upgradepip-compile: support pip’s--no-binaryand--binary-onlyflags
Bug Fixes¶
Change header format of output files to mention all input files
v1.6¶
05 Feb 2016
Major Changes¶
pip-compilewill by default try to fulfill package specs by looking at a previously compiled output file first, before checking PyPI. This meanspip-compilewill only update therequirements.txtwhen it absolutely has to. To get the old behaviour (picking the latest version of all packages from PyPI), use the new--upgradeoption.
Minor Changes¶
v1.5¶
23 Jan 2016
Add support for
pip >= 8Drop support for
pip < 7Fix bug where
pip-syncfails to uninstall packages if you’re using the--no-index(or other) flags
v1.4.5¶
20 Jan 2016
Add
--no-indexflag topip-compileto avoid emitting--index-urlinto the output (useful if you have configured a different index in your global~/.pip/pip.conf, for example)Fix: ignore stdlib backport packages, like
argparse, when listing which packages will be installed/uninstalled (#286)Fix
pip-syncfailed uninstalling packages when using--find-links(#298)Explicitly error when pip-tools is used with pip 8.0+ (for now)
v1.4.4¶
11 Jan 2016
Fix: unintended change in behaviour where packages installed by
pip-synccould accidentally get upgraded under certain conditions, even though therequirements.txtwould dictate otherwise (see #290)
v1.4.3¶
06 Jan 2016
Fix: add
--index-urland--extra-index-urloptions topip-syncFix: always install using
--upgradeflag when runningpip-sync
v1.4.2¶
13 Dec 2015
Fix bug where umask was ignored when writing requirement files (#268)
v1.4.1¶
13 Dec 2015
Fix bug where successive invocations of
pip-syncwith editables kept uninstalling/installing them (fixes #270)
v1.4.0¶
13 Dec 2015
Add command line option
-f/--find-linksAdd command line option
--no-indexAdd command line alias
-n(for--dry-run)Fix a unicode issue
v1.3.0¶
08 Dec 2015
Support multiple requirement files to
pip-compileSupport requirements from stdin for
pip-compileSupport
--output-fileoption onpip-compile, to redirect output to a file (or stdout)
v1.2.0¶
30 Nov 2015
Add CHANGELOG :)
Support pip-sync’ing editable requirements
Support extras properly (i.e.
package[foo]syntax)
(Anything before 1.2.0 was not recorded.)