2018.6.25 (2018-06-25)
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- This could cause an issue if you have an out of date
Pipfilewhich lowercases the comparison value (e.g.cpythoninstead ofCPython). #2123
- This could cause an issue if you have an out of date
- 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-Pythonmetatdata with no specifiers. #2377 pipenv updatewill now always run the resolver and lock before ensuring your dependencies are in sync with your 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
- Update documentation wording to clarify Pipenv's overall role in the packaging ecosystem. #2194
- Added contribution documentation and guidelines. #2205
- Added instructions for supervisord compatibility. #2215
- Fixed broken links to development philosophy and contribution documentation. #2248
Vendored Libraries
-
Removed vendored
cacert.pemwhich could cause issues for some users with custom certificate settings. #2193 -
Dropped 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. #2269 -
Added custom shell detection library
shellingham, a port of our changes topew. #2363 -
Patched
python-dotenvto ensure that environment variables always get encoded to the filesystem encoding. #2386 -
Updated 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