Release and Version History¶
2020.8.13 (2020-08-13)¶
Bug Fixes¶
- Fixed behaviour of
pipenv uninstall --all-dev. From now on it does not uninstall regular packages. #3722 - Fix a bug that incorrect Python path will be used when
--systemflag is on. #4315 - Fix falsely flagging a Homebrew installed Python as a virtual environment #4316
- Fix a bug that
pipenv uninstallthrows an exception that does not exist. #4321 - Fix a bug that Pipenv can’t locate the correct file of special directives in
setup.cfgof an editable package. #4335 - Fix a bug that
setup.pycan’t be parsed correctly when the assignment is type-annotated. #4342 - Fix a bug that
pipenv graphthrows an exception that PipenvCmdError(cmd_string, c.out, c.err, return_code). #4388 - Do not copy the whole directory tree of local file package. #4403
- Correctly detect whether Pipenv in run under an activated virtualenv. #4412
2020.6.2 (2020-06-02)¶
Features & Improvements¶
- Pipenv will now detect existing
venvandvirtualenvbased virtual environments more robustly. #4276
Bug Fixes¶
+signs in URL authentication fragments will no longer be incorrectly replaced with space ( `` `` ) characters. #4271- Fixed a regression which caused Pipenv to fail when running under
/. #4273 setup.pyfiles withversionvariables read fromos.environare now able to be parsed successfully. #4274- Fixed a bug which caused Pipenv to fail to install packages in a virtual environment if those packages were already present in the system global environment. #4276
- Fix a bug that caused non-specific versions to be pinned in
Pipfile.lock. #4278 - Corrected a missing exception import and invalid function call invocations in
pipenv.cli.command. #4286 - Fixed an issue with resolving packages with names defined by function calls in
setup.py. #4292 - Fixed a regression with installing the current directory, or
., inside avenvbased virtual environment. #4295 - Fixed a bug with the discovery of python paths on Windows which could prevent installation of environments during
pipenv install. #4296 - Fixed an issue in the
requirementslibAST parser which prevented parsing ofsetup.pyfiles for dependency metadata. #4298 - Fix a bug where Pipenv doesn’t realize the session is interactive #4305
2020.5.28 (2020-05-28)¶
Features & Improvements¶
pipenv installandpipenv syncwill no longer attempt to install satisfied dependencies during installation. #3057, #3506- Added support for resolution of direct-url dependencies in
setup.pyfiles to respectPEP-508style URL dependencies. #3148 - Added full support for resolution of all dependency types including direct URLs, zip archives, tarballs, etc.
- Improved error handling and formatting.
- Introduced improved cross platform stream wrappers for better
stdoutandstderrconsistency. #3298
- For consistency with other commands and the
--devoption description,pipenv lock --requirements --devnow emits both default and development dependencies. The new--dev-onlyoption requests the previous behaviour (e.g. to generate adev-requirements.txtfile). #3316 - Pipenv will now successfully recursively lock VCS sub-dependencies. #3328
- Added support for
--verboseoutput topipenv run. #3348 - Pipenv will now discover and resolve the intrinsic dependencies of all VCS dependencies, whether they are editable or not, to prevent resolution conflicts. #3368
- Added a new environment variable,
PIPENV_RESOLVE_VCS, to toggle dependency resolution off for non-editable VCS, file, and URL based dependencies. #3577 - Added the ability for Windows users to enable emojis by setting
PIPENV_HIDE_EMOJIS=0. #3595 - Allow overriding PIPENV_INSTALL_TIMEOUT environment variable (in seconds). #3652
- Allow overriding PIP_EXISTS_ACTION evironment variable (value is passed to pip install). Possible values here: https://pip.pypa.io/en/stable/reference/pip/#exists-action-option Useful when you need to PIP_EXISTS_ACTION=i (ignore existing packages) - great for CI environments, where you need really fast setup. #3738
- Pipenv will no longer forcibly override
PIP_NO_DEPSon all vcs and file dependencies as resolution happens on these in a pre-lock step. #3763 - Improved verbose logging output during
pipenv lockwill now stream output to the console while maintaining a spinner. #3810 - Added support for automatic python installs via
asdfand associatedPIPENV_DONT_USE_ASDFenvironment variable. #4018 - Pyenv/asdf can now be used whether or not they are available on PATH. Setting PYENV_ROOT/ASDF_DIR in a Pipenv’s .env allows Pipenv to install an interpreter without any shell customizations, so long as pyenv/asdf is installed. #4245
- Added
--keycommand line parameter for including personal PyUp.io API tokens when runningpipenv check. #4257
Behavior Changes¶
- Make conservative checks of known exceptions when subprocess returns output, so user won’t see the whole traceback - just the error. #2553
- Do not touch Pipfile early and rely on it so that one can do
pipenv syncwithout a Pipfile. #3386 - Re-enable
--helpoption forpipenv runcommand. #3844 - Make sure
pipenv lock -r --pypi-mirror {MIRROR_URL}will respect the pypi-mirror in requirements output. #4199
Bug Fixes¶
- Raise PipenvUsageError when [[source]] does not contain url field. #2373
- Fixed a bug which caused editable package resolution to sometimes fail with an unhelpful setuptools-related error message. #2722
- Fixed an issue which caused errors due to reliance on the system utilities
whichandwherewhich may not always exist on some systems. - Fixed a bug which caused periodic failures in python discovery when executables namedpythonwere not present on the target$PATH. #2783 - Dependency resolution now writes hashes for local and remote files to the lockfile. #3053
- Fixed a bug which prevented
pipenv graphfrom correctly showing all dependencies when running from withinpipenv shell. #3071 - Fixed resolution of direct-url dependencies in
setup.pyfiles to respectPEP-508style URL dependencies. #3148 - Fixed a bug which caused failures in warning reporting when running pipenv inside a virtualenv under some circumstances.
- Fixed a bug with package discovery when running
pipenv clean. #3298
- Fixed a bug with package discovery when running
- Quote command arguments with carets (
^) on Windows to work around unintended shell escapes. #3307 - Handle alternate names for UTF-8 encoding. #3313
- Abort pipenv before adding the non-exist package to Pipfile. #3318
- Don’t normalize the package name user passes in. #3324
- Fix a bug where custom virtualenv can not be activated with pipenv shell #3339
- Fix a bug that
--site-packagesflag is not recognized. #3351 - Fix a bug where pipenv –clear is not working #3353
- Fix unhashable type error during
$ pipenv install --selective-upgrade#3384 - Dependencies with direct
PEP508compliant VCS URLs specified in theirinstall_requireswill now be successfully locked during the resolution process. #3396 - Fixed a keyerror which could occur when locking VCS dependencies in some cases. #3404
- Fixed a bug that
ValidationErroris thrown when some fields are missing in source section. #3427 - Updated the index names in lock file when source name in Pipfile is changed. #3449
- Fixed an issue which caused
pipenv install --helpto show duplicate entries for--pre. #3479 - Fix bug causing
[SSL: CERTIFICATE_VERIFY_FAILED]when Pipfile[[source]]has verify_ssl=false and url with custom port. #3502 - Fix
sync --sequentialignoringpip installerrors and logs. #3537 - Fix the issue that lock file can’t be created when
PIPENV_PIPFILEis not under working directory. #3584 - Pipenv will no longer inadvertently set
editable=Trueon all vcs dependencies. #3647 - The
--keep-outdatedargument topipenv installandpipenv lockwill now drop specifier constraints when encountering editable dependencies. - In addition,--keep-outdatedwill retain specifiers that would otherwise be dropped from any entries that have not been updated. #3656 - Fixed a bug which sometimes caused pipenv to fail to respect the
--site-packagesflag when passed withpipenv install. #3718 - Normalize the package names to lowercase when comparing used and in-Pipfile packages. #3745
pipenv update --outdatedwill now correctly handle comparisons between pre/post-releases and normal releases. #3766- Fixed a
KeyErrorwhich could occur when pinning outdated VCS dependencies viapipenv lock --keep-outdated. #3768 - Resolved an issue which caused resolution to fail when encountering poorly formatted
python_versionmarkers insetup.pyandsetup.cfgfiles. #3786 - Fix a bug that installation errors are displayed as a list. #3794
- Update
pythonfinderto fix a problem thatpython.exewill be mistakenly chosen for virtualenv creation under WSL. #3807 - Fixed several bugs which could prevent editable VCS dependencies from being installed into target environments, even when reporting successful installation. #3809
pipenv check --systemshould find the correct Python interpreter whenpythondoes not exist on the system. #3819- Resolve the symlinks when the path is absolute. #3842
- Pass
--preand--clearoptions topipenv update --outdated. #3879 - Fixed a bug which prevented resolution of direct URL dependencies which have PEP508 style direct url VCS sub-dependencies with subdirectories. #3976
- Honor PIPENV_SPINNER environment variable #4045
- Fixed an issue with
pipenv checkfailing due to an invalid API key frompyup.io. #4188 - Fixed a bug which caused versions from VCS dependencies to be included in
Pipfile.lockinadvertently. #4217 - Fixed a bug which caused pipenv to search non-existent virtual environments for
pipwhen installing using--system. #4220 Requires-Pythonvalues specifying constraint versions of python starting from1.xwill now be parsed successfully. #4226- Fix a bug of
pipenv update --outdatedthat can’t print output correctly. #4229 - Fixed a bug which caused pipenv to prefer source distributions over wheels from
PyPIduring the dependency resolution phase. Fixed an issue which prevented proper build isolation usingpep517based builders during dependency resolution. #4231 - Don’t fallback to system Python when no matching Python version is found. #4232
Vendored Libraries¶
Updated vendored dependencies:
- attrs:
18.2.0=>19.1.0 - certifi:
2018.10.15=>2019.3.9 - cached_property:
1.4.3=>1.5.1 - cerberus:
1.2.0=>1.3.1 - click-completion:
0.5.0=>0.5.1 - colorama:
0.3.9=>0.4.1 - distlib:
0.2.8=>0.2.9 - idna:
2.7=>2.8 - jinja2:
2.10.0=>2.10.1 - markupsafe:
1.0=>1.1.1 - orderedmultidict:
(new)=>1.0 - packaging:
18.0=>19.0 - parse:
1.9.0=>1.12.0 - pathlib2:
2.3.2=>2.3.3 - pep517:
(new)=>0.5.0 - pexpect:
4.6.0=>4.7.0 - pipdeptree:
0.13.0=>0.13.2 - pyparsing:
2.2.2=>2.3.1 - python-dotenv:
0.9.1=>0.10.2 - pythonfinder:
1.1.10=>1.2.1 - pytoml:
(new)=>0.1.20 - requests:
2.20.1=>2.21.0 - requirementslib:
1.3.3=>1.5.0 - scandir:
1.9.0=>1.10.0 - shellingham:
1.2.7=>1.3.1 - six:
1.11.0=>1.12.0 - tomlkit:
0.5.2=>0.5.3 - urllib3:
1.24=>1.25.2 - vistir:
0.3.0=>0.4.1 - yaspin:
0.14.0=>0.14.3
- Removed vendored dependency cursor. #3298
- attrs:
Updated
pip_shimsto support--outdatedwith new pip versions. #3766Update vendored dependencies and invocations
- Update vendored and patched dependencies
- Update patches on
piptools,pip,pip-shims, ``tomlkit` - Fix invocations of dependencies - Fix custom ``InstallCommand` instantiation - Update ``PackageFinder` usage - Fix ``Bool` stringify attempts from ``tomlkit`
- Updated vendored dependencies:
- attrs:
`18.2.0=>`19.1.0 - certifi:
`2018.10.15=>`2019.3.9 - cached_property:
`1.4.3=>`1.5.1 - cerberus:
`1.2.0=>`1.3.1 - click:
`7.0.0=>`7.1.1 - click-completion:
`0.5.0=>`0.5.1 - colorama:
`0.3.9=>`0.4.3 - contextlib2:
`(new)=>`0.6.0.post1 - distlib:
`0.2.8=>`0.2.9 - funcsigs:
`(new)=>`1.0.2 - importlib_metadata
`1.3.0=>`1.5.1 - importlib-resources:
`(new)=>`1.4.0 - idna:
`2.7=>`2.9 - jinja2:
`2.10.0=>`2.11.1 - markupsafe:
`1.0=>`1.1.1 - more-itertools:
`(new)=>`5.0.0 - orderedmultidict:
`(new)=>`1.0 - packaging:
`18.0=>`19.0 - parse:
`1.9.0=>`1.15.0 - pathlib2:
`2.3.2=>`2.3.3 - pep517:
`(new)=>`0.5.0 - pexpect:
`4.6.0=>`4.8.0 - pip-shims:
`0.2.0=>`0.5.1 - pipdeptree:
`0.13.0=>`0.13.2 - pyparsing:
`2.2.2=>`2.4.6 - python-dotenv:
`0.9.1=>`0.10.2 - pythonfinder:
`1.1.10=>`1.2.2 - pytoml:
`(new)=>`0.1.20 - requests:
`2.20.1=>`2.23.0 - requirementslib:
`1.3.3=>`1.5.4 - scandir:
`1.9.0=>`1.10.0 - shellingham:
`1.2.7=>`1.3.2 - six:
`1.11.0=>`1.14.0 - tomlkit:
`0.5.2=>`0.5.11 - urllib3:
`1.24=>`1.25.8 - vistir:
`0.3.0=>`0.5.0 - yaspin:
`0.14.0=>`0.14.3 - zipp:
`0.6.0
- attrs:
- Removed vendored dependency cursor. #4169
- Update vendored and patched dependencies
- Update patches on
Add and update vendored dependencies to accommodate
safetyvendoring: - safety(none)=>1.8.7- dparse(none)=>0.5.0- pyyaml(none)=>5.3.1- urllib31.25.8=>1.25.9- certifi2019.11.28=>2020.4.5.1- pyparsing2.4.6=>2.4.7- resolvelib0.2.2=>0.3.0- importlib-metadata1.5.1=>1.6.0- pip-shims0.5.1=>0.5.2- requirementslib1.5.5=>1.5.6#4188Updated vendored
pip=>20.0.2andpip-tools=>5.0.0. #4215Updated vendored dependencies to latest versions for security and bug fixes:
- requirementslib
1.5.8=>1.5.9 - vistir
0.5.0=>0.5.1 - jinja2
2.11.1=>2.11.2 - click
7.1.1=>7.1.2 - dateutil
(none)=>2.8.1 - backports.functools_lru_cache
1.5.0=>1.6.1 - enum34
1.1.6=>1.1.10 - toml
0.10.0=>0.10.1 - importlib_resources
1.4.0=>1.5.0#4226
- requirementslib
Changed attrs import path in vendored dependencies to always import from
pipenv.vendor. #4267
Improved Documentation¶
- Added documenation about variable expansion in
Pipfileentries. #2317 - Consolidate all contributing docs in the rst file #3120
- Update the out-dated manual page. #3246
- Move CLI docs to its own page. #3346
- Replace (non-existant) video on docs index.rst with equivalent gif. #3499
- Clarify wording in Basic Usage example on using double quotes to escape shell redirection #3522
- Ensure docs show navigation on small-screen devices #3527
- Added a link to the TOML Spec under General Recommendations & Version Control to clarify how Pipfiles should be written. #3629
- Updated the documentation with the new
pytestentrypoint. #3759 - Fix link to GIF in README.md demonstrating Pipenv’s usage, and add descriptive alt text. #3911
- Added a line describing potential issues in fancy extension. #3912
- Documental description of how Pipfile works and association with Pipenv. #3913
- Clarify the proper value of
python_versionandpython_full_version. #3914 - Write description for –deploy extension and few extensions differences. #3915
- More documentation for
.envfiles #4100 - Updated documentation to point to working links. #4137
- Replace docs.pipenv.org with pipenv.pypa.io #4167
- Added functionality to check spelling in documentation and cleaned up existing typographical issues. #4209
2018.11.26 (2018-11-26)¶
Bug Fixes¶
- Environment variables are expanded correctly before running scripts on POSIX. #3178
- Pipenv will no longer disable user-mode installation when the
--systemflag is passed in. #3222 - Fixed an issue with attempting to render unicode output in non-unicode locales. #3223
- Fixed a bug which could cause failures to occur when parsing python entries from global pyenv version files. #3224
- Fixed an issue which prevented the parsing of named extras sections from certain
setup.pyfiles. #3230 - Correctly detect the virtualenv location inside an activated virtualenv. #3231
- Fixed a bug which caused spinner frames to be written to standard output during locking operations which could cause redirection pipes to fail. #3239
- Fixed a bug that editable packages can’t be uninstalled correctly. #3240
- Corrected an issue with installation timeouts which caused dependency resolution to fail for longer duration resolution steps. #3244
- Adding normal pep 508 compatible markers is now fully functional when using VCS dependencies. #3249
- Updated
requirementslibandpythonfinderfor multiple bug fixes. #3254 - Pipenv will now ignore hashes when installing with
--skip-lock. #3255 - Fixed an issue where pipenv could crash when multiple pipenv processes attempted to create the same directory. #3257
- Fixed an issue which sometimes prevented successful creation of a project Pipfile. #3260
pipenv installwill now unset thePYTHONHOMEenvironment variable when not combined with--system. #3261- Pipenv will ensure that warnings do not interfere with the resolution process by suppressing warnings’ usage of standard output and writing to standard error instead. #3273
- Fixed an issue which prevented variables from the environment, such as
PIPENV_DEVorPIPENV_SYSTEM, from being parsed and implemented correctly. #3278 - Clear pythonfinder cache after Python install. #3287
- Fixed a race condition in hash resolution for dependencies for certain dependencies with missing cache entries or fresh Pipenv installs. #3289
- Pipenv will now respect top-level pins over VCS dependency locks. #3296
2018.11.14 (2018-11-14)¶
Features & Improvements¶
- Improved exceptions and error handling on failures. #1977
- Added persistent settings for all CLI flags via
PIPENV_{FLAG_NAME}environment variables by enablingauto_envvar_prefix=PIPENVin click (implements PEEP-0002). #2200 - Added improved messaging about available but skipped updates due to dependency conflicts when running
pipenv update --outdated. #2411 - Added environment variable
PIPENV_PYUP_API_KEYto add ability to override the bundled PyUP.io API key. #2825 - Added additional output to
pipenv update --outdatedto indicate that the operation succeeded and all packages were already up to date. #2828 - Updated
crayonspatch to enable colors on native powershell but swap native blue for magenta. #3020 - Added support for
--baretopipenv clean, and fixedpipenv sync --bareto actually reduce output. #3041 - Added windows-compatible spinner via upgraded
vistirdependency. #3089 - Added support for python installations managed by
asdf. #3096
- Added support for python installations managed by
- Improved runtime performance of no-op commands such as
pipenv --venvby around 2/3. #3158 - Do not show error but success for running
pipenv uninstall --allin a fresh virtual environment. #3170 - Improved asynchronous installation and error handling via queued subprocess parallelization. #3217
Bug Fixes¶
- Remote non-PyPI artifacts and local wheels and artifacts will now include their own hashes rather than including hashes from
PyPI. #2394 - Non-ascii characters will now be handled correctly when parsed by pipenv’s
ToMLparsers. #2737 - Updated
pipenv uninstallto respect the--skip-lockargument. #2848 - Fixed a bug which caused uninstallation to sometimes fail to successfully remove packages from
Pipfileswith comments on preceding or following lines. #2885, #3099 - Pipenv will no longer fail when encountering python versions on Windows that have been uninstalled. #2983
- Fixed unnecessary extras are added when translating markers #3026
- Fixed a virtualenv creation issue which could cause new virtualenvs to inadvertently attempt to read and write to global site packages. #3047
- Fixed an issue with virtualenv path derivation which could cause errors, particularly for users on WSL bash. #3055
- Fixed a bug which caused
Unexpected EOFerrors to be thrown whenpipwas waiting for input from users who had put login credentials in environment variables. #3088 - Fixed a bug in
requirementslibwhich prevented successful installation from mercurial repositories. #3090 - Fixed random resource warnings when using pyenv or any other subprocess calls. #3094
- Fixed a bug which sometimes prevented cloning and parsing
mercurialrequirements. #3096
- Fixed a bug which sometimes prevented cloning and parsing
- Fixed an issue in
delegator.pyrelated to subprocess calls when usingPopenSpawnto stream output, which sometimes threw unexpectedEOFerrors. #3102, #3114, #3117 - Fix the path casing issue that makes pipenv clean fail on Windows #3104
- Pipenv will avoid leaving build artifacts in the current working directory. #3106
- Fixed issues with broken subprocess calls leaking resource handles and causing random and sporadic failures. #3109
- Fixed an issue which caused
pipenv cleanto sometimes clean packages from the basesite-packagesfolder or fail entirely. #3113 - Updated
pythonfinderto correct an issue with unnesting of nested paths when searching for python versions. #3121 - Added additional logic for ignoring and replacing non-ascii characters when formatting console output on non-UTF-8 systems. #3131
- Fix virtual environment discovery when
PIPENV_VENV_IN_PROJECTis set, but the in-project .venv is a file. #3134 - Hashes for remote and local non-PyPI artifacts will now be included in
Pipfile.lockduring resolution. #3145 - Fix project path hashing logic in purpose to prevent collisions of virtual environments. #3151
- Fix package installation when the virtual environment path contains parentheses. #3158
- Azure Pipelines YAML files are updated to use the latest syntax and product name. #3164
- Fixed new spinner success message to write only one success message during resolution. #3183
- Pipenv will now correctly respect the
--preoption when used withpipenv install. #3185 - Fix a bug where exception is raised when run pipenv graph in a project without created virtualenv #3201
- When sources are missing names, names will now be derived from the supplied URL. #3216
Vendored Libraries¶
- Updated
pythonfinderto correct an issue with unnesting of nested paths when searching for python versions. #3061, #3121 - Updated vendored dependencies:
certifi 2018.08.24 => 2018.10.15urllib3 1.23 => 1.24requests 2.19.1 => 2.20.0shellingham ``1.2.6 => 1.2.7tomlkit 0.4.4. => 0.4.6vistir 0.1.6 => 0.1.8pythonfinder 0.1.2 => 0.1.3requirementslib 1.1.9 => 1.1.10backports.functools_lru_cache 1.5.0 (new)cursor 1.2.0 (new)#3089
- Updated vendored dependencies:
requests 2.19.1 => 2.20.1tomlkit 0.4.46 => 0.5.2vistir 0.1.6 => 0.2.4pythonfinder 1.1.2 => 1.1.8requirementslib 1.1.10 => 1.3.0#3096
- Switch to
tomlkitfor parsing and writing. Dropprettytomlandcontomlfrom vendors. #3191 - Updated
requirementslibto aid in resolution of local and remote archives. #3196
2018.10.13 (2018-10-13)¶
Bug Fixes¶
- Fixed a bug in
pipenv cleanwhich caused global packages to sometimes be inadvertently targeted for cleanup. #2849 - Fix broken backport imports for vendored vistir. #2950, #2955, #2961
- Fixed a bug with importing local vendored dependencies when running
pipenv graph. #2952 - Fixed a bug which caused executable discovery to fail when running inside a virtualenv. #2957
- Fix parsing of outline tables. #2971
- Fixed a bug which caused
verify_sslto fail to drop through topip installcorrectly astrusted-host. #2979 - Fixed a bug which caused canonicalized package names to fail to resolve against PyPI. #2989
- Enhanced CI detection to detect Azure Devops builds. #2993
- Fixed a bug which prevented installing pinned versions which used redirection symbols from the command line. #2998
- Fixed a bug which prevented installing the local directory in non-editable mode. #3005
2018.10.9 (2018-10-09)¶
Features & Improvements¶
- Added environment variables PIPENV_VERBOSE and PIPENV_QUIET to control output verbosity without needing to pass options. #2527
- Updated test-PyPI add-on to better support json-API access (forward compatibility). Improved testing process for new contributors. #2568
- Greatly enhanced python discovery functionality:
- Added pep514 (windows launcher/finder) support for python discovery.
- Introduced architecture discovery for python installations which support different architectures. #2582
- Added support for
pipenv shellon msys and cygwin/mingw/git bash for Windows. #2641 - Enhanced resolution of editable and VCS dependencies. #2643
- Deduplicate and refactor CLI to use stateful arguments and object passing. See this issue for reference. #2814
Behavior Changes¶
- Virtual environment activation for
runis revised to improve interpolation with other Python discovery tools. #2503 - Improve terminal coloring to display better in Powershell. #2511
- Invoke
virtualenvdirectly for virtual environment creation, instead of depending onpew. #2518 pipenv --helpwill now include short help descriptions. #2542- Add
COMSPECto fallback option (along withSHELLandPYENV_SHELL) if shell detection fails, improving robustness on Windows. #2651 - Fallback to shell mode if run fails with Windows error 193 to handle non-executable commands. This should improve usability on Windows, where some users run non-executable files without specifying a command, relying on Windows file association to choose the current command. #2718
Bug Fixes¶
Fixed a bug which prevented installation of editable requirements using
ssh://style URLs #1393VCS Refs for locked local editable dependencies will now update appropriately to the latest hash when running
pipenv update. #1690.tar.gzand.zipartifacts will now have dependencies installed even when they are missing from the Lockfile. #2173The command line parser will now handle multiple
-e/--editabledependencies properly via click’s option parser to help mitigate future parsing issues. #2279Fixed the ability of pipenv to parse
dependency_linksfromsetup.pywhenPIP_PROCESS_DEPENDENCY_LINKSis enabled. #2434Fixed a bug which could cause
-i/--indexarguments to sometimes be incorrectly picked up in packages. This is now handled in the command line parser. #2494Fixed non-deterministic resolution issues related to changes to the internal package finder in
pip 10. #2499, #2529, #2589, #2666, #2767, #2785, #2795, #2801, #2824, #2862, #2879, #2894, #2933Fix subshell invocation on Windows for Python 2. #2515
Fixed a bug which sometimes caused pipenv to throw a
TypeErroror to run into encoding issues when writing a Lockfile on python 2. #2561Improve quoting logic for
pipenv runso it works better with Windows built-in commands. #2563Fixed a bug related to parsing VCS requirements with both extras and subdirectory fragments. Corrected an issue in the
requirementslibparser which led to some markers being discarded rather than evaluated. #2564Fixed multiple issues with finding the correct system python locations. #2582
Catch JSON decoding error to prevent exception when the lock file is of invalid format. #2607
Fixed a rare bug which could sometimes cause errors when installing packages with custom sources. #2610
Update requirementslib to fix a bug which could raise an
UnboundLocalErrorwhen parsing malformed VCS URIs. #2617Fixed an issue which prevented passing multiple
--ignoreparameters topipenv check. #2632Fixed a bug which caused attempted hashing of
ssh://style URIs which could cause failures during installation of private ssh repositories. - Corrected path conversion issues which caused certain editable VCS paths to be converted tossh://URIs improperly. #2639Fixed a bug which caused paths to be formatted incorrectly when using
pipenv shellin bash for windows. #2641Dependency links to private repositories defined via
ssh://schemes will now install correctly and skip hashing as long asPIP_PROCESS_DEPENDENCY_LINKS=1. #2643Fixed a bug which sometimes caused pipenv to parse the
trusted_hostargument to pip incorrectly when parsing source URLs which specifyverify_ssl = false. #2656Prevent crashing when a virtual environment in
WORKON_HOMEis faulty. #2676Fixed virtualenv creation failure when a .venv file is present in the project root. #2680
Fixed a bug which could cause the
-e/--editableargument on a dependency to be accidentally parsed as a dependency itself. #2714Correctly pass
verboseanddebugflags to the resolver subprocess so it generates appropriate output. This also resolves a bug introduced by the fix to #2527. #2732All markers are now included in
pipenv lock --requirementsoutput. #2748Fixed a bug in marker resolution which could cause duplicate and non-deterministic markers. #2760
Fixed a bug in the dependency resolver which caused regular issues when handling
setup.pybased dependency resolution. #2766- Updated vendored dependencies:
pip-tools(updated and patched to latest w/pip 18.0compatibility)pip 10.0.1 => 18.0click 6.7 => 7.0toml 0.9.4 => 0.10.0pyparsing 2.2.0 => 2.2.2delegator 0.1.0 => 0.1.1attrs 18.1.0 => 18.2.0distlib 0.2.7 => 0.2.8packaging 17.1.0 => 18.0passa 0.2.0 => 0.3.1pip_shims 0.1.2 => 0.3.1plette 0.1.1 => 0.2.2pythonfinder 1.0.2 => 1.1.0pytoml 0.1.18 => 0.1.19requirementslib 1.1.16 => 1.1.17shellingham 1.2.4 => 1.2.6tomlkit 0.4.2 => 0.4.4vistir 0.1.4 => 0.1.6#2802,
Fixed a bug where pipenv crashes when the WORKON_HOME directory does not exist. #2877
Fixed pip is not loaded from pipenv’s patched one but the system one #2912
Fixed various bugs related to
pip 18.1release which prevented locking, installation, and syncing, and dumping to arequirements.txtfile. #2924
Vendored Libraries¶
Pew is no longer vendored. Entry point
pewtwo, packagespipenv.pewandpipenv.patched.peware removed. #2521Update
pythonfinderto major release1.0.0for integration. #2582Update requirementslib to fix a bug which could raise an
UnboundLocalErrorwhen parsing malformed VCS URIs. #2617- Vendored new libraries
vistirandpip-shims,tomlkit,modutil, andplette. - Update vendored libraries:
-
scandirto1.9.0-click-completionto0.4.1-semverto2.8.1-shellinghamto1.2.4-pytomlto0.1.18-certifito2018.8.24-ptyprocessto0.6.0-requirementslibto1.1.5-pythonfinderto1.0.2-pipdeptreeto0.13.0-python-dotenvto0.9.1#2639
- Vendored new libraries
- Updated vendored dependencies:
pip-tools(updated and patched to latest w/pip 18.0compatibility)pip 10.0.1 => 18.0click 6.7 => 7.0toml 0.9.4 => 0.10.0pyparsing 2.2.0 => 2.2.2delegator 0.1.0 => 0.1.1attrs 18.1.0 => 18.2.0distlib 0.2.7 => 0.2.8packaging 17.1.0 => 18.0passa 0.2.0 => 0.3.1pip_shims 0.1.2 => 0.3.1plette 0.1.1 => 0.2.2pythonfinder 1.0.2 => 1.1.0pytoml 0.1.18 => 0.1.19requirementslib 1.1.16 => 1.1.17shellingham 1.2.4 => 1.2.6tomlkit 0.4.2 => 0.4.4vistir 0.1.4 => 0.1.6#2902,
Improved Documentation¶
- Simplified the test configuration process. #2568
- Updated documentation to use working fortune cookie add-on. #2644
- Added additional information about troubleshooting
pipenv shellby using the the$PIPENV_SHELLenvironment variable. #2671 - Added a link to
PEP-440version specifiers in the documentation for additional detail. #2674 - Added simple example to README.md for installing from git. #2685
- Stopped recommending –system for Docker contexts. #2762
- Fixed the example url for doing “pipenv install -e some-repository-url#egg=something”, it was missing the “egg=” in the fragment identifier. #2792
- Fixed link to the “be cordial” essay in the contribution documentation. #2793
- Clarify pipenv install documentation #2844
- Replace reference to uservoice with PEEP-000 #2909
2018.7.1 (2018-07-01)¶
Features & Improvements¶
- All calls to
pipenv shellare now implemented from the ground up using shellingham, a custom library which was purpose built to handle edge cases and shell detection. #2371 - Added support for python 3.7 via a few small compatibility / bug fixes. #2427, #2434, #2436
- Added new flag
pipenv --supportto replace the diagnostic commandpython -m pipenv.help. #2477, #2478 - Improved import times and CLI run times with minor tweaks. #2485
Bug Fixes¶
- Fixed an ongoing bug which sometimes resolved incompatible versions into the project Lockfile. #1901
- Fixed a bug which caused errors when creating virtualenvs which contained leading dash characters. #2415
- Fixed a logic error which caused
--deploy --systemto overwrite editable vcs packages in the Pipfile before installing, which caused any installation to fail by default. #2417 - Updated requirementslib to fix an issue with properly quoting markers in VCS requirements. #2419
- Installed new vendored jinja2 templates for
click-completionwhich were causing template errors for users with completion enabled. #2422 - Added support for python 3.7 via a few small compatibility / bug fixes. #2427
- Fixed an issue reading package names from
setup.pyfiles in projects which imported utilities such asversioneer. #2433 - Pipenv will now ensure that its internal package names registry files are written with unicode strings. #2450
- Fixed a bug causing requirements input as relative paths to be output as absolute paths or URIs.
Fixed a bug affecting normalization of
git+git@hostURLs. #2453 - Pipenv will now always use
pathlib2forPathbased filesystem interactions by default onpython<3.5. #2454 - Fixed a bug which prevented passing proxy PyPI indexes set with
--pypi-mirrorfrom being passed to pip during virtualenv creation, which could cause the creation to freeze in some cases. #2462 - Using the
python -m pipenv.helpcommand will now use proper encoding for the host filesystem to avoid encoding issues. #2466 - The new
jinja2templates forclick_completionwill now be included in pipenv source distributions. #2479 - Resolved a long-standing issue with re-using previously generated
InstallRequirementobjects for resolution which could causePKG-INFOfile information to be deleted, raising aTypeError. #2480 - Resolved an issue parsing usernames from private PyPI URIs in
Pipfilesby updatingrequirementslib. #2484
Vendored Libraries¶
- All calls to
pipenv shellare now implemented from the ground up using shellingham, a custom library which was purpose built to handle edge cases and shell detection. #2371 - Updated requirementslib to fix an issue with properly quoting markers in VCS requirements. #2419
- Installed new vendored jinja2 templates for
click-completionwhich were causing template errors for users with completion enabled. #2422 - Add patch to
prettytomlto support Python 3.7. #2426 - Patched
prettytoml.AbstractTable._enumerate_itemsto handleStopIterationerrors in preparation of release of python 3.7. #2427 - Fixed an issue reading package names from
setup.pyfiles in projects which imported utilities such asversioneer. #2433 - Updated
requirementslibto version1.0.9#2453 - Unraveled a lot of old, unnecessary patches to
pip-toolswhich were causing non-deterministic resolution errors. #2480 - Resolved an issue parsing usernames from private PyPI URIs in
Pipfilesby updatingrequirementslib. #2484
2018.6.25 (2018-06-25)¶
Features & Improvements¶
- Pipenv-created virtualenvs will now be associated with a
.projectfolder (features can be implemented on top of this later or users may choose to usepipenv-pipesto take full advantage of this.) #1861 - Virtualenv names will now appear in prompts for most Windows users. #2167
- Added support for cmder shell paths with spaces. #2168
- Added nested JSON output to the
pipenv graphcommand. #2199 - Dropped vendored pip 9 and vendored, patched, and migrated to pip 10. Updated patched piptools version. #2255
- PyPI mirror URLs can now be set to override instances of PyPI URLs by passing
the
--pypi-mirrorargument from the command line or setting thePIPENV_PYPI_MIRRORenvironment variable. #2281 - Virtualenv activation lines will now avoid being written to some shell history files. #2287
- Pipenv will now only search for
requirements.txtfiles when creating new projects, and during that time only if the user doesn’t specify packages to pass in. #2309 - Added support for mounted drives via UNC paths. #2331
- Added support for Windows Subsystem for Linux bash shell detection. #2363
- Pipenv will now generate hashes much more quickly by resolving them in a single pass during locking. #2384
pipenv runwill now avoid spawning additionalCOMSPECinstances to run commands in when possible. #2385- Massive internal improvements to requirements parsing codebase, resolver, and error messaging. #2388
pipenv checknow may take multiple of the additional argument--ignorewhich takes a parametercve_idfor the purpose of ignoring specific CVEs. #2408
Behavior Changes¶
- Pipenv will now parse & capitalize
platform_python_implementationmarkers .. warning:: This could cause an issue if you have an out of datePipfilewhich lower-cases the comparison value (e.g.cpythoninstead ofCPython). #2123 - Pipenv will now only search for
requirements.txtfiles when creating new projects, and during that time only if the user doesn’t specify packages to pass in. #2309
Bug Fixes¶
- Massive internal improvements to requirements parsing codebase, resolver, and error messaging. #1962, #2186, #2263, #2312
- Pipenv will now parse & capitalize
platform_python_implementationmarkers. #2123 - Fixed a bug with parsing and grouping old-style
setup.pyextras during resolution #2142 - Fixed a bug causing pipenv graph to throw unhelpful exceptions when running against empty or non-existent environments. #2161
- Fixed a bug which caused
--systemto incorrectly abort when users were in a virtualenv. #2181 - Removed vendored
cacert.pemwhich could cause issues for some users with custom certificate settings. #2193 - Fixed a regression which led to direct invocations of
virtualenv, rather than calling it by module. #2198 - Locking will now pin the correct VCS ref during
pipenv updateruns. Runningpipenv updatewith a new vcs ref specified in thePipfilewill now properly obtain, resolve, and install the specified dependency at the specified ref. #2209 pipenv cleanwill now correctly ignore comments frompip freezewhen cleaning the environment. #2262- Resolution bugs causing packages for incompatible python versions to be locked have been fixed. #2267
- Fixed a bug causing pipenv graph to fail to display sometimes. #2268
- Updated
requirementslibto fix a bug in Pipfile parsing affecting relative path conversions. #2269 - Windows executable discovery now leverages
os.pathext. #2298 - Fixed a bug which caused
--deploy --systemto inadvertently create a virtualenv before failing. #2301 - Fixed an issue which led to a failure to unquote special characters in file and wheel paths. #2302
- VCS dependencies are now manually obtained only if they do not match the requested ref. #2304
- Added error handling functionality to properly cope with single-digit
Requires-Pythonmetadata with no specifiers. #2377 pipenv updatewill now always run the resolver and lock before ensuring dependencies are in sync with project Lockfile. #2379- Resolved a bug in our patched resolvers which could cause nondeterministic
resolution failures in certain conditions. Running
pipenv installwith no arguments in a project with only aPipfilewill now correctly lock first for dependency resolution before installing. #2384 - Patched
python-dotenvto ensure that environment variables always get encoded to the filesystem encoding. #2386
Improved Documentation¶
Vendored Libraries¶
Removed vendored
cacert.pemwhich could cause issues for some users with custom certificate settings. #2193Dropped vendored pip 9 and vendored, patched, and migrated to pip 10. Updated patched piptools version. #2255
Updated
requirementslibto fix a bug in Pipfile parsing affecting relative path conversions. #2269Added custom shell detection library
shellingham, a port of our changes topew. #2363Patched
python-dotenvto ensure that environment variables always get encoded to the filesystem encoding. #2386Updated vendored libraries. The following vendored libraries were updated:
- distlib from version
0.2.6to0.2.7. - jinja2 from version
2.9.5to2.10. - pathlib2 from version
2.1.0to2.3.2. - parse from version
2.8.0to2.8.4. - pexpect from version
2.5.2to2.6.0. - requests from version
2.18.4to2.19.1. - idna from version
2.6to2.7. - certifi from version
2018.1.16to2018.4.16. - packaging from version
16.8to17.1. - six from version
1.10.0to1.11.0. - requirementslib from version
0.2.0to1.0.1.
In addition, scandir was vendored and patched to avoid importing host system binaries when falling back to pathlib2. #2368
- distlib from version