2026-02-09
-
The option
--unsafe-packageis now normalized -- by {user}shifqu.PRs and issues: {issue}
2150 -
Fixed a bug in which
pip-compilelost any index URL options when looking up hashes -- by {user}sirosen.This caused errors when a package was only available from an extra index, and caused
pip-compileto incorrectly drop index URL options from output, even when they were present in the input requirements.PRs and issues: {issue}
2220, {issue}2294, {issue}2305 -
Fixed removal of temporary files used when reading requirements from stdin -- by {user}
sirosen.
-
pip-toolsis now tested against Python 3.14 and 3.14t in CI, and marks them as supported in the core packaging metadata -- by {user}webknjaz.PRs and issues: {issue}
2255 -
pip-tools is now compatible with pip 26.0 -- by {user}
sirosen.PRs and issues: {issue}
2319, {issue}2320
- Removed support for Python 3.8 -- by {user}
sirosen.
-
The change log management infra now allows the maintainers to add notes before and after the regular categories -- by {user}
webknjaz.PRs and issues: {issue}
2287, {issue}2322 -
Added documentation clarifying that
pip-compilereads the existing output file as a constraint source, and how to use--upgradeto refresh dependencies -- by {user}maliktafheem.PRs and issues: {issue}
2307
-
pip-toolsis now tested against Python 3.14 and 3.14t in CI, and marks them as supported in the core packaging metadata -- by {user}webknjaz.PRs and issues: {issue}
2255
-
Consistency of the Markdown files is now being enforced by linting with {pypi}
pymarkdownlnt-- by {user}webknjaz.PRs and issues: {issue}
2256 -
The linting is now set up to perform structured GitHub Actions workflows and actions checks against json schemas -- by {user}
webknjaz.PRs and issues: {issue}
2273 -
The CI/CD is now set up so that the distribution build job is a part of the test pipeline. That pipeline is included in the release workflow which sources the artifact in produces. The tests must now pass for the release to be published to PyPI.
-- by {user}
webknjazPRs and issues: {issue}
2274 -
Fix
actionlinthook usage to always includeshellcheckintegration -- by {user}sirosen.PRs and issues: {issue}
2281 -
Utilities for interacting with
piphave started to move into the :py:mod:piptools._internal._pip_apisubpackage -- by {user}sirosen.PRs and issues: {issue}
2285 -
The change log management infra now allows the maintainers to add notes before and after the regular categories -- by {user}
webknjaz.PRs and issues: {issue}
2287, {issue}2322 -
The linting is now set up to demand that {py:mod}
typingis always imported as a module under the name of_t-- by {user}webknjaz.This is enforced by {user}
sirosen's {pypi}flake8-typing-as-tplugin for {pypi}flake8.PRs and issues: {issue}
2289 -
The {file}
tox.iniand {file}.github/parts of the repository now have project leads assigned as GitHub code owners -- by {user}webknjaz.PRs and issues: {issue}
2291 -
Remove a redundant 'v' prefix from the CI release workflow job name -- by {user}
anandvenugopal-tech.PRs and issues: {issue}
2300 -
The
check-jsonschemaReadTheDocs hook has been enabled, and the config has been tweaked to pass -- by {user}sirosen.
2025-11-11
-
Fixed
pip-compileto handle relative path includes which are not subpaths of the current working directory -- by {user}sirosen.PRs and issues: {issue}
2231, {issue}2260 -
Using
--upgrade-packageand dynamically building project metadata no longer causes an {exc}AttributeErrorwhen pip encounters an error during the build -- by {user}Epic_Winkand {user}tusharsadhwani.PRs and issues: {issue}
2258
-
Test and declare Python 3.13 support -- by {user}
jayaddison(for OpenCulinary).PRs and issues: {issue}
2251 -
pip-tools is now compatible with pip 25.3 -- by {user}
shifqu.PRs and issues: {issue}
2252, {issue}2253
-
pip-toolsnow supports installation from git archives by providingsetuptools-scmwith.git_archival.txtdata.PRs and issues: {issue}
2225
-
The change log entry bot has been explicitly configured to stop requiring news fragments in pull requests having the
bot:chronographer:skiplabel set -- by {user}sirosenand {user}webknjaz.It was also set up to reference our change log authoring document from the GitHub Checks pages. And the reported check name is now set to
Change log entry.PRs and issues: {issue}
2201 -
The CI is now set up to invoke failed tests again with maximum level of detail -- by {user}
webknjaz.The change is aimed at helping troubleshoot failures that might be difficult to reproduce locally.
PRs and issues: {issue}
2254 -
The integration with Codecov has been updated to ensure that reports are uploaded to the service even on failures -- by {user}
webknjaz.GitHub Actions is now configured to also send an explicit notification to Codecov about the completion of previously initiated uploads.
Additionally, the configuration file is now {file}
.codecov.yml.PRs and issues: {issue}
2265 -
The linting suite now runs
actionlint-- by {user}webknjaz.This tool checks typical problems with GitHub Actions workflow definitions and has a registry of widely-used GitHub Action arguments that it validates.
PRs and issues: {issue}
2266
2025-09-26
-
Fixed static parsing of {file}
pyproject.tomldata when the {file}pyproject.tomlis supplied as a relative path -- by {user}sirosen.PRs and issues: {issue}
2215, {issue}2221, {issue}2233 -
The "via" paths in
pip-compileoutput for requirements discovered frompyproject.tomldata are now written in POSIX format -- by {user}sirosen.PRs and issues: {issue}
2221 -
Fixed a bug which removed slashes from URLs in
-rand-cin the output ofpip-compile-- by {user}sirosen.PRs and issues: {issue}
2223 -
Fixed an incompatibility with
click >= 8.3which madepip-compiledisplay incorrect options in the compile command in output headers -- by {user}sirosen.PRs and issues: {issue}
2235
-
pip-toolsnow officially supportspipversion 25.2 -- by {user}sirosen.PRs and issues: {issue}
2214
-
ReadTheDocs builds for
pip-toolsno longer include htmlzip and pdf outputs -- by {user}sirosen.PRs and issues: {issue}
2218
-
pip-toolsnow tests onpipversion 25.2 -- by {user}sirosen.PRs and issues: {issue}
2214 -
The changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by {user}
jayaddison(for OpenCulinary).PRs and issues: {issue}
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 {user}
sirosen.PRs and issues: {issue}
2226
2025-07-30
-
Fixed the ordering of format controls to preserve underlying
pipbehavior -- by {user}sethmlarson.PRs and issues: {issue}
2082 -
Fixed
NoCandidateFoundexception to be compatible withpip >= 24.1-- by {user}chrysle.PRs and issues: {issue}
2083 -
pip-compilenow produces relative paths for editable dependencies -- by {user}macro1.PRs and issues: {issue}
2087 -
Fixed crash failures due to incompatibility with
pip >= 25.1-- by {user}gkreitzand {user}sirosen.PRs and issues: {issue}
2176, {issue}2178
-
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 {user}
chryslePRs and issues: {issue}
2106 -
pip-toolsnow tests on and officially supports Python 3.12 -- by {user}sirosen.PRs and issues: {issue}
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 {user}
sirosenPRs and issues: {issue}
2195 -
pip-toolsnow tests against and supportspipup to version25.1-- by {user}sirosen.PRs and issues: {issue}
2195
-
pip-compilewill now relativize the requirements paths which are recorded in its output. Paths are made relative to the working directory. This provides more consistent results acrosspipversions.-- by {user}
sirosenPRs and issues: {issue}
2131, {issue}2195
-
pip-toolsreleases are now configured via Trusted Publishing. This allows for signature and attestation verification via PyPI.-- by {user}
webknjazPRs and issues: {issue}
2149, {issue}2209, {issue}2210
-
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 {user}
webknjazPRs and issues: {issue}
2142 -
pip-toolsnow tests against PyPy 3.10 as its supported PyPy version -- by {user}webknjaz.PRs and issues: {issue}
2146 -
pip-toolsnow uses Towncrier to manage the changelog -- by {user}sirosenand {user}webknjaz, with suggestions from {user}jayaddison.PRs and issues: {issue}
2201, {issue}2203 -
pip-toolsnow usessphinx-issuesto link to issues, PRs, commits, and user accounts -- by {user}sirosen.PRs and issues: {issue}
2202
05 Mar 2024
- Skip constraint path check ({pr}
2038) -- by {user}honnix. - Fix collecting deps for all extras in multiple input packages ({pr}
1981) -- by {user}dragly.
16 Feb 2024
- Allow force-enabling or force-disabling colorized output ({pr}
2041) -- by {user}aneeshusa. - Add support for command-specific configuration sections ({pr}
1966) -- by {user}chrysle. - Add options for including build dependencies in compiled output ({pr}
1681) -- by {user}apljungquist.
- Fix for
src-filesnot being used when specified in a config file ({pr}2015) -- by {user}csalerno-asml. - Fix ignorance of inverted CLI options in config for
pip-sync({pr}1989) -- by {user}chrysle. - Filter out origin ireqs for extra requirements before writing output
annotations ({pr}
2011) -- by {user}chrysle. - Make BacktrackingResolver ignore extras when dropping existing constraints ({pr}
1984) -- by {user}chludwig-haufe. - Display
pyproject.toml's metatada parsing errors in verbose mode ({pr}1979) -- by {user}szobov.
- Add mention of pip-compile-multi in Other useful tools README section ({pr}
1986) -- by {user}peterdemin.
09 Aug 2023
- Add
--no-strip-extrasand warn about strip extras by default ({pr}1954) -- by {user}ryanhiebert.
- Fix revealed default config in header if requirements in subfolder ({pr}
1904) -- by {user}atugushev. - Direct references show extra requirements in .txt files ({pr}
1582) -- by {user}FlorentJeannot.
- Document how to run under
pipx run({pr}1951) -- by {user}brettcannon. - Document that the backtracking resolver is the current default ({pr}
1948) -- by {user}jeffwidman.
02 Aug 2023
- Add
-c/--constraintoption topip-compile({pr}1936) -- by {user}atugushev.
- Allow options in config from both
pip-compileandpip-sync({pr}1933) -- by {user}atugushev. - Fix rejection of negating CLI boolean flags in config ({pr}
1913) -- by {user}chrysle.
- Add Command Line Reference section to docs ({pr}
1934) -- by {user}atugushev.
18 Jul 2023
- Validate parsed config against CLI options ({pr}
1910) -- by {user}atugushev.
- Fix a bug where
pip-syncwould unexpectedly uninstall some packages ({pr}1919) -- by {user}atugushev.
14 Jul 2023
- Default to
--resolver=backtracking({pr}1897) -- by {user}atugushev. - Drop support for Python 3.7 ({pr}
1879) -- by {user}chrysle.
- Add support for
pip==23.2where refactored outDEV_PKGS({pr}1906) -- by {user}atugushev. - Add
--no-configoption ({pr}1896) -- by {user}atugushev.
- Sync direct references with hashes ({pr}
1885) -- by {user}siddharthab. - Fix missing
vias when more than two input files are used ({pr}1890) -- by {user}lpulley.
28 Jun 2023
- Support config defaults using
.pip-tools.tomlorpyproject.toml({pr}1863) -- by {user}j00bar. - Log a warning if the user specifies
-Pand the output file is present but empty ({pr}1822) -- by {user}davidmreed. - Improve warning for
pip-compileif no--allow-unsafewas passed ({pr}1867) -- by {user}chrysle.
- Correct in README
pre-commithook to run offrequirements.in({pr}1847) -- by {user}atugushev. - Add pyprojects.toml example for using setuptools ({pr}
1851) -- by {user}shatakshiiii.
07 Apr 2023
- Add support for self-referential extras ({pr}
1791) -- by {user}q0w. - Add support for
pip==23.1where removedFormatControlinWheelCache({pr}1834) -- by {user}atugushev. - Add support for
pip==23.1where refactored requirement options ({pr}1832) -- by {user}atugushev. - Add support for
pip==23.1where deprecated--install-optionhas been removed ({pr}1828) -- by {user}atugushev.
- Pass
--cache-dirto--pip-argsfor backtracking resolver ({pr}1827) -- by {user}q0w.
- Update examples in README ({pr}
1835) -- by {user}lucaswerkmeister.
01 Mar 2023
- Remove extras from user-supplied constraints in backtracking resolver ({pr}
1808) -- by {user}thomdixon. - Fix for sync error when the ireqs being merged have no names ({pr}
1802) -- by {user}richafrank.
25 Dec 2022
- Raise error if input and output filenames are matched ({pr}
1787) -- by {user}atugushev. - Add
pyproject.tomlas default input file format ({pr}1780) -- by {user}berislavlopac. - Fix a regression with unsafe packages for
--allow-unsafe({pr}1788) -- by {user}q0w.
16 Dec 2022
- Set explicitly packages for setuptools ({pr}
1782) -- by {user}q0w.
13 Dec 2022
- Add
--no-indexflag topip-compile({pr}1745) -- by {user}atugushev.
- Treat
--upgrade-packagesPKGSPECs as constraints (not just minimums), consistently ({pr}1578) -- by {user}AndydeCleyre. - Filter out the user provided unsafe packages ({pr}
1766) -- by {user}q0w. - Adopt PEP-621 for packaging ({pr}
1763) -- by {user}ssbarnea.
30 Nov 2022
- Add
pyproject.tomlfile ({pr}1643) -- by {user}otherJL0. - Support build isolation using
setuptools/pyproject.tomlrequirement files ({pr}1727) -- by {user}atugushev.
- Improve punctuation/grammar with
pip-compileheader ({pr}1547) -- by {user}blueyed. - Generate hashes for all available candidates ({pr}
1723) -- by {user}neykov.
- Bump click minimum version to
>= 8({pr}1733) -- by {user}atugushev. - Bump pip minimum version to
>= 22.2({pr}1729) -- by {user}atugushev.
13 Nov 2022
- Deprecate
pip-compile --resolver=legacy({pr}1724) -- by {user}atugushev. - Prompt user to use the backtracking resolver on errors ({pr}
1719) -- by {user}maxfenv. - Add support for Python 3.11 final ({pr}
1708) -- by {user}hugovk. - Add
--newline=[LF|CRLF|native|preserve]option topip-compile({pr}1652) -- by {user}AndydeCleyre.
- Fix inconsistent handling of constraints comments with backtracking resolver ({pr}
1713) -- by {user}mkniewallner. - Fix some encoding warnings in Python 3.10 (PEP 597) ({pr}
1614) -- by {user}GalaxySnail.
- Update pip-tools version in the README's pre-commit examples ({pr}
1701) -- by {user}Kludex. - Document use of the backtracking resolver ({pr}
1718) -- by {user}maxfenv. - Use HTTPS in a readme link ({pr}
1716) -- by {user}Arhell.
05 Oct 2022
- Add
--all-extrasflag topip-compile({pr}1630) -- by {user}apljungquist. - Support Exclude Package with custom unsafe packages ({pr}
1509) -- by {user}hmc-cs-mdrissi.
- Fix compile cached vcs packages ({pr}
1649) -- by {user}atugushev. - Include
py.typedin wheel file ({pr}1648) -- by {user}FlorentJeannot.
- Add pyproject.toml & modern packaging to introduction ({pr}
1668) -- by {user}hynek.
30 Jun 2022
- Add support for pip's 2020 dependency resolver. Use
pip-compile --resolver backtrackingto enable new resolver ({pr}1539) -- by {user}atugushev.
27 Jun 2022
- Support for the
importlib.metadatametadata implementation ({pr}1632) -- by {user}richafrank.
- Instantiate a new accumulator
InstallRequirementforcombine_install_requirementsoutput ({pr}1519) -- by {user}richafrank.
- Replace direct usage of the
pep517module with thebuildmodule, for loading project metadata ({pr}1629) -- by {user}AndydeCleyre.
23 May 2022
- Update
PyPIRepository::resolve_reqs()for pip>=22.1.1 ({pr}1624) -- by {user}m000.
13 May 2022
- Fix support for pip>=22.1 ({pr}
1618) -- by {user}wizpig64.
06 Apr 2022
- Add support for pip>=22.1 ({pr}
1607) -- by {user}atugushev.
- Ensure
pip-compile --dry-run --quietstill shows what would be done, while omitting the dry run message ({pr}1592) -- by {user}AndydeCleyre. - Fix
--generate-hasheswhen hashes are computed from files ({pr}1540) -- by {user}RazerM.
08 Feb 2022
- Ensure canonicalized requirement names are used as keys, to prevent unnecessary
reinstallations during sync ({pr}
1572) -- by {user}AndydeCleyre.
04 Feb 2022
- Add support for pip>=22.0, drop support for Python 3.6 ({pr}
1567) -- by {user}di. - Test on Python 3.11 ({pr}
1527) -- by {user}hugovk.
- Minor doc edits ({pr}
1445) -- by {user}ssiano.
12 Oct 2021
- Add support for
pip>=21.3({pr}1501) -- by {user}atugushev. - Add support for Python 3.10 ({pr}
1497) -- by {user}joshuadavidthomas.
- Bump pip minimum version to
>= 21.2({pr}1500) -- by {user}atugushev.
08 Oct 2021
- Ensure
pip-toolsunions dependencies of multiple declarations of a package with different extras ({pr}1486) -- by {user}richafrank. - Allow comma-separated arguments for
--extra({pr}1493) -- by {user}AndydeCleyre. - Improve clarity of help text for options supporting multiple ({pr}
1492) -- by {user}AndydeCleyre.
21 Sep 2021
- Enable single-line annotations with
pip-compile --annotation-style=line({pr}1477) -- by {user}AndydeCleyre. - Generate PEP 440 direct reference whenever possible ({pr}
1455) -- by {user}FlorentJeannot. - PEP 440 Direct Reference support ({pr}
1392) -- by {user}FlorentJeannot.
- Change log level of hash message ({pr}
1460) -- by {user}plannigan. - Allow passing
--no-upgradeoption ({pr}1438) -- by {user}ssbarnea.
22 Jun 2021
- Add
--emit-options/--no-emit-optionsflags topip-compile({pr}1123) -- by {user}atugushev. - Add
--python-executableoption forpip-sync({pr}1333) -- by {user}MaratFM. - Log which python version was used during compile ({pr}
828) -- by {user}graingert.
- Fix
pip-compilepackage ordering ({pr}1419) -- by {user}adamsol. - Add
--strip-extrasoption topip-compilefor producing constraint compatible output ({pr}1404) -- by {user}ssbarnea. - Fix
clickv7version_optioncompatibility ({pr}1410) -- by {user}FuegoFro. - Pass
package_nameexplicitly inclick.version_optiondecorators for compatibility withclick>=8.0({pr}1400) -- by {user}nicoa.
- Document updating requirements with
pre-commithooks ({pr}1387) -- by {user}microcat49. - Add
setuptoolsandwheeldependencies to thesetup.cfg({pr}889) -- by {user}jayvdb. - Improve instructions for new contributors ({pr}
1394) -- by {user}FlorentJeannot. - Better explain role of existing
requirements.txt({pr}1369) -- by {user}mikepqr.
14 Apr 2021
- Add support for
pyproject.tomlorsetup.cfgas input dependency file {pep}517forpip-compile({pr}1356) -- by {user}orsinium. - Add
pip-compile --extraoption to specifyextras_requiredependencies ({pr}1363) -- by {user}orsinium.
- Restore ability to set compile cache with env var
PIP_TOOLS_CACHE_DIR({pr}1368) -- by {user}AndydeCleyre.
15 Mar 2021
- Fixed a bug with undeclared dependency on
importlib-metadataat Python 3.6 ({pr}1353) -- by {user}atugushev.
- Add
pep517dependency ({pr}1353) -- by {user}atugushev.
12 Mar 2021
- Remove support for EOL Python 3.5 and 2.7 ({pr}
1243) -- by {user}jdufresne. - Remove deprecated
--index/--no-indexoption frompip-compile({pr}1234) -- by {user}jdufresne.
- Use
pep517to parse dependencies metadata fromsetup.py({pr}1311) -- by {user}astrojuanlu.
- Fix a bug where
pip-compilewithsetup.pywould not include dependencies with environment markers ({pr}1311) -- by {user}astrojuanlu. - Prefer
===over==when generatingrequirements.txtif a dependency was pinned with===({pr}1323) -- by {user}IceTDrinker. - Fix a bug where
pip-compilewithsetup.pyin nested folder would generatesetup.txtoutput file ({pr}1324) -- by {user}peymanslh. - Write out default index when it is provided as
--extra-index-url({pr}1325) -- by {user}fahrradflucht.
- Bump
pipminimum version to>= 20.3({pr}1340) -- by {user}atugushev.
31 Dec 2020
- Add Python 3.9 support ({pr}
1222) -- by {user}jdufresne. - Improve formatting of long "via" annotations ({pr}
1237) -- by {user}jdufresne. - Add
--verboseand--quietoptions topip-sync({pr}1241) -- by {user}jdufresne. - Add
--no-allow-unsafeoption topip-compile({pr}1265) -- by {user}jdufresne.
- Restore
PIP_EXISTS_ACTIONenvironment variable to its previous state when resolve dependencies inpip-compile({pr}1255) -- by {user}jdufresne.
- Remove
sixdependency in favorpip's vendoredsix({pr}1240) -- by {user}jdufresne.
- Add
pip-requirements.el(for Emacs) to useful tools toREADME({pr}1244) -- by {user}jdufresne. - Add supported Python versions to
README({pr}1246) -- by {user}jdufresne.
21 Nov 2020
- Add
pip>=20.3support ({pr}1216) -- by {user}atugushevand {user}AndydeCleyre. - Exclude
--no-reuse-hashesoption from «command to run» header ({pr}1197) -- by {user}graingert.
- Bump
pipminimum version to>= 20.1({pr}1191) -- by {user}atugushevand {user}AndydeCleyre.
31 Jul 2020
- Fix
pip-20.2compatibility issue that causedpip-toolsto sometime fail to stabilize in a constant number of rounds ({pr}1194) -- by {user}vphilippon.
26 Jul 2020
- Add
-halias for--helpoption topip-syncandpip-compile({pr}1163) -- by {user}jan25. - Add
pip>=20.2support ({pr}1168) -- by {user}atugushev. pip-syncnow exists with code1on--dry-run({pr}1172) -- by {user}francisbrito.pip-compilenow doesn't resolve constraints from-c constraints.txtthat are not (yet) requirements ({pr}1175) -- by {user}clslgrnc.- Add
--reuse-hashes/--no-reuse-hashesoptions topip-compile({pr}1177) -- by {user}graingert.
09 Jun 2020
- Fix a bug where
pip-compilewould lose some dependencies on update arequirements.txt({pr}1159) -- by {user}richafrank.
27 May 2020
- Show basename of URLs when
pip-compilegenerates hashes in a verbose mode ({pr}1113) -- by {user}atugushev. - Add
--emit-index-url/--no-emit-index-urloptions topip-compile({pr}1130) -- by {user}atugushev.
- Fix a bug where
pip-compilewould ignore some of package versions whenPIP_PREFER_BINARYis set on ({pr}1119) -- by {user}atugushev. - Fix leaked URLs with credentials in the debug output of
pip-compile({pr}1146) -- by {user}atugushev. - Fix a bug where URL requirements would have name collisions ({pr}
1149) -- by {user}geokala.
- Deprecate
--index/--no-indexin favor of--emit-index-url/--no-emit-index-urloptions inpip-compile({pr}1130) -- by {user}atugushev.
- Switch to
setuptoolsdeclarative syntax throughsetup.cfg({pr}1141) -- by {user}jdufresne.
05 May 2020
- Fix grouping of editables and non-editables requirements ({pr}
1132) -- by {user}richafrank.
01 May 2020
- Fix a bug where
pip-compilewould generate hashes for*.eggfiles ({pr}1122) -- by {user}atugushev.
27 Apr 2020
- Show progress bar when downloading packages in
pip-compileverbose mode ({pr}949) -- by {user}atugushev. pip-compilenow gets hashes fromPyPIJSON API (if available) which significantly increases the speed of hashes generation ({pr}1109) -- by {user}atugushev.
16 Apr 2020
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 ({pr}1055) -- by {user}atugushev.--build-isolationoption now set on by default forpip-compile({pr}1060) -- by {user}hramezani.
- Exclude requirements with non-matching markers from
pip-sync({pr}927) -- by {user}AndydeCleyre. - Add
pre-commithook forpip-compile({pr}976) -- by {user}atugushev. pip-compileandpip-syncnow pass anything provided to the new--pip-argsoption on topip({pr}1080) -- by {user}AndydeCleyre.pip-compileoutput headers are now more accurate when--is used to escape filenames ({pr}1080) -- by {user}AndydeCleyre.- Add
pip>=20.1support ({pr}1088) -- by {user}atugushev.
- Fix a bug where editables that are both direct requirements and constraints wouldn't
appear in
pip-compileoutput ({pr}1093) -- by {user}richafrank. pip-compilenow sorts format controls (--no-binary/--only-binary) to ensure consistent results ({pr}1098) -- by {user}richafrank.
- Add cross-environment usage documentation to
README({pr}651) -- by {user}vphilippon. - Add versions compatibility table to
README({pr}1106) -- by {user}atugushev.
26 Feb 2020
- Strip line number annotations such as "(line XX)" from file requirements, to prevent
diff noise when modifying input requirement files ({pr}
1075) -- by {user}adamchainz.
- Updated
READMEexample outputs for primary requirement annotations ({pr}1072) -- by {user}richafrank.
20 Feb 2020
- Primary requirements and VCS dependencies are now get annotated with any
source
.infiles and reverse dependencies ({pr}1058) -- by {user}AndydeCleyre.
- Always use normalized path for cache directory as it is required in newer
versions of
pip({pr}1062) -- by {user}kammala.
- Replace outdated link in the
READMEwith rationale for pinning ({pr}1053) -- by {user}m-aciek.
31 Jan 2020
- Fix a bug where
pip-compilewould keep outdated options fromrequirements.txt({pr}1029) -- by {user}atugushev. - Fix the
No handlers could be found for logger "pip.*"error by configuring the builtin logging module ({pr}1035) -- by {user}vphilippon. - Fix a bug where dependencies of relevant constraints may be missing from
output file ({pr}
1037) -- by {user}jeevb. - Upgrade the minimal version of
clickfrom6.0to7.0version insetup.py({pr}1039) -- by {user}hramezani. - Ensure that depcache considers the python implementation such that (for example)
cpython3.6does not poison the results ofpypy3.6({pr}1050) -- by {user}asottile.
- Make the
READMEmore imperative about installing into a project's virtual environment to avoid confusion ({pr}1023) -- by {user}tekumara. - Add a note to the
READMEabout how to install requirements on different stages to Workflow for layered requirements section ({pr}1044) -- by {user}hramezani.
21 Jan 2020
- Add
--cache-diroption topip-compile({pr}1022) -- by {user}richafrank. - Add
pip>=20.0support ({pr}1024) -- by {user}atugushev.
- Fix a bug where
pip-compile --upgrade-packagewould upgrade those passed packages not already required according to the*.inand*.txtfiles ({pr}1031) -- by {user}AndydeCleyre.
25 Nov 2019
- Add Python 3.8 support ({pr}
956) -- by {user}hramezani. - Unpin commented out unsafe packages in
requirements.txt({pr}975) -- by {user}atugushev.
- Fix
pip-compiledoesn't copy--trusted-hostfromrequirements.intorequirements.txt({pr}964) -- by {user}atugushev. - Add compatibility with
pip>=20.0({pr}953and {pr}978) -- by {user}atugushev. - Fix a bug where the resolver wouldn't clean up the ephemeral wheel cache ({pr}
968) -- by {user}atugushev.
- Add a note to
READMEaboutrequirements.txtfile, which would possibly interfere if you're compiling from scratch ({pr}959) -- by {user}hramezani.
12 Oct 2019
- Add
--askoption topip-sync({pr}913) -- by {user}georgek.
- Add compatibility with
pip>=19.3({pr}864, {pr}904, {pr}910, {pr}912and {pr}915) -- by {user}atugushev. - Ensure
pip-compile --no-header <blank requirements.in>creates/overwritesrequirements.txt({pr}909) -- by {user}AndydeCleyre. - Fix
pip-compile --upgrade-packageremoves «via» annotation ({pr}931) -- by {user}hramezani.
- Add info to
READMEabout layered requirements files and-cflag ({pr}905) -- by {user}jamescooke.
26 Aug 2019
- Add
--no-emit-find-linksoption topip-compile({pr}873) -- by {user}jacobtolar.
- Prevent
--dry-runlog message from being printed with--quietoption inpip-compile({pr}861) -- by {user}ddormer. - Fix resolution of requirements from Git URLs without
-e({pr}879) -- by {user}andersk.
25 Jul 2019
- Drop support for EOL Python 3.4 ({pr}
803) -- by {user}auvipy.
- Fix
pip>=19.2compatibility ({pr}857) -- by {user}atugushev.
17 Jul 2019
- Print provenance information when
pip-compilefails ({pr}837) -- by {user}jakevdp.
- Output all logging to stderr instead of stdout ({pr}
834) -- by {user}georgek. - Fix output file update with
--dry-runoption inpip-compile({pr}842) -- by {user}shipmintsand. {user}atugushev
06 Jun 2019
- Options
--upgradeand--upgrade-packageare no longer mutually exclusive ({pr}831) -- by {user}adamchainz.
- Fix
--generate-hasheswith bare VCS URLs ({pr}812) -- by {user}jcushman. - Fix issues with
UnicodeErrorwhen installingpip-toolsfrom source in some systems ({pr}816) -- by {user}AbdealiJK. - Respect
--preoption in the input file ({pr}822) -- by {user}atugushev. - Option
--upgrade-packagenow works even if the output file does not exist ({pr}831) -- by {user}adamchainz.
09 May 2019
- Show progressbar on generation hashes in
pip-compileverbose mode ({pr}743) -- by {user}atugushev. - Add options
--certand--client-certtopip-sync({pr}798) -- by {user}atugushev. - Add support for
--find-linksinpip-compileoutput ({pr}793) -- by {user}estanand {user}atugushev. - Normalize «command to run» in
pip-compileheaders ({pr}800) -- by {user}atugushev. - Support URLs as packages ({pr}
807) -- by {user}jcushman, {user}nim65sand {user}toejough.
- Fix replacing password to asterisks in
pip-compile({pr}808) -- by {user}atugushev.
24 Apr 2019
- Fix
pip>=19.1compatibility ({pr}795) -- by {user}atugushev.
03 Apr 2019
- Show less output on
pip-syncwith--quietoption ({pr}765) -- by {user}atugushev. - Support the flag
--trusted-hostinpip-sync({pr}777) -- by {user}firebirdberlin.
13 Mar 2019
- Show default index url provided by
pip({pr}735) -- by {user}atugushev. - Add an option to allow enabling/disabling build isolation ({pr}
758) -- by {user}atugushev.
- Fix the output file for
pip-compilewith an explicitsetup.pyas source file ({pr}731) -- by {user}atugushev. - Fix order issue with generated lock file when
hashesandmarkersare used together ({pr}763) -- by {user}milind-shakya-sp.
19 Feb 2019
- Add option
--quiettopip-compile({pr}720) -- by {user}bendikro. - Emit the original command to the
pip-compile's header ({pr}733) -- by {user}atugushev.
- Fix
pip-syncto use pip script depending on a python version ({pr}737) -- by {user}atugushev.
26 Jan 2019
- Fix
pip-syncwith a temporary requirement file on Windows ({pr}723) -- by {user}atugushev. - Fix
pip-syncto prevent uninstall of stdlib and dev packages ({pr}718) -- by {user}atugushev.
24 Jan 2019
- Re-release of 3.3.0 after fixing the deployment pipeline ({issue}
716) -- by {user}atugushev.
23 Jan 2019
(Unreleased - Deployment pipeline issue, see 3.3.1)
- Added support of
pip19.0 ({pr}715) -- by {user}atugushev. - Add
--allow-unsafeto update instructions in the generatedrequirements.txt({pr}708) -- by {user}richafrank.
- Fix
pip-syncto check hashes ({pr}706) -- by {user}atugushev.
18 Dec 2018
- Apply version constraints specified with package upgrade option
(
-P, --upgrade-package) ({pr}694) -- by {user}richafrank.
05 Oct 2018
- Added support of
pip18.1 ({pr}689) -- by {user}vphilippon.
24 Sep 2018
- Update
pip-toolsfor nativepip8, 9, 10 and 18 compatibility, un-vendoringpipto use the user-installedpip({pr}657and {pr}672) -- by {user}techalchemy, {user}suutari, {user}tysoncluggand. {user}vphilippon
- Removed the dependency on the external library
first({pr}676) -- by {user}jdufresne.
28 Apr 2018
- Added clearer error reporting when skipping pre-releases ({pr}
655) -- by {user}WoLpH.
15 Apr 2018
- Added missing package data from vendored pip, such as missing cacert.pem file
-- by {user}
vphilippon.
15 Apr 2018
- Vendored
pip9.0.3 to keep compatibility for users withpip10.0.0 ({pr}644) -- by {user}vphilippon.
- Improved the speed of
pip-compile --generate-hashesby caching the hashes from an existing output file ({pr}641) -- by {user}justicz. - Added a
pip-sync --useroption to restrict attention to user-local directory ({pr}642) -- by {user}jbergknoff-10e. - Removed the hard dependency on setuptools ({pr}
645) -- by {user}vphilippon.
- 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 ({pr}
647) -- by {user}JoergRittinger.
30 Nov 2017
- Allow editable packages in requirements.in with
pip-compile --generate-hashes({pr}524) -- by {user}jdufresne. - Allow for CA bundles with
pip-compile --cert({pr}612) -- by {user}khwilson. - Improved
pip-compileduration with large locally available editable requirement by skipping a copy to the cache ({pr}583) -- by {user}costypetrisor. - Slightly improved the
NoCandidateFounderror message on potential causes ({pr}614) -- by {user}vphilippon.
- Add
-markerlibto the list ofPACKAGES_TO_IGNOREofpip-sync({pr}613).
22 Nov 2017
- Fixed bug causing dependencies from invalid wheels for the current platform
to be included ({pr}
571). pip-syncwill respect environment markers in therequirements.txt({pr}600) -- by {user}hazmat345.- Converted the ReadMe to have a nice description rendering on PyPI
-- by {user}
bittner.
27 Sep 2017
- Fixed bug breaking
pip-syncon Python 3, raisingTypeError: '<' not supported between instances of 'InstallRequirement' and 'InstallRequirement'({pr}570).
27 Sep 2017
--generate-hashesnow generates hashes for all wheels, not only wheels for the currently running platform ({pr}520) -- by {user}jdufresne.- Added a
-q/--quietargument to thepip-synccommand to reduce log output.
- Fixed bug where unsafe packages would get pinned in generated requirements
files when
--allow-unsafewas not set ({pr}517) -- by {user}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 ({pr}385) and {pr}538) -- by {user}blueyedand {user}dfee. - Fixed bug where some primary dependencies were annotated with "via" info
comments ({pr}
542) -- by {user}quantus. - Fixed bug where pkg-resources would be removed by
pip-syncin Ubuntu ({pr}555) -- by {user}cemsbr. - Fixed bug where the resolver would sometime not stabilize on requirements specifying
extras ({pr}
566) -- by {user}vphilippon. - Fixed an unicode encoding error when distribution package contains non-ASCII file
names ({pr}
567) -- by {user}suutari. - Fixed package hashing doing unnecessary unpacking ({pr}
557) -- by {user}suutari-ai.
12 Apr 2017
- Added ability to read requirements from
setup.pyinstead of justrequirements.in({pr}418) -- by {user}tysoncluggand {user}majuscule. - Added a
--max-roundsargument to thepip-compilecommand to allow for solving large requirement sets ({pr}472) -- by {user}derek-miller. - Exclude unsafe packages' dependencies when
--allow-unsafeis not in use ({pr}441) -- by {user}jdufresne. - Exclude irrelevant pip constraints ({pr}
471) -- by {user}derek-miller. - Allow control over emitting trusted-host to the compiled requirements ({pr}
448) -- by {user}tonyseek. - Allow running as a Python module ({pr}
461) -- by {user}AndreLouisCaron. - Preserve environment markers in generated
requirements.txt({pr}460) -- by {user}barrywhart.
- Fixed the
--upgrade-packageoption to respect the given package list to update ({pr}491). - Fixed the default output file name when the source file has no extension
({pr}
488) -- by {user}vphilippon. - Fixed crash on editable requirements introduced in 1.8.2.
- Fixed duplicated
--trusted-host,--extra-index-urland--index-urlin the generated requirements.
28 Mar 2017
- Regression fix: editable reqs were losing their dependencies after first
round ({pr}
476) -- by {user}mattlong. - Remove duplicate index urls in generated
requirements.txt({pr}468) -- by {user}majuscule.
22 Mar 2017
- Recalculate secondary dependencies between rounds ({pr}
378) - Calculated dependencies could be left with wrong candidates when toplevel requirements
happen to be also pinned in sub-dependencies ({pr}
450) - Fix duplicate entries that could happen in generated
requirements.txt({pr}427) - Gracefully report invalid pip version ({pr}
457) - Fix capitalization in the generated
requirements.txt, packages will always be lowercased ({pr}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. ({pr}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. ({pr}
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) -- by {user}jmbowman
11 May 2016
- Add warning that
pip >= 8.1.2is not supported until 1.7.x is out
03 May 2016
- Incorporate fix for atomic file saving behaviour on the Windows platform (see {issue}
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 {issue}
351)
06 Apr 2016
pip-syncnow supports being invoked from within and outside an activated virtualenv (see {issue}317)pip-compile: support-Uas a shorthand for--upgradepip-compile: support pip's--no-binaryand--binary-onlyflags
- Change header format of output files to mention all input files
05 Feb 2016
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.
- Bugfix where
pip-compilewould lose "via" info when on pip 8 (see {issue}313) - Ensure cache dir exists (see {issue}
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 ({issue}286) - Fix
pip-syncfailed uninstalling packages when using--find-links({issue}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 therequirements.txtwould dictate otherwise (see {issue}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 ({issue}
268)
13 Dec 2015
- Fix bug where successive invocations of
pip-syncwith editables kept uninstalling/installing them (fixes {issue}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-fileoption onpip-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.)