Release and Version History¶
2018.11.26 (2018-11-26)¶
Bug Fixes¶
Environment variables are expanded correctly before running scripts on POSIX.`#3178 <https://github.com/pypa/pipenv/issues/3178>`_
Pipenv will no longer disable user-mode installation when the
--systemflag is passed in.`#3222 <https://github.com/pypa/pipenv/issues/3222>`_Fixed an issue with attempting to render unicode output in non-unicode locales.`#3223 <https://github.com/pypa/pipenv/issues/3223>`_
Fixed a bug which could cause failures to occur when parsing python entries from global pyenv version files.`#3224 <https://github.com/pypa/pipenv/issues/3224>`_
Fixed an issue which prevented the parsing of named extras sections from certain
setup.pyfiles.`#3230 <https://github.com/pypa/pipenv/issues/3230>`_Correctly detect the virtualenv location inside an activated virtualenv.`#3231 <https://github.com/pypa/pipenv/issues/3231>`_
Fixed a bug which caused spinner frames to be written to stdout during locking operations which could cause redirection pipes to fail.`#3239 <https://github.com/pypa/pipenv/issues/3239>`_
Fixed a bug that editable pacakges can’t be uninstalled correctly.`#3240 <https://github.com/pypa/pipenv/issues/3240>`_
Corrected an issue with installation timeouts which caused dependency resolution to fail for longer duration resolution steps.`#3244 <https://github.com/pypa/pipenv/issues/3244>`_
Adding normal pep 508 compatible markers is now fully functional when using VCS dependencies.`#3249 <https://github.com/pypa/pipenv/issues/3249>`_
Updated
requirementslibandpythonfinderfor multiple bugfixes.`#3254 <https://github.com/pypa/pipenv/issues/3254>`_Pipenv will now ignore hashes when installing with
--skip-lock.`#3255 <https://github.com/pypa/pipenv/issues/3255>`_Fixed an issue where pipenv could crash when multiple pipenv processes attempted to create the same directory.`#3257 <https://github.com/pypa/pipenv/issues/3257>`_
Fixed an issue which sometimes prevented successful creation of project pipfiles.`#3260 <https://github.com/pypa/pipenv/issues/3260>`_
pipenv installwill now unset thePYTHONHOMEenvironment variable when not combined with--system.`#3261 <https://github.com/pypa/pipenv/issues/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 <https://github.com/pypa/pipenv/issues/3273>`_
Fixed an issue which prevented variables from the environment, such as
PIPENV_DEVorPIPENV_SYSTEM, from being parsed and implemented correctly.`#3278 <https://github.com/pypa/pipenv/issues/3278>`_Clear pythonfinder cache after Python install`#3287 <https://github.com/pypa/pipenv/issues/3287>`_
Fixed a race condition in hash resolution for dependencies for certain dependencies with missing cache entries or fresh Pipenv installs.`#3289 <https://github.com/pypa/pipenv/issues/3289>`_
Pipenv will now respect top-level pins over VCS dependency locks.`#3296 <https://github.com/pypa/pipenv/issues/3296>`_
Vendored Libraries¶
Update vendored dependencies to resolve resolution output parsing and python finding: - pythonfinder 1.1.9 -> 1.1.10 - requirementslib 1.3.1 -> 1.3.3 - vistir 0.2.3 -> 0.2.5``#3280
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). #2200Added improved messaging about available but skipped updates due to dependency conflicts when running
pipenv update --outdated. #2411Added environment variable PIPENV_PYUP_API_KEY to add ability to override the bundled pyup.io API key. #2825
Added additional output to
pipenv update --outdatedto indicate that the operation succeded and all packages were already up to date. #2828Updated
crayonspatch to enable colors on native powershell but swap native blue for magenta. #3020Added support for
--baretopipenv clean, and fixedpipenv sync --bareto actually reduce output. #3041Added windows-compatible spinner via upgraded
vistirdependency. #3089Added support for python installations managed by
asdf. #3096
Improved runtime performance of no-op commands such as
pipenv --venvby around 2/3. #3158Do not show error but success for running
pipenv uninstall --allin a fresh virtual environment. #3170Improved asynchronous installation and error handling via queued subprocess paralleization. #3217
Bug Fixes¶
Remote non-PyPI artifacts and local wheels and artifacts will now include their own hashes rather than including hashes from
PyPI. #2394Non-ascii characters will now be handled correctly when parsed by pipenv’s
ToMLparsers. #2737Updated
pipenv uninstallto respect the--skip-lockargument. #2848Fixed a bug which caused uninstallation to sometimes fail to successfullly remove packages from
Pipfileswith comments on preceding or following lines. #2885, #3099Pipenv 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. #3088Fixed a bug in
requirementslibwhich prevented successful installation from mercurial repositories. #3090Fixed random resource warnings when using pyenv or any other subprocess calls. #3094
Fixed a bug which sometimes prevented cloning and parsing
mercurialrequirements. #3096
Fixed an issue in
delegator.pyrelated to subprocess calls when usingPopenSpawnto stream output, which sometimes threw unexpectedEOFerrors. #3102, #3114, #3117Fix 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. #3113Updated
pythonfinderto correct an issue with unnesting of nested paths when searching for python versions. #3121Added 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_PROJECT is 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. #3145Fix 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. #3185Fix 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. #3191Updated
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. #2849Fix broken backport imports for vendored vistir. #2950, #2955, #2961
Fixed a bug with importing local vendored dependencies when running
pipenv graph. #2952Fixed 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. #2979Fixed 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 addon 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. #2641Enhanced 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. #2503Improve terminal coloring to display better in Powershell. #2511
Invoke
virtualenvdirectly for virtual environment creation, instead of depending onpew. #2518pipenv --helpwill now include short help descriptions. #2542Add
COMSPECto fallback option (along withSHELLandPYENV_SHELL) if shell detection fails, improving robustness on Windows. #2651Fallback 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 lockfiles 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 verbose and debug flags to the resolver subprocess so it generates appropriate output. This also resolves a bug introduced by the fix to #2527. #2732
All 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.0compatibilty)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. #2617Vendored 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
- Updated vendored dependencies:
pip-tools(updated and patched to latest w/pip 18.0compatibilty)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 addon. #2644
Added additional information about troubleshooting
pipenv shellby using the the$PIPENV_SHELLenvironment variable. #2671Added a link to
PEP-440version specifiers in the documentation for additional detail. #2674Added 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-repo-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. #2371Added support for python 3.7 via a few small compatibility / bugfixes. #2427, #2434, #2436
Added new flag
pipenv --supportto replace the diagnostic commandpython -m pipenv.help. #2477, #2478Improved import times and CLI runtimes with minor tweaks. #2485
Bug Fixes¶
Fixed an ongoing bug which sometimes resolved incompatible versions into lockfiles. #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. #2417Updated 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. #2422Added support for python 3.7 via a few small compatibility / bugfixes. #2427
Fixed an issue reading package names from
setup.pyfiles in projects which imported utilities such asversioneer. #2433Pipenv 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@hosturis. #2453Pipenv will now always use
pathlib2forPathbased filesystem interactions by default onpython<3.5. #2454Fixed 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. #2462Using the
python -m pipenv.helpcommand will now use proper encoding for the host filesystem to avoid encoding issues. #2466The new
jinja2templates forclick_completionwill now be included in pipenv source distributions. #2479Resolved a long-standing issue with re-using previously generated
InstallRequirementobjects for resolution which could causePKG-INFOfile information to be deleted, raising aTypeError. #2480Resolved 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. #2371Updated 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. #2422Add patch to
prettytomlto support Python 3.7. #2426Patched
prettytoml.AbstractTable._enumerate_itemsto handleStopIterationerrors in preparation of release of python 3.7. #2427Fixed an issue reading package names from
setup.pyfiles in projects which imported utilities such asversioneer. #2433Updated
requirementslibto version1.0.9#2453Unraveled a lot of old, unnecessary patches to
pip-toolswhich were causing non-deterministic resolution errors. #2480Resolved 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.) #1861Virtualenv 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. #2199Dropped 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. #2281Virtualenv 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. #2309Added 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. #2385Massive 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 lowercases the comparison value (e.g.cpythoninstead ofCPython). #2123Pipenv 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. #2123Fixed a bug with parsing and grouping old-style
setup.pyextras during resolution #2142Fixed 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. #2181Removed vendored
cacert.pemwhich could cause issues for some users with custom certificate settings. #2193Fixed a regression which led to direct invocations of
virtualenv, rather than calling it by module. #2198Locking 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. #2209pipenv cleanwill now correctly ignore comments frompip freezewhen cleaning the environment. #2262Resolution 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. #2269Windows executable discovery now leverages
os.pathext. #2298Fixed a bug which caused
--deploy --systemto inadvertently create a virtualenv before failing. #2301Fixed 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-Pythonmetatdata with no specifiers. #2377pipenv updatewill now always run the resolver and lock before ensuring your dependencies are in sync with your lockfile. #2379Resolved 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. #2384Patched
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