NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1066 most downloaded on PyPI
pip-tools keeps your pinned dependencies fresh.
Last release 1 months ago
12 Aug 2026
Ships unpredictably
gaps range from 2 weeks to 1.4 years
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
127 releases · first in 2012
Fix pip-sync with a temporary requirement file on Windows ({pr}723) -- by {user}atugushev.
26 Jan 2019
pip-sync with a temporary requirement file on Windows ({pr}723)
-- by {user}atugushev.pip-sync to prevent uninstall of stdlib and dev packages ({pr}718)
-- by {user}atugushev.Re-release of 3.3.0 after fixing the deployment pipeline ({issue}716) -- by {user}atugushev.
24 Jan 2019
716)
-- by {user}atugushev.One column per quarter.
Apply version constraints specified with package upgrade option (-P, --upgrade-package) ({pr}694) -- by {user}richafrank.
18 Dec 2018
-P, --upgrade-package) ({pr}694)
-- by {user}richafrank.Added support of pip 18.1 ({pr}689) -- by {user}vphilippon.
05 Oct 2018
pip 18.1 ({pr}689)
-- by {user}vphilippon.Update pip-tools for native pip 8, 9, 10 and 18 compatibility, un-vendoring pip to use the user-installed pip ({pr}657 and {pr}672) -- by {user}techal
24 Sep 2018
pip-tools for native pip 8, 9, 10 and 18 compatibility,
un-vendoring pip to use the user-installed pip ({pr}657 and {pr}672)
-- by {user}techalchemy, {user}suutari, {user}tysonclugg and.
{user}vphilipponfirst ({pr}676)
-- by {user}jdufresne.Nothing published for this version
Added clearer error reporting when skipping pre-releases ({pr}655) -- by {user}WoLpH.
28 Apr 2018
655)
-- by {user}WoLpH.Added missing package data from vendored pip, such as missing cacert.pem file -- by {user}vphilippon.
15 Apr 2018
vphilippon.Vendored pip 9.0.3 to keep compatibility for users with pip 10.0.0 ({pr}644) -- by {user}vphilippon.
15 Apr 2018
pip 9.0.3 to keep compatibility for users with pip 10.0.0 ({pr}644)
-- by {user}vphilippon.pip-compile --generate-hashes by caching the hashes
from an existing output file ({pr}641)
-- by {user}justicz.pip-sync --user option to restrict attention to user-local
directory ({pr}642) -- by {user}jbergknoff-10e.645)
-- by {user}vphilippon.647)
-- by {user}JoergRittinger.Allow editable packages in requirements.in with pip-compile --generate-hashes ({pr}524) -- by {user}jdufresne.
30 Nov 2017
pip-compile --generate-hashes ({pr}524) -- by {user}jdufresne.pip-compile --cert ({pr}612)
-- by {user}khwilson.pip-compile duration with large locally available editable
requirement by skipping a copy to the cache ({pr}583)
-- by {user}costypetrisor.NoCandidateFound error message on potential causes ({pr}614)
-- by {user}vphilippon.-markerlib to the list of PACKAGES_TO_IGNORE of pip-sync ({pr}613).Nothing published for this version
Fixed bug causing dependencies from invalid wheels for the current platform to be included ({pr}571).
22 Nov 2017
571).pip-sync will respect environment markers in the requirements.txt ({pr}600)
-- by {user}hazmat345.bittner.Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed bug breaking pip-sync on Python 3, raising TypeError: '<' not supported between instances of 'InstallRequirement' and 'InstallRequirement' ({pr}
27 Sep 2017
pip-sync on Python 3, raising
TypeError: '<' not supported between instances of 'InstallRequirement' and 'InstallRequirement' ({pr}570).--generate-hashes now generates hashes for all wheels, not only wheels for the currently running platform ({pr}520) -- by {user}jdufresne.
27 Sep 2017
--generate-hashes now generates hashes for all wheels, not only wheels for the
currently running platform ({pr}520)
-- by {user}jdufresne.-q/--quiet argument to the pip-sync command to reduce log output.--allow-unsafe was not set ({pr}517)
-- by {user}dschaller.download_dir and be exposed
to git-checkout-index, (thus losing their VCS directory) and
python setup.py egg_info fails ({pr}385) and {pr}538)
-- by {user}blueyed and {user}dfee.542) -- by {user}quantus.pip-sync in Ubuntu ({pr}555)
-- by {user}cemsbr.566)
-- by {user}vphilippon.567)
-- by {user}suutari.557)
-- by {user}suutari-ai.Added ability to read requirements from setup.py instead of just requirements.in ({pr}418) -- by {user}tysonclugg and {user}majuscule.
12 Apr 2017
setup.py instead of just requirements.in
({pr}418)
-- by {user}tysonclugg and {user}majuscule.--max-rounds argument to the pip-compile command to allow for
solving large requirement sets ({pr}472)
-- by {user}derek-miller.--allow-unsafe is not in use ({pr}441)
-- by {user}jdufresne.471)
-- by {user}derek-miller.448)
-- by {user}tonyseek.461)
-- by {user}AndreLouisCaron.requirements.txt ({pr}460)
-- by {user}barrywhart.--upgrade-package option to respect the given package list to
update ({pr}491).488) -- by {user}vphilippon.--trusted-host, --extra-index-url and --index-url in
the generated requirements.Nothing published for this version
Nothing published for this version
Regression fix: editable reqs were losing their dependencies after first round ({pr}476) -- by {user}mattlong.
28 Mar 2017
476) -- by {user}mattlong.requirements.txt ({pr}468)
-- by {user}majuscule.Recalculate secondary dependencies between rounds ({pr}378)
22 Mar 2017
378)450)requirements.txt ({pr}427)457)requirements.txt, packages will always be
lowercased ({pr}452)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Adds support for upgrading individual packages with a new option --upgrade-package. To upgrade a *specific* package to the latest or a specific versio
17 Nov 2016
--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 use
pip-compile --upgrade. ({pr}409)383)hypothesis[django]pip < 8Add compatibility with pip >= 8.1.2 (#374) -- by {user}jmbowman
06 Jul 2016
pip >= 8.1.2 (#374)
-- by {user}jmbowmanAdd warning that pip >= 8.1.2 is not supported until 1.7.x is out
11 May 2016
pip >= 8.1.2 is not supported until 1.7.x is outIncorporate fix for atomic file saving behaviour on the Windows platform (see {issue}351)
03 May 2016
351)*02 May 2016* - PyPI won't let me upload 1.6.2
02 May 2016
Respect pip configuration from pip.{ini,conf}
02 May 2016
pip.{ini,conf}351)pip-sync now supports being invoked from within and outside an activated virtualenv (see {issue}317)
06 Apr 2016
pip-sync now supports being invoked from within and outside an activated virtualenv
(see {issue}317)pip-compile: support -U as a shorthand for --upgradepip-compile: support pip's --no-binary and --binary-only flagsNothing published for this version
pip-compile will by default try to fulfill package specs by looking at a previously compiled output file first, before checking PyPI. This means pip-c
05 Feb 2016
pip-compile will by default try to fulfill package specs by looking at a
previously compiled output file first, before checking PyPI. This means
pip-compile will only update the requirements.txt when it absolutely has
to. To get the old behaviour (picking the latest version of all packages from
PyPI), use the new --upgrade option.pip-compile would lose "via" info when on pip 8 (see {issue}313)315)Fix bug where pip-sync fails to uninstall packages if you're using the --no-index (or other) flags
23 Jan 2016
pip >= 8pip < 7pip-sync fails to uninstall packages if you're using the --no-index
(or other) flagsAdd --no-index flag to pip-compile to avoid emitting --index-url into the output (useful if you have configured a different index in your global ~/.pi
20 Jan 2016
--no-index flag to pip-compile to avoid emitting --index-url into
the output (useful if you have configured a different index in your global
~/.pip/pip.conf, for example)argparse, when listing which packages
will be installed/uninstalled ({issue}286)pip-sync failed uninstalling packages when using --find-links ({issue}298)Fix: unintended change in behaviour where packages installed by pip-sync could accidentally get upgraded under certain conditions, even though the req
11 Jan 2016
pip-sync could
accidentally get upgraded under certain conditions, even though the requirements.txt
would dictate otherwise (see {issue}290)Fix: add --index-url and --extra-index-url options to pip-sync
06 Jan 2016
--index-url and --extra-index-url options to pip-sync--upgrade flag when running pip-syncFix bug where umask was ignored when writing requirement files ({issue}268)
13 Dec 2015
268)Fix bug where successive invocations of pip-sync with editables kept uninstalling/installing them (fixes {issue}270)
13 Dec 2015
pip-sync with editables kept
uninstalling/installing them (fixes {issue}270)Add command line option -f / --find-links
13 Dec 2015
-f / --find-links--no-index-n (for --dry-run)Support multiple requirement files to pip-compile
08 Dec 2015
pip-compilepip-compile--output-file option on pip-compile, to redirect output to a file
(or stdout)Support pip-sync'ing editable requirements
30 Nov 2015
package[foo] syntax)(Anything before 1.2.0 was not recorded.)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →