Changelog#
Unreleased Changes#
Generated for preview on 2025-10-14
Features#
Test and declare Python 3.13 support – by @jayaddison (for OpenCulinary).
PRs and issues: #2251
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.)