Changelog#
Unreleased Changes#
Generated for preview on 2025-07-30
Bug fixes#
Fixed the ordering of format controls to preserve underlying
pip
behavior – by @sethmlarson.PRs and issues: #2082
Fixed
NoCandidateFound
exception to be compatible withpip >= 24.1
– by @chrysle.PRs and issues: #2083
pip-compile
now 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-compile
now treats package versions requested on the command line as constraints for the underlyingpip
usage. This applies to build deps in addition to normal package requirements.– by @chrysle
PRs and issues: #2106
pip-tools
now tests on and officially supports Python 3.12 – by @sirosen.PRs and issues: #2188
pip-tools
now tests against and supportspip
up to version25.1
– by @sirosen.PRs and issues: #2195
Requirements file paths in
pip-compile
output are now normalized to POSIX-style, even whenpip-compile
is run on Windows. This provides more consistent output across various platforms.– 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 pinnedpip
versions, declared intox
configuration as the “supported” version. This does not change the support policy forpip
versions, but declares what is tested and known to work.– by @webknjaz
PRs and issues: #2142
pip-tools
now tests against PyPy 3.10 as its supported PyPy version – by @webknjaz.PRs and issues: #2146
pip-tools
now uses Towncrier to manage the changelog – by @sirosen and @webknjaz, with suggestions from @jayaddison.pip-tools
now usessphinx-issues
to 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-files
not 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-extras
and 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/--constraint
option topip-compile
(#1936) – by @atugushev.
Bug Fixes#
Allow options in config from both
pip-compile
andpip-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-sync
would 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.2
where refactored outDEV_PKGS
(#1906) – by @atugushev.Add
--no-config
option (#1896) – by @atugushev.
Bug Fixes#
Sync direct references with hashes (#1885) – by @siddharthab.
Fix missing
via
s when more than two input files are used (#1890) – by @lpulley.
v6.14.0#
28 Jun 2023
Features#
Other Changes#
Correct in README
pre-commit
hook 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.1
where removedFormatControl
inWheelCache
(#1834) – by @atugushev.Add support for
pip==23.1
where refactored requirement options (#1832) – by @atugushev.Add support for
pip==23.1
where deprecated--install-option
has 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.toml
as 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-index
flag topip-compile
(#1745) – by @atugushev.
Bug Fixes#
v6.11.0#
30 Nov 2022
Features#
Support build isolation using
setuptools/pyproject.toml
requirement 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-extras
flag 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.typed
in 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 backtracking
to enable new resolver (#1539) – by @atugushev.
v6.7.0#
27 Jun 2022
Features#
Support for the
importlib.metadata
metadata implementation (#1632) – by @richafrank.
Bug Fixes#
Instantiate a new accumulator
InstallRequirement
forcombine_install_requirements
output (#1519) – by @richafrank.
Other Changes#
Replace direct usage of the
pep517
module with thebuild
module, 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 --quiet
still shows what would be done, while omitting the dry run message (#1592) – by @AndydeCleyre.Fix
--generate-hashes
when 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-tools
unions 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-options
flags topip-compile
(#1123) – by @atugushev.Add
--python-executable
option 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-commit
hooks (#1387) – by @microcat49.Add
setuptools
andwheel
dependencies 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-metadata
at Python 3.6 (#1353) – by @atugushev.
Dependencies#
Add
pep517
dependency (#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-index
option frompip-compile
(#1234) – by @jdufresne.
Features#
Use
pep517
to parse dependencies metadata fromsetup.py
(#1311) – by @astrojuanlu.
Bug Fixes#
Fix a bug where
pip-compile
withsetup.py
would not include dependencies with environment markers (#1311) – by @astrojuanlu.Prefer
===
over==
when generatingrequirements.txt
if a dependency was pinned with===
(#1323) – by @IceTDrinker.Fix a bug where
pip-compile
withsetup.py
in nested folder would generatesetup.txt
output file (#1324) – by @peymanslh.Write out default index when it is provided as
--extra-index-url
(#1325) – by @fahrradflucht.
Dependencies#
Bump
pip
minimum 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
--verbose
and--quiet
options topip-sync
(#1241) – by @jdufresne.Add
--no-allow-unsafe
option topip-compile
(#1265) – by @jdufresne.
Bug Fixes#
Restore
PIP_EXISTS_ACTION
environment variable to its previous state when resolve dependencies inpip-compile
(#1255) – by @jdufresne.
Dependencies#
Remove
six
dependency 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.3
support (#1216) – by @atugushev and @AndydeCleyre.Exclude
--no-reuse-hashes
option from «command to run» header (#1197) – by @graingert.
Dependencies#
Bump
pip
minimum version to>= 20.1
(#1191) – by @atugushev and @AndydeCleyre.
v5.3.1#
31 Jul 2020
Bug Fixes#
Fix
pip-20.2
compatibility issue that causedpip-tools
to sometime fail to stabilize in a constant number of rounds (#1194) – by @vphilippon.
v5.3.0#
26 Jul 2020
Features#
Add
-h
alias for--help
option topip-sync
andpip-compile
(#1163) – by @jan25.Add
pip>=20.2
support (#1168) – by @atugushev.pip-sync
now exists with code1
on--dry-run
(#1172) – by @francisbrito.pip-compile
now doesn’t resolve constraints from-c constraints.txt
that are not (yet) requirements (#1175) – by @clslgrnc.Add
--reuse-hashes/--no-reuse-hashes
options topip-compile
(#1177) – by @graingert.
v5.2.1#
09 Jun 2020
Bug Fixes#
Fix a bug where
pip-compile
would lose some dependencies on update arequirements.txt
(#1159) – by @richafrank.
v5.2.0#
27 May 2020
Features#
Show basename of URLs when
pip-compile
generates hashes in a verbose mode (#1113) – by @atugushev.Add
--emit-index-url/--no-emit-index-url
options topip-compile
(#1130) – by @atugushev.
Bug Fixes#
Fix a bug where
pip-compile
would ignore some of package versions whenPIP_PREFER_BINARY
is 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-index
in favor of--emit-index-url/--no-emit-index-url
options inpip-compile
(#1130) – by @atugushev.
Other Changes#
Switch to
setuptools
declarative 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-compile
would generate hashes for*.egg
files (#1122) – by @atugushev.
v5.1.0#
27 Apr 2020
Features#
Show progress bar when downloading packages in
pip-compile
verbose mode (#949) – by @atugushev.pip-compile
now gets hashes fromPyPI
JSON API (if available) which significantly increases the speed of hashes generation (#1109) – by @atugushev.
v5.0.0#
16 Apr 2020
Backwards Incompatible Changes#
pip-tools
now requirespip>=20.0
(previously8.1.x
-20.0.x
). Windows users, make sure to usepython -m pip install pip-tools
to avoid issues withpip
self-update from now on (#1055) – by @atugushev.--build-isolation
option 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-commit
hook forpip-compile
(#976) – by @atugushev.pip-compile
andpip-sync
now pass anything provided to the new--pip-args
option on topip
(#1080) – by @AndydeCleyre.pip-compile
output headers are now more accurate when--
is used to escape filenames (#1080) – by @AndydeCleyre.Add
pip>=20.1
support (#1088) – by @atugushev.
Bug Fixes#
Fix a bug where editables that are both direct requirements and constraints wouldn’t appear in
pip-compile
output (#1093) – by @richafrank.pip-compile
now 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
README
example 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
.in
files and reverse dependencies (#1058) – by @AndydeCleyre.
Bug Fixes#
Improved Documentation#
v4.4.1#
31 Jan 2020
Bug Fixes#
Fix a bug where
pip-compile
would 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
click
from6.0
to7.0
version insetup.py
(#1039) – by @hramezani.Ensure that depcache considers the python implementation such that (for example)
cpython3.6
does not poison the results ofpypy3.6
(#1050) – by @asottile.
Improved Documentation#
Make the
README
more imperative about installing into a project’s virtual environment to avoid confusion (#1023) – by @tekumara.Add a note to the
README
about 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-dir
option topip-compile
(#1022) – by @richafrank.Add
pip>=20.0
support (#1024) – by @atugushev.
Bug Fixes#
Fix a bug where
pip-compile --upgrade-package
would upgrade those passed packages not already required according to the*.in
and*.txt
files (#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-compile
doesn’t copy--trusted-host
fromrequirements.in
torequirements.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
README
aboutrequirements.txt
file, 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-package
removes «via» annotation (#931) – by @hramezani.
Improved Documentation#
Add info to
README
about layered requirements files and-c
flag (#905) – by @jamescooke.
v4.1.0#
26 Aug 2019
Features#
Add
--no-emit-find-links
option topip-compile
(#873) – by @jacobtolar.
Bug Fixes#
v4.0.0#
25 Jul 2019
Backwards Incompatible Changes#
Bug Fixes#
Fix
pip>=19.2
compatibility (#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-run
option inpip-compile
(#842) – by @shipmints and. @atugushev
v3.8.0#
06 Jun 2019
Features#
Options
--upgrade
and--upgrade-package
are no longer mutually exclusive (#831) – by @adamchainz.
Bug Fixes#
Fix
--generate-hashes
with bare VCS URLs (#812) – by @jcushman.Fix issues with
UnicodeError
when installingpip-tools
from source in some systems (#816) – by @AbdealiJK.Respect
--pre
option in the input file (#822) – by @atugushev.Option
--upgrade-package
now 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-compile
verbose mode (#743) – by @atugushev.Add options
--cert
and--client-cert
topip-sync
(#798) – by @atugushev.Add support for
--find-links
inpip-compile
output (#793) – by @estan and @atugushev.Normalize «command to run» in
pip-compile
headers (#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.1
compatibility (#795) – by @atugushev.
v3.6.0#
03 Apr 2019
Features#
Show less output on
pip-sync
with--quiet
option (#765) – by @atugushev.Support the flag
--trusted-host
inpip-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-compile
with an explicitsetup.py
as source file (#731) – by @atugushev.Fix order issue with generated lock file when
hashes
andmarkers
are 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-sync
to use pip script depending on a python version (#737) – by @atugushev.
v3.3.2#
26 Jan 2019
Bug Fixes#
Fix
pip-sync
with a temporary requirement file on Windows (#723) – by @atugushev.Fix
pip-sync
to 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
pip
19.0 (#715) – by @atugushev.Add
--allow-unsafe
to update instructions in the generatedrequirements.txt
(#708) – by @richafrank.
Bug Fixes#
Fix
pip-sync
to 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
pip
18.1 (#689) – by @vphilippon.
v3.0.0#
24 Sep 2018
Major Changes#
Update
pip-tools
for nativepip
8, 9, 10 and 18 compatibility, un-vendoringpip
to 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
pip
9.0.3 to keep compatibility for users withpip
10.0.0 (#644) – by @vphilippon.
Features#
Improved the speed of
pip-compile --generate-hashes
by caching the hashes from an existing output file (#641) – by @justicz.Added a
pip-sync --user
option 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-compile
duration with large locally available editable requirement by skipping a copy to the cache (#583) – by @costypetrisor.Slightly improved the
NoCandidateFound
error message on potential causes (#614) – by @vphilippon.
Bug Fixes#
Add
-markerlib
to the list ofPACKAGES_TO_IGNORE
ofpip-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-sync
will 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-sync
on Python 3, raisingTypeError: '<' not supported between instances of 'InstallRequirement' and 'InstallRequirement'
(#570).
v1.10.0#
27 Sep 2017
Features#
--generate-hashes
now generates hashes for all wheels, not only wheels for the currently running platform (#520) – by @jdufresne.Added a
-q
/--quiet
argument to thepip-sync
command to reduce log output.
Bug Fixes#
Fixed bug where unsafe packages would get pinned in generated requirements files when
--allow-unsafe
was not set (#517) – by @dschaller.Fixed bug where editable PyPI dependencies would have a
download_dir
and be exposed togit-checkout-index
, (thus losing their VCS directory) andpython setup.py egg_info
fails (#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-sync
in 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.py
instead of justrequirements.in
(#418) – by @tysonclugg and @majuscule.Added a
--max-rounds
argument to thepip-compile
command to allow for solving large requirement sets (#472) – by @derek-miller.Exclude unsafe packages’ dependencies when
--allow-unsafe
is 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-package
option 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-url
and--index-url
in 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-unsafe
option (#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.2
is 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-sync
now supports being invoked from within and outside an activated virtualenv (see #317)pip-compile
: support-U
as a shorthand for--upgrade
pip-compile
: support pip’s--no-binary
and--binary-only
flags
Bug Fixes#
Change header format of output files to mention all input files
v1.6#
05 Feb 2016
Major Changes#
pip-compile
will by default try to fulfill package specs by looking at a previously compiled output file first, before checking PyPI. This meanspip-compile
will only update therequirements.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.
Minor Changes#
v1.5#
23 Jan 2016
Add support for
pip >= 8
Drop support for
pip < 7
Fix bug where
pip-sync
fails to uninstall packages if you’re using the--no-index
(or other) flags
v1.4.5#
20 Jan 2016
Add
--no-index
flag topip-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)Fix: ignore stdlib backport packages, like
argparse
, when listing which packages will be installed/uninstalled (#286)Fix
pip-sync
failed 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-sync
could accidentally get upgraded under certain conditions, even though therequirements.txt
would dictate otherwise (see #290)
v1.4.3#
06 Jan 2016
Fix: add
--index-url
and--extra-index-url
options topip-sync
Fix: always install using
--upgrade
flag 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-sync
with editables kept uninstalling/installing them (fixes #270)
v1.4.0#
13 Dec 2015
Add command line option
-f
/--find-links
Add command line option
--no-index
Add command line alias
-n
(for--dry-run
)Fix a unicode issue
v1.3.0#
08 Dec 2015
Support multiple requirement files to
pip-compile
Support requirements from stdin for
pip-compile
Support
--output-file
option 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.)