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 / bugfixes. #2427, #2434, #2436
- Added new flag
pipenv --supportto replace the diagnostic commandpython -m pipenv.help. #2477, #2478 - Improved 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. #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 / bugfixes. #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@hosturis. #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 lowercases 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-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¶
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