09 Aug 2023
Features:
- Add
--no-strip-extrasand warn about strip extras by default (#1954). Thanks @ryanhiebert
Bug Fixes:
- Fix revealed default config in header if requirements in subfolder (#1904). Thanks @atugushev
- Direct references show extra requirements in .txt files (#1582). Thanks @FlorentJeannot
Other Changes:
- Document how to run under
pipx run(#1951). Thanks @brettcannon - Document that the backtracking resolver is the current default (#1948). Thanks @jeffwidman
02 Aug 2023
Features:
- Add
-c/--constraintoption topip-compile(#1936). Thanks @atugushev
Bug Fixes:
- Allow options in config from both
pip-compileandpip-sync(#1933). Thanks @atugushev - Fix rejection of negating CLI boolean flags in config (#1913). Thanks @chrysle
Other Changes:
- Add Command Line Reference section to docs (#1934). Thanks @atugushev
18 Jul 2023
Features:
- Validate parsed config against CLI options (#1910). Thanks @atugushev
Bug Fixes:
- Fix a bug where pip-sync would unexpectedly uninstall some packages (#1919). Thanks @atugushev
14 Jul 2023
Backwards Incompatible Changes:
- Default to
--resolver=backtracking(#1897). Thanks @atugushev - Drop support for Python 3.7 (#1879). Thanks @chrysle
Features:
- Add support for
pip==23.2where refactored outDEV_PKGS(#1906). Thanks @atugushev - Add
--no-configoption (#1896). Thanks @atugushev
Bug Fixes:
- Sync direct references with hashes (#1885). Thanks @siddharthab
- Fix missing
vias when more than two input files are used (#1890). Thanks @lpulley
28 Jun 2023
Features:
- Support config defaults using
.pip-tools.tomlorpyproject.toml(#1863). Thanks @j00bar - Log a warning if the user specifies
-Pand the output file is present but empty (#1822). Thanks @davidmreed - Improve warning for
pip-compileif no--allow-unsafewas passed (#1867). Thanks @chrysle
Other Changes:
- Correct in README
pre-commithook to run offrequirements.in(#1847). Thanks @atugushev - Add pyprojects.toml example for using setuptools (#1851). Thanks @shatakshiiii
07 Apr 2023
Features:
- Add support for self-referential extras (#1791). Thanks @q0w
- Add support for
pip==23.1where removedFormatControlinWheelCache(#1834). Thanks @atugushev - Add support for
pip==23.1where refactored requirement options (#1832). Thanks @atugushev - Add support for
pip==23.1where deprecated--install-optionhas been removed (#1828). Thanks @atugushev
Bug Fixes:
- Pass
--cache-dirto--pip-argsfor backtracking resolver (#1827). Thanks @q0w
Other Changes:
- Update examples in README (#1835). Thanks @lucaswerkmeister
01 Mar 2023
Bug Fixes:
- Remove extras from user-supplied constraints in backtracking resolver (#1808). Thanks @thomdixon
- Fix for sync error when the ireqs being merged have no names (#1802). Thanks @richafrank
25 Dec 2022
Bug Fixes:
- Raise error if input and output filenames are matched (#1787). Thanks @atugushev
- Add
pyproject.tomlas default input file format (#1780). Thanks @berislavlopac - Fix a regression with unsafe packages for
--allow-unsafe(#1788). Thanks @q0w
16 Dec 2022
Bug Fixes:
- Set explicitly packages for setuptools (#1782). Thanks @q0w
13 Dec 2022
Features:
- Add
--no-indexflag topip-compile(#1745). Thanks @atugushev
Bug Fixes:
- Treat
--upgrade-packagesPKGSPECs as constraints (not just minimums), consistently (#1578). Thanks @AndydeCleyre - Filter out the user provided unsafe packages (#1766). Thanks @q0w
- Adopt PEP-621 for packaging (#1763). Thanks @ssbarnea
30 Nov 2022
Features:
- Add
pyproject.tomlfile (#1643). Thanks @otherJL0 - Support build isolation using
setuptools/pyproject.tomlrequirement files (#1727). Thanks @atugushev
Bug Fixes:
- Improve punctuation/grammar with
pip-compileheader (#1547). Thanks @blueyed - Generate hashes for all available candidates (#1723). Thanks @neykov
Other Changes:
- Bump click minimum version to
>= 8(#1733). Thanks @atugushev - Bump pip minimum version to
>= 22.2(#1729). Thanks @atugushev
13 Nov 2022
Features:
- Deprecate
pip-compile --resolver=legacy(#1724). Thanks @atugushev - Prompt user to use the backtracking resolver on errors (#1719). Thanks @maxfenv
- Add support for Python 3.11 final (#1708). Thanks @hugovk
- Add
--newline=[LF|CRLF|native|preserve]option topip-compile(#1652). Thanks @AndydeCleyre
Bug Fixes:
- Fix inconsistent handling of constraints comments with backtracking resolver (#1713). Thanks @mkniewallner
- Fix some encoding warnings in Python 3.10 (PEP 597) (#1614). Thanks @GalaxySnail
Other Changes:
- Update pip-tools version in the README's pre-commit examples (#1701). Thanks @Kludex
- Document use of the backtracking resolver (#1718). Thanks @maxfenv
- Use HTTPS in a readme link (#1716). Thanks @Arhell
05 Oct 2022
Features:
- Add
--all-extrasflag topip-compile(#1630). Thanks @apljungquist - Support Exclude Package with custom unsafe packages (#1509). Thanks @hmc-cs-mdrissi
Bug Fixes:
- Fix compile cached vcs packages (#1649). Thanks @atugushev
- Include
py.typedin wheel file (#1648). Thanks @FlorentJeannot
Other Changes:
- Add pyproject.toml & modern packaging to introduction. (#1668). Thanks @hynek
30 Jun 2022
Features:
- Add support for pip's 2020 dependency resolver. Use
pip-compile --resolver backtrackingto enable new resolver (#1539). Thanks @atugushev
27 Jun 2022
Features:
- Support for the
importlib.metadatametadata implementation (#1632). Thanks @richafrank
Bug Fixes:
- Instantiate a new accumulator
InstallRequirementforcombine_install_requirementsoutput (#1519). Thanks @richafrank
Other Changes:
- Replace direct usage of the
pep517module with thebuildmodule, for loading project metadata (#1629). Thanks @AndydeCleyre
23 May 2022
Bug Fixes:
- Update
PyPIRepository::resolve_reqs()for pip>=22.1.1 (#1624). Thanks @m000
13 May 2022
Bug Fixes:
- Fix support for pip>=22.1 (#1618). Thanks @wizpig64
06 Apr 2022
Features:
- Add support for pip>=22.1 (#1607). Thanks @atugushev
Bug Fixes:
- Ensure
pip-compile --dry-run --quietstill shows what would be done, while omitting the dry run message (#1592). Thanks @AndydeCleyre - Fix
--generate-hasheswhen hashes are computed from files (#1540). Thanks @RazerM
08 Feb 2022
Bug Fixes:
- Ensure canonicalized requirement names are used as keys, to prevent unnecessary reinstallations during sync (#1572). Thanks @AndydeCleyre
04 Feb 2022
Features:
- Add support for pip>=22.0, drop support for Python 3.6 (#1567). Thanks @di
- Test on Python 3.11 (#1527). Thanks @hugovk
Other Changes:
- Minor doc edits (#1445). Thanks @ssiano
12 Oct 2021
Features:
- Add support for
pip>=21.3(#1501). Thanks @atugushev - Add support for Python 3.10 (#1497). Thanks @joshuadavidthomas
Other Changes:
- Bump pip minimum version to
>= 21.2(#1500). Thanks @atugushev
08 Oct 2021
Bug Fixes:
- Ensure
pip-toolsunions dependencies of multiple declarations of a package with different extras (#1486). Thanks @richafrank - Allow comma-separated arguments for
--extra(#1493). Thanks @AndydeCleyre - Improve clarity of help text for options supporting multiple (#1492). Thanks @AndydeCleyre
21 Sep 2021
Features:
- Enable single-line annotations with
pip-compile --annotation-style=line(#1477). Thanks @AndydeCleyre - Generate PEP 440 direct reference whenever possible (#1455). Thanks @FlorentJeannot
- PEP 440 Direct Reference support (#1392). Thanks @FlorentJeannot
Bug Fixes:
- Change log level of hash message (#1460). Thanks @plannigan
- Allow passing
--no-upgradeoption (#1438). Thanks @ssbarnea
22 Jun 2021
Features:
- Add
--emit-options/--no-emit-optionsflags topip-compile(#1123). Thanks @atugushev - Add
--python-executableoption forpip-sync(#1333). Thanks @MaratFM - Log which python version was used during compile (#828). Thanks @graingert
Bug Fixes:
- Fix
pip-compilepackage ordering (#1419). Thanks @adamsol - Add
--strip-extrasoption topip-compilefor producing constraint compatible output (#1404). Thanks @ssbarnea - Fix
clickv7version_optioncompatibility (#1410). Thanks @FuegoFro - Pass
package_nameexplicitly inclick.version_optiondecorators for compatibility withclick>=8.0(#1400). Thanks @nicoa
Other Changes:
- Document updating requirements with
pre-commithooks (#1387). Thanks @microcat49 - Add
setuptoolsandwheeldependencies to thesetup.cfg(#889). Thanks @jayvdb - Improve instructions for new contributors (#1394). Thanks @FlorentJeannot
- Better explain role of existing
requirements.txt(#1369). Thanks @mikepqr
14 Apr 2021
Features:
- Add support for
pyproject.tomlorsetup.cfgas input dependency file (PEP-517) forpip-compile(#1356). Thanks @orsinium - Add
pip-compile --extraoption to specifyextras_requiredependencies (#1363). Thanks @orsinium
Bug Fixes:
- Restore ability to set compile cache with env var
PIP_TOOLS_CACHE_DIR(#1368). Thanks @AndydeCleyre
15 Mar 2021
Bug Fixes:
- Fixed a bug with undeclared dependency on
importlib-metadataat Python 3.6 (#1353). Thanks @atugushev
Dependencies:
- Add
pep517dependency (#1353). Thanks @atugushev
12 Mar 2021
Backwards Incompatible Changes:
- Remove support for EOL Python 3.5 and 2.7 (#1243). Thanks @jdufresne
- Remove deprecated
--index/--no-indexoption frompip-compile(#1234). Thanks @jdufresne
Features:
- Use
pep517to parse dependencies metadata fromsetup.py(#1311). Thanks @astrojuanlu
Bug Fixes:
- Fix a bug where
pip-compilewithsetup.pywould not include dependencies with environment markers (#1311). Thanks @astrojuanlu - Prefer
===over==when generatingrequirements.txtif a dependency was pinned with===(#1323). Thanks @IceTDrinker - Fix a bug where
pip-compilewithsetup.pyin nested folder would generatesetup.txtoutput file (#1324). Thanks @peymanslh - Write out default index when it is provided as
--extra-index-url(#1325). Thanks @fahrradflucht
Dependencies:
- Bump
pipminimum version to>= 20.3(#1340). Thanks @atugushev
31 Dec 2020
Features:
- Add Python 3.9 support (1222). Thanks @jdufresne
- Improve formatting of long "via" annotations (1237). Thanks @jdufresne
- Add
--verboseand--quietoptions topip-sync(1241). Thanks @jdufresne - Add
--no-allow-unsafeoption topip-compile(1265). Thanks @jdufresne
Bug Fixes:
- Restore
PIP_EXISTS_ACTIONenvironment variable to its previous state when resolve dependencies inpip-compile(1255). Thanks @jdufresne
Dependencies:
- Remove
sixdependency in favorpip's vendoredsix(1240). Thanks @jdufresne
Improved Documentation:
- Add
pip-requirements.el(for Emacs) to useful tools toREADME(#1244). Thanks @jdufresne - Add supported Python versions to
README(#1246). Thanks @jdufresne
21 Nov 2020
Features:
- Add
pip>=20.3support (1216). Thanks @atugushev and @AndydeCleyre - Exclude
--no-reuse-hashesoption from «command to run» header (1197). Thanks @graingert
Dependencies:
- Bump
pipminimum version to>= 20.1(1191). Thanks @atugushev and @AndydeCleyre
31 Jul 2020
Bug Fixes:
- Fix
pip-20.2compatibility issue that causedpip-toolsto sometime fail to stabilize in a constant number of rounds (1194). Thanks @vphilippon
26 Jul 2020
Features:
- Add
-halias for--helpoption topip-syncandpip-compile(1163). Thanks @jan25 - Add
pip>=20.2support (1168). Thanks @atugushev pip-syncnow exists with code1on--dry-run(1172). Thanks @francisbritopip-compilenow doesn't resolve constraints from-c constraints.txtthat are not (yet) requirements (1175). Thanks @clslgrnc- Add
--reuse-hashes/--no-reuse-hashesoptions topip-compile(1177). Thanks @graingert
09 Jun 2020
Bug Fixes:
- Fix a bug where
pip-compilewould lose some dependencies on update arequirements.txt(1159). Thanks @richafrank
27 May 2020
Features:
- Show basename of URLs when
pip-compilegenerates hashes in a verbose mode (1113). Thanks @atugushev - Add
--emit-index-url/--no-emit-index-urloptions topip-compile(1130). Thanks @atugushev
Bug Fixes:
- Fix a bug where
pip-compilewould ignore some of package versions whenPIP_PREFER_BINARYis set on (1119). Thanks @atugushev - Fix leaked URLs with credentials in the debug output of
pip-compile. (1146). Thanks @atugushev - Fix a bug where URL requirements would have name collisions (1149). Thanks @geokala
Deprecations:
- Deprecate
--index/--no-indexin favor of--emit-index-url/--no-emit-index-urloptions inpip-compile(1130). Thanks @atugushev
Other Changes:
- Switch to
setuptoolsdeclarative syntax throughsetup.cfg(1141). Thanks @jdufresne
05 May 2020
Bug Fixes:
- Fix grouping of editables and non-editables requirements (1132). Thanks @richafrank
01 May 2020
Bug Fixes:
- Fix a bug where
pip-compilewould generate hashes for*.eggfiles (#1122). Thanks @atugushev
27 Apr 2020
Features:
- Show progress bar when downloading packages in
pip-compileverbose mode (#949). Thanks @atugushev pip-compilenow gets hashes fromPyPIJSON API (if available) which significantly increases the speed of hashes generation (#1109). Thanks @atugushev
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). Thanks @atugushev--build-isolationoption now set on by default forpip-compile(#1060). Thanks @hramezani
Features:
- Exclude requirements with non-matching markers from
pip-sync(#927). Thanks @AndydeCleyre - Add
pre-commithook forpip-compile(#976). Thanks @atugushev pip-compileandpip-syncnow pass anything provided to the new--pip-argsoption on topip(#1080). Thanks @AndydeCleyrepip-compileoutput headers are now more accurate when--is used to escape filenames (#1080). Thanks @AndydeCleyre- Add
pip>=20.1support (#1088). Thanks @atugushev
Bug Fixes:
- Fix a bug where editables that are both direct requirements and constraints wouldn't
appear in
pip-compileoutput (#1093). Thanks @richafrank pip-compilenow sorts format controls (--no-binary/--only-binary) to ensure consistent results (#1098). Thanks @richafrank
Improved Documentation:
- Add cross-environment usage documentation to
README(#651). Thanks @vphilippon - Add versions compatibility table to
README(#1106). Thanks @atugushev
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). Thanks @adamchainz
Improved Documentation:
- Updated
READMEexample outputs for primary requirement annotations (#1072). Thanks @richafrank
20 Feb 2020
Features:
- Primary requirements and VCS dependencies are now get annotated with any source
.infiles and reverse dependencies (#1058). Thanks @AndydeCleyre
Bug Fixes:
- Always use normalized path for cache directory as it is required in newer versions of
pip(#1062). Thanks @kammala
Improved Documentation:
- Replace outdated link in the
READMEwith rationale for pinning (#1053). Thanks @m-aciek
31 Jan 2020
Bug Fixes:
- Fix a bug where
pip-compilewould keep outdated options fromrequirements.txt(#1029). Thanks @atugushev - Fix the
No handlers could be found for logger "pip.*"error by configuring the builtin logging module (#1035). Thanks @vphilippon - Fix a bug where dependencies of relevant constraints may be missing from output file (#1037). Thanks @jeevb
- Upgrade the minimal version of
clickfrom6.0to7.0version insetup.py(#1039). Thanks @hramezani - Ensure that depcache considers the python implementation such that (for example)
cpython3.6does not poison the results ofpypy3.6(#1050). Thanks @asottile
Improved Documentation:
- Make the
READMEmore imperative about installing into a project's virtual environment to avoid confusion (#1023). Thanks @tekumara - Add a note to the
READMEabout how to install requirements on different stages to Workflow for layered requirements section (#1044). Thanks @hramezani
21 Jan 2020
Features:
- Add
--cache-diroption topip-compile(#1022). Thanks @richafrank - Add
pip>=20.0support (#1024). Thanks @atugushev
Bug Fixes:
- Fix a bug where
pip-compile --upgrade-packagewould upgrade those passed packages not already required according to the*.inand*.txtfiles (#1031). Thanks @AndydeCleyre
25 Nov 2019
Features:
- Add Python 3.8 support (#956). Thanks @hramezani
- Unpin commented out unsafe packages in
requirements.txt(#975). Thanks @atugushev
Bug Fixes:
- Fix
pip-compiledoesn't copy--trusted-hostfromrequirements.intorequirements.txt(#964). Thanks @atugushev - Add compatibility with
pip>=20.0(#953 and #978). Thanks @atugushev - Fix a bug where the resolver wouldn't clean up the ephemeral wheel cache (#968). Thanks @atugushev
Improved Documentation:
- Add a note to
READMEaboutrequirements.txtfile, which would possibly interfere if you're compiling from scratch (#959). Thanks @hramezani
12 Oct 2019
Features:
- Add
--askoption topip-sync(#913). Thanks @georgek
Bug Fixes:
- Add compatibility with
pip>=19.3(#864, #904, #910, #912 and #915). Thanks @atugushev - Ensure
pip-compile --no-header <blank requirements.in>creates/overwritesrequirements.txt(#909). Thanks @AndydeCleyre - Fix
pip-compile --upgrade-packageremoves «via» annotation (#931). Thanks @hramezani
Improved Documentation:
- Add info to
READMEabout layered requirements files and-cflag (#905). Thanks @jamescooke
26 Aug 2019
Features:
- Add
--no-emit-find-linksoption topip-compile(#873). Thanks @jacobtolar
Bug Fixes:
- Prevent
--dry-runlog message from being printed with--quietoption inpip-compile(#861). Thanks @ddormer - Fix resolution of requirements from Git URLs without
-e(#879). Thanks @andersk
25 Jul 2019
Backwards Incompatible Changes:
- Drop support for EOL Python 3.4 (#803). Thanks @auvipy
Bug Fixes:
- Fix
pip>=19.2compatibility (#857). Thanks @atugushev
17 Jul 2019
Features:
- Print provenance information when
pip-compilefails (#837). Thanks @jakevdp
Bug Fixes:
- Output all logging to stderr instead of stdout (#834). Thanks @georgek
- Fix output file update with
--dry-runoption inpip-compile(#842). Thanks @shipmints and @atugushev
06 Jun 2019
Features:
- Options
--upgradeand--upgrade-packageare no longer mutually exclusive (#831). Thanks @adamchainz
Bug Fixes:
- Fix
--generate-hasheswith bare VCS URLs (#812). Thanks @jcushman - Fix issues with
UnicodeErrorwhen installingpip-toolsfrom source in some systems (#816). Thanks @AbdealiJK - Respect
--preoption in the input file (#822). Thanks @atugushev - Option
--upgrade-packagenow works even if the output file does not exist (#831). Thanks @adamchainz
09 May 2019
Features:
- Show progressbar on generation hashes in
pip-compileverbose mode (#743). Thanks @atugushev - Add options
--certand--client-certtopip-sync(#798). Thanks @atugushev - Add support for
--find-linksinpip-compileoutput (#793). Thanks @estan and @atugushev - Normalize «command to run» in
pip-compileheaders (#800). Thanks @atugushev - Support URLs as packages (#807). Thanks @jcushman, @nim65s and @toejough
Bug Fixes:
- Fix replacing password to asterisks in
pip-compile(#808). Thanks @atugushev
24 Apr 2019
Bug Fixes:
- Fix
pip>=19.1compatibility (#795). Thanks @atugushev
03 Apr 2019
Features:
- Show less output on
pip-syncwith--quietoption (#765). Thanks @atugushev - Support the flag
--trusted-hostinpip-sync(#777). Thanks @firebirdberlin
13 Mar 2019
Features:
- Show default index url provided by
pip(#735). Thanks @atugushev - Add an option to allow enabling/disabling build isolation (#758). Thanks @atugushev
Bug Fixes:
- Fix the output file for
pip-compilewith an explicitsetup.pyas source file (#731). Thanks @atugushev - Fix order issue with generated lock file when
hashesandmarkersare used together (#763). Thanks @milind-shakya-sp
19 Feb 2019
Features:
- Add option
--quiettopip-compile(#720). Thanks @bendikro - Emit the original command to the
pip-compile's header (#733). Thanks @atugushev
Bug Fixes:
- Fix
pip-syncto use pip script depending on a python version (#737). Thanks @atugushev
26 Jan 2019
Bug Fixes:
- Fix
pip-syncwith a temporary requirement file on Windows (#723). Thanks @atugushev - Fix
pip-syncto prevent uninstall of stdlib and dev packages (#718). Thanks @atugushev
24 Jan 2019
- Re-release of 3.3.0 after fixing the deployment pipeline (#716). Thanks @atugushev
23 Jan 2019
(Unreleased - Deployment pipeline issue, see 3.3.1)
Features:
- Added support of
pip19.0 (#715). Thanks @atugushev - Add
--allow-unsafeto update instructions in the generatedrequirements.txt(#708). Thanks @richafrank
Bug Fixes:
- Fix
pip-syncto check hashes (#706). Thanks @atugushev
18 Dec 2018
Features:
- Apply version constraints specified with package upgrade option
(
-P, --upgrade-package) (#694). Thanks @richafrank
05 Oct 2018
Features:
- Added support of
pip18.1 (#689). Thanks @vphilippon
24 Sep 2018
Major changes:
- Update
pip-toolsfor nativepip8, 9, 10 and 18 compatibility, un-vendoringpipto use the user-installedpip(#657 and #672). Thanks to @techalchemy, @suutari, @tysonclugg and @vphilippon for contributing on this.
Features:
- Removed the dependency on the external library
first(#676). Thanks @jdufresne
28 Apr 2018
Bug Fixes:
- Added clearer error reporting when skipping pre-releases (#655). Thanks @WoLpH
15 Apr 2018
Bug Fixes:
- Added missing package data from vendored pip, such as missing cacert.pem file. Thanks @vphilippon
15 Apr 2018
Major changes:
- Vendored
pip9.0.3 to keep compatibility for users withpip10.0.0 (#644). Thanks @vphilippon
Features:
- Improved the speed of pip-compile --generate-hashes by caching the hashes from an existing output file (#641). Thanks @justicz
- Added a
pip-sync --useroption to restrict attention to user-local directory (#642). Thanks @jbergknoff-10e - Removed the hard dependency on setuptools (#645). Thanks @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). Thanks @JoergRittinger
30 Nov 2017
Features:
- Allow editable packages in requirements.in with
pip-compile --generate-hashes(#524). Thanks @jdufresne - Allow for CA bundles with
pip-compile --cert(#612). Thanks @khwilson - Improved
pip-compileduration with large locally available editable requirement by skipping a copy to the cache (#583). Thanks @costypetrisor - Slightly improved the
NoCandidateFounderror message on potential causes (#614). Thanks @vphilippon
Bug Fixes:
- Add
-markerlibto the list ofPACKAGES_TO_IGNOREofpip-sync(#613).
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 the requirements.txt (600). Thanks @hazmat345- Converted the ReadMe to have a nice description rendering on PyPI. Thanks @bittner
27 Sep 2017
Bug Fixes:
- Fixed bug breaking
pip-syncon Python 3, raisingTypeError: '<' not supported between instances of 'InstallRequirement' and 'InstallRequirement'(#570).
27 Sep 2017
Features:
--generate-hashesnow generates hashes for all wheels, not only wheels for the currently running platform (#520). Thanks @jdufresne- Added a
-q/--quietargument to the pip-sync command to reduce log output.
Bug Fixes:
- Fixed bug where unsafe packages would get pinned in generated requirements files when
--allow-unsafewas not set. (#517). Thanks @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). Thanks @blueyed and @dfee - Fixed bug where some primary dependencies were annotated with "via" info comments. (#542). Thanks @quantus
- Fixed bug where pkg-resources would be removed by pip-sync in Ubuntu. (#555). Thanks @cemsbr
- Fixed bug where the resolver would sometime not stabilize on requirements specifying extras. (#566). Thanks @vphilippon
- Fixed an unicode encoding error when distribution package contains non-ASCII file names (#567). Thanks @suutari
- Fixed package hashing doing unnecessary unpacking (#557). Thanks @suutari-ai
12 Apr 2017
Features:
- Added ability to read requirements from
setup.pyinstead of justrequirements.in(#418). Thanks to @tysonclugg and @majuscule. - Added a
--max-roundsargument to the pip-compile command to allow for solving large requirement sets (#472). Thanks @derek-miller. - Exclude unsafe packages' dependencies when
--allow-unsafeis not in use (#441). Thanks @jdufresne. - Exclude irrelevant pip constraints (#471). Thanks @derek-miller.
- Allow control over emitting trusted-host to the compiled requirements. (#448). Thanks @tonyseek.
- Allow running as a Python module (#461). Thanks @AndreLouisCaron.
- Preserve environment markers in generated requirements.txt. (#460). Thanks @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). Thanks @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.
28 Mar 2017
- Regression fix: editable reqs were losing their dependencies after first round (#476) Thanks @mattlong
- Remove duplicate index urls in generated requirements.txt (#468) Thanks @majuscule
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)
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
20 Oct 2016
- Add
--allow-unsafeoption (#377)
06 Jul 2016
- Add compatibility with pip >= 8.1.2 (#374) Thanks so much, @jmbowman!
11 May 2016
- Add warning that pip >= 8.1.2 is not supported until 1.7.x is out
03 May 2016
- Incorporate fix for atomic file saving behaviour on the Windows platform (see #351)
02 May 2016
- PyPI won't let me upload 1.6.2
02 May 2016
- Respect pip configuration from pip.{ini,conf}
- Fixes for atomic-saving of output files on Windows (see #351)
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
Fixes:
- Change header format of output files to mention all input files
05 Feb 2016
Major change:
- 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
--upgradeoption.
Minor changes:
- Bugfix where pip-compile would lose "via" info when on pip 8 (see #313)
- Ensure cache dir exists (see #315)
23 Jan 2016
- Add support for pip >= 8
- Drop support for pip < 7
- Fix bug where
pip-syncfails to uninstall packages if you're using the--no-index(or other) flags
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-sync failed uninstalling packages when using
--find-links(#298) - Explicitly error when pip-tools is used with pip 8.0+ (for now)
11 Jan 2016
- Fix: unintended change in behaviour where packages installed by
pip-synccould accidentally get upgraded under certain conditions, even though the requirements.txt would dictate otherwise (see #290)
06 Jan 2016
- Fix: add
--index-urland--extra-index-urloptions topip-sync - Fix: always install using
--upgradeflag when runningpip-sync
13 Dec 2015
- Fix bug where umask was ignored when writing requirement files (#268)
13 Dec 2015
- Fix bug where successive invocations of pip-sync with editables kept uninstalling/installing them (fixes #270)
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
08 Dec 2015
- Support multiple requirement files to pip-compile
- Support requirements from stdin for pip-compile
- Support --output-file option on pip-compile, to redirect output to a file (or stdout)
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.)