- All calls to
pipenv shell
are 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 --support
to replace the diagnostic commandpython -m pipenv.help
. #2477, #2478 - Improved import times and CLI runtimes with minor tweaks. #2485
- 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 --system
to 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-completion
which 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.py
files 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@host
uris. #2453 - Pipenv will now always use
pathlib2
forPath
based filesystem interactions by default onpython<3.5
. #2454 - Fixed a bug which prevented passing proxy PyPI indexes set with
--pypi-mirror
from being passed to pip during virtualenv creation, which could cause the creation to freeze in some cases. #2462 - Using the
python -m pipenv.help
command will now use proper encoding for the host filesystem to avoid encoding issues. #2466 - The new
jinja2
templates forclick_completion
will now be included in pipenv source distributions. #2479 - Resolved a long-standing issue with re-using previously generated
InstallRequirement
objects for resolution which could causePKG-INFO
file information to be deleted, raising aTypeError
. #2480 - Resolved an issue parsing usernames from private PyPI URIs in
Pipfiles
by updatingrequirementslib
. #2484
- All calls to
pipenv shell
are 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-completion
which were causing template errors for users with completion enabled. #2422 - Add patch to
prettytoml
to support Python 3.7. #2426 - Patched
prettytoml.AbstractTable._enumerate_items
to handleStopIteration
errors in preparation of release of python 3.7. #2427 - Fixed an issue reading package names from
setup.py
files in projects which imported utilities such asversioneer
. #2433 - Updated
requirementslib
to version1.0.9
#2453 - Unraveled a lot of old, unnecessary patches to
pip-tools
which were causing non-deterministic resolution errors. #2480 - Resolved an issue parsing usernames from private PyPI URIs in
Pipfiles
by updatingrequirementslib
. #2484
- Added instructions for installing using Fedora's official repositories. #2404
- Pipenv-created virtualenvs will now be associated with a
.project
folder (features can be implemented on top of this later or users may choose to usepipenv-pipes
to 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 graph
command. #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-mirror
argument from the command line or setting thePIPENV_PYPI_MIRROR
environment variable. #2281 - Virtualenv activation lines will now avoid being written to some shell history files. #2287
- Pipenv will now only search for
requirements.txt
files 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 run
will now avoid spawning additionalCOMSPEC
instances to run commands in when possible. #2385- Massive internal improvements to requirements parsing codebase, resolver, and error messaging. #2388
pipenv check
now may take multiple of the additional argument--ignore
which takes a parametercve_id
for the purpose of ignoring specific CVEs. #2408
- Pipenv will now parse & capitalize
platform_python_implementation
markers .. warning:: This could cause an issue if you have an out of datePipfile
which lowercases the comparison value (e.g.cpython
instead ofCPython
). #2123 - Pipenv will now only search for
requirements.txt
files when creating new projects, and during that time only if the user doesn't specify packages to pass in. #2309
- Massive internal improvements to requirements parsing codebase, resolver, and error messaging. #1962, #2186, #2263, #2312
- Pipenv will now parse & capitalize
platform_python_implementation
markers. #2123 - Fixed a bug with parsing and grouping old-style
setup.py
extras 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
--system
to incorrectly abort when users were in a virtualenv. #2181 - Removed vendored
cacert.pem
which 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 update
runs. Runningpipenv update
with a new vcs ref specified in thePipfile
will now properly obtain, resolve, and install the specified dependency at the specified ref. #2209 pipenv clean
will now correctly ignore comments frompip freeze
when 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
requirementslib
to 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 --system
to 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-Python
metatdata with no specifiers. #2377 pipenv update
will 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 install
with no arguments in a project with only aPipfile
will now correctly lock first for dependency resolution before installing. #2384 - Patched
python-dotenv
to ensure that environment variables always get encoded to the filesystem encoding. #2386
- 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
Removed vendored
cacert.pem
which 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
requirementslib
to fix a bug in pipfile parsing affecting relative path conversions. #2269Added custom shell detection library
shellingham
, a port of our changes topew
. #2363Patched
python-dotenv
to 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.6
to0.2.7
. - jinja2 from version
2.9.5
to2.10
. - pathlib2 from version
2.1.0
to2.3.2
. - parse from version
2.8.0
to2.8.4
. - pexpect from version
2.5.2
to2.6.0
. - requests from version
2.18.4
to2.19.1
. - idna from version
2.6
to2.7
. - certifi from version
2018.1.16
to2018.4.16
. - packaging from version
16.8
to17.1
. - six from version
1.10.0
to1.11.0
. - requirementslib from version
0.2.0
to1.0.1
.
In addition, scandir was vendored and patched to avoid importing host system binaries when falling back to pathlib2. #2368
- distlib from version