Releases: pypa/pipenv
Releases · pypa/pipenv
Release v2021.11.15
Version v2021.11.15 2021.11.15 (2021-11-15) ======================= Bug Fixes --------- - Return an empty dict when PIPENV_DONT_LOAD_ENV is set. _ - Don't use sys.executable when inside an activated venv. _ Vendored Libraries ------------------ - Drop the vendored jinja2 dependency as it is not needed any more. _ - Update click from 8.0.1 to 8.0.3, to fix a problem with bash completion. _ - Drop unused vendor chardet. _ Improved Documentation ---------------------- - Fix the documentation to reflect the fact that special characters must be percent-encoded in the URL. _
Release v2021.11.9
Features & Improvements
- Replace
click-completion
withclick
's own completion implementation. #4786
Bug Fixes
- Fix a bug that
pipenv run
doesn't set environment variables correctly. #4831 - Fix a bug that certifi can't be loaded within
notpip
's vendor library. This makes several objects ofpip
fail to be imported. #4833 - Fix a bug that
3.10.0
can be found be python finder. #4837
Vendored Libraries
- Update
pythonfinder
from1.2.8
to1.2.9
. #4837
Release v2021.11.5.post0
v2021.11.5.post0
Release v2021.11.5
Version v2021.11.5 2021.11.5 (2021-11-05) ====================== Features & Improvements ----------------------- - Avoid sharing states but create project objects on demand. So that most integration test cases are able to switch to a in-process execution method. _ - Shell-quote pip commands when logging. _ Bug Fixes --------- - Ignore empty .venv in rood dir and create project name base virtual environment _ Vendored Libraries ------------------ - Update vendored dependencies - attrs from 20.3.0 to 21.2.0 - cerberus from 1.3.2 to 1.3.4 - certifi from 2020.11.8 to 2021.5.30 - chardet from 3.0.4 to 4.0.0 - click from 7.1.2 to 8.0.1 - distlib from 0.3.1 to 0.3.2 - idna from 2.10 to 3.2 - importlib-metadata from 2.0.0 to 4.6.1 - importlib-resources from 3.3.0 to 5.2.0 - jinja2 from 2.11.2 to 3.0.1 - markupsafe from 1.1.1 to 2.0.1 - more-itertools from 5.0.0 to 8.8.0 - packaging from 20.8 to 21.0 - pep517 from 0.9.1 to 0.11.0 - pipdeptree from 1.0.0 to 2.0.0 - ptyprocess from 0.6.0 to 0.7.0 - python-dateutil from 2.8.1 to 2.8.2 - python-dotenv from 0.15.0 to 0.19.0 - pythonfinder from 1.2.5 to 1.2.8 - requests from 2.25.0 to 2.26.0 - shellingham from 1.3.2 to 1.4.0 - six from 1.15.0 to 1.16.0 - tomlkit from 0.7.0 to 0.7.2 - urllib3 from 1.26.1 to 1.26.6 - zipp from 1.2.0 to 3.5.0 Add new vendored dependencies - charset-normalizer 2.0.3 - termcolor 1.1.0 - tomli 1.1.0 - wheel 0.36.2 _ - Drop the dependencies for Python 2.7 compatibility purpose. _ - Switch the dependency resolver from pip-tools to Usage: pip <command> [options] Commands: install Install packages. download Download packages. uninstall Uninstall packages. freeze Output installed packages in requirements format. list List installed packages. show Show information about installed packages. check Verify installed packages have compatible dependencies. config Manage local and global configuration. search Search PyPI for packages. cache Inspect and manage pip's wheel cache. index Inspect information available from package indexes. wheel Build wheels from your requirements. hash Compute hashes of package archives. completion A helper command used for command completion. debug Show information useful for debugging. help Show help for commands. General Options: -h, --help Show help. --debug Let unhandled exceptions propagate outside the main subroutine, instead of logging them to stderr. --isolated Run pip in an isolated mode, ignoring environment variables and user configuration. -v, --verbose Give more output. Option is additive, and can be used up to 3 times. -V, --version Show version and exit. -q, --quiet Give less output. Option is additive, and can be used up to 3 times (corresponding to WARNING, ERROR, and CRITICAL logging levels). --log <path> Path to a verbose appending log. --no-input Disable prompting for input. --proxy <proxy> Specify a proxy in the form [user:passwd@]proxy.server:port. --retries <retries> Maximum number of retries each connection should attempt (default 5 times). --timeout <sec> Set the socket timeout (default 15 seconds). --exists-action <action> Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort. --trusted-host <hostname> Mark this host or host:port pair as trusted, even though it does not have valid or any HTTPS. --cert <path> Path to PEM-encoded CA certificate bundle. If provided, overrides the default. See 'SSL Certificate Verification' in pip documentation for more information. --client-cert <path> Path to SSL client certificate, a single file containing the private key and the certificate in PEM format. --cache-dir <dir> Store the cache data in <dir>. --no-cache-dir Disable the cache. --disable-pip-version-check Don't periodically check PyPI to determine whether a new version of pip is available for download. Implied with --no-index. --no-color Suppress colored output. --no-python-version-warning Silence deprecation warnings for upcoming unsupported Pythons. --use-feature <feature> Enable new functionality, that may be backward incompatible. --use-deprecated <feature> Enable deprecated functionality, that will be removed in the future.. Update vendor libraries: - Update requirementslib from 1.5.16 to 1.6.1 - Update pip-shims from 0.5.6 to 0.6.0 - New vendor platformdirs 2.4.0 _ Improved Documentation ---------------------- - remove prefixes on install commands for easy copy/pasting _
Release v2021.5.29
v2021.5.29
Release v2020.11.15
Version v2020.11.15 Features & Improvements ----------------------- - Support expanding environment variables in requirement URLs. _ - Show warning message when a dependency is skipped in locking due to the mismatch of its markers. _ Bug Fixes --------- - Fix a bug that executable scripts with leading backslash can't be executed via pipenv run. _ - Fix a bug that VCS dependencies always satisfy even if the ref has changed. _ - Restrict the acceptable hash type to SHA256 only. _ - Fix the output of pipenv scripts under Windows platform. _ - Fix a bug that the resolver takes wrong section to validate constraints. _ Vendored Libraries ------------------ - Update vendored dependencies: - colorama from 0.4.3 to 0.4.4 - python-dotenv from 0.10.3 to 0.15.0 - first from 2.0.1 to 2.0.2 - iso8601 from 0.1.12 to 0.1.13 - parse from 1.15.0 to 1.18.0 - pipdeptree from 0.13.2 to 1.0.0 - requests from 2.23.0 to 2.25.0 - idna from 2.9 to 2.10 - urllib3 from 1.25.9 to 1.26.1 - certifi from 2020.4.5.1 to 2020.11.8 - requirementslib from 1.5.15 to 1.5.16 - attrs from 19.3.0 to 20.3.0 - distlib from 0.3.0 to 0.3.1 - packaging from 20.3 to 20.4 - six from 1.14.0 to 1.15.0 - semver from 2.9.0 to 2.13.0 - toml from 0.10.1 to 0.10.2 - cached-property from 1.5.1 to 1.5.2 - yaspin from 0.14.3 to 1.2.0 - resolvelib from 0.3.0 to 0.5.2 - pep517 from 0.8.2 to 0.9.1 - zipp from 0.6.0 to 1.2.0 - importlib-metadata from 1.6.0 to 2.0.0 - importlib-resources from 1.5.0 to 3.3.0 _ Improved Documentation ---------------------- - Fix suggested pyenv setup to avoid using shimmed interpreter _
Release v2020.11.4
Version v2020.11.4 Features & Improvements ----------------------- - Add a new command pipenv scripts to display shortcuts from Pipfile. _ - Retrieve package file hash from URL to accelerate the locking process. _ - Add the missing --system option to pipenv sync. _ - Add a new option pair --header/--no-header to pipenv lock command, which adds a header to the generated requirements.txt _ Bug Fixes --------- - Fix a bug that percent encoded characters will be unquoted incorrectly in the file URL. _ - Fix a bug where setting PIPENV_PYTHON to file path breaks environment name _ - Fix a bug that paths are not normalized before comparison. _ - Handle Python major and minor versions correctly in Pipfile creation. _ - Fix a bug that non-wheel file requirements can be resolved successfully. _ - Fix a bug that pexept.exceptions.TIMEOUT is not caught correctly because of the wrong import path. _ - Fix a bug that compound TOML table is not parsed correctly. _ - Fix a bug that invalid Python paths from Windows registry break pipenv install. _ - Fix a bug that function calls in setup.py can't be parsed rightly. _ - Fix a bug that dist-info inside venv directory will be mistaken as the editable package's metadata. _ - Make the order of hashes in resolution result stable. _ Vendored Libraries ------------------ - Update tomlkit from 0.5.11 to 0.7.0. _ - Update requirementslib from 1.5.13 to 1.5.14. _ Improved Documentation ---------------------- - Discourage homebrew installation in installation guides. _
Release v2020.8.13
Bug Fixes
- Fixed behaviour of
pipenv uninstall --all-dev
.
From now on it does not uninstall regular packages.#3722 <https://github.com/pypa/pipenv/issues/3722>
_ - Fix a bug that incorrect Python path will be used when
--system
flag is on.#4315 <https://github.com/pypa/pipenv/issues/4315>
_ - Fix falsely flagging a Homebrew installed Python as a virtual environment
#4316 <https://github.com/pypa/pipenv/issues/4316>
_ - Fix a bug that
pipenv uninstall
throws an exception that does not exist.#4321 <https://github.com/pypa/pipenv/issues/4321>
_ - Fix a bug that Pipenv can't locate the correct file of special directives in
setup.cfg
of an editable package.#4335 <https://github.com/pypa/pipenv/issues/4335>
_ - Fix a bug that
setup.py
can't be parsed correctly when the assignment is type-annotated.#4342 <https://github.com/pypa/pipenv/issues/4342>
_ - Fix a bug that
pipenv graph
throws an exception that PipenvCmdError(cmd_string, c.out, c.err, return_code).#4388 <https://github.com/pypa/pipenv/issues/4388>
_ - Do not copy the whole directory tree of local file package.
#4403 <https://github.com/pypa/pipenv/issues/4403>
_ - Correctly detect whether Pipenv in run under an activated virtualenv.
#4412 <https://github.com/pypa/pipenv/issues/4412>
_
Vendored Libraries
- Update
requirementslib
to1.5.12
.#4385 <https://github.com/pypa/pipenv/issues/4385>
_ -
- Update
requirements
to1.5.13
. - Update
pip-shims
to0.5.3
.#4421 <https://github.com/pypa/pipenv/issues/4421>
_
- Update
Release v2020.6.2
2020.6.2 (2020-06-02)
Features & Improvements
- Pipenv will now detect existing
venv
andvirtualenv
based virtual environments more robustly. #4276
Bug Fixes
+
signs in URL authentication fragments will no longer be incorrectly replaced with space (- Fixed a regression which caused Pipenv to fail when running under
/
. #4273 setup.py
files withversion
variables read fromos.environ
are 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 avenv
based 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
requirementslib
AST parser which prevented parsing ofsetup.py
files for dependency metadata. #4298 - Fix a bug where Pipenv doesn't realize the session is interactive #4305
Vendored Libraries
Release v2020.5.28
2020.5.28 (2020-05-28)
Features & Improvements
pipenv install
andpipenv sync
will no longer attempt to install satisfied dependencies during installation. #3057, #3506- Added support for resolution of direct-url dependencies in
setup.py
files to respectPEP-508
style 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
stdout
andstderr
consistency. #3298
- For consistency with other commands and the
--dev
option description,pipenv lock --requirements --dev
now emits both default and development dependencies. The new--dev-only
option requests the previous behaviour (e.g. to generate adev-requirements.txt
file). #3316 - Pipenv will now successfully recursively lock VCS sub-dependencies. #3328
- Added support for
--verbose
output 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 toPIP\_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_DEPS
on all vcs and file dependencies as resolution happens on these in a pre-lock step. #3763 - Improved verbose logging output during
pipenv lock
will now stream output to the console while maintaining a spinner. #3810 - Added support for automatic python installs via
asdf
and associatedPIPENV_DONT_USE_ASDF
environment variable. #4018 - Pyenv/asdf can now be used whether or not they are available on PATH. Setting
PYENV_ROOT
/ASDF_DIR
in a.env
file allows Pipenv to install an interpreter without any shell customizations, so long as pyenv/asdf is installed. #4245 - Added
--key
command 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 sync
without a Pipfile. #3386 - Re-enable
--help
option forpipenv run
command. #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
which
andwhere
which may not always exist on some
systems. - Fixed a bug which caused periodic failures in python discovery when executables named
python
were 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 graph
from correctly showing all dependencies when running from withinpipenv shell
. #3071 - Fixed resolution of direct-url dependencies in
setup.py
files to respectPEP-508
style 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 - 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-packages
flag 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
PEP508
compliant VCS URLs specified in theirinstall_requires
will 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
ValidationError
is 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 --help
to show duplicate entries for--pre
. #3479 - Fix bug causing
[SSL: CERTIFICATE_VERIFY_FAILED]
when Pipfile[[source]]
hasverify_ssl=false
and url with custom port. #3502 - Fix
sync --sequential
ignoringpip install
errors and logs. #3537 - Fix the issue that lock file can't be created when
PIPENV_PIPFILE
is not under working directory. #3584 - Pipenv will no longer inadvertently set
editable=True
on all vcs dependencies. #3647 - The
--keep-outdated
argument topipenv install
andpipenv lock
will now drop specifier constraints when encountering editable dependencies.- In addition,
--keep-outdated
will retain specifiers that would otherwise be dropped from any entries that have not been updated. #3656
- In addition,
- Fixed a bug which sometimes caused pipenv to fail to respect the
--site-packages
flag when passed withpipenv install
. #3718 - Normalize the package names to lowercase when comparing used and in-Pipfile packages. #3745
pipenv update --outdated
will now correctly handle comparisons between pre/post-releases and normal releases. #3766- Fixed a
KeyError
which 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_version
markers insetup.py
andsetup.cfg
files. #3786 - Fix a bug that installation errors are displayed as a list. #3794
- Update
pythonfinder
to fix a problem thatpython.exe
will 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 --system
should find the correct Python interpreter whenpython
does not exist on the system. #3819- Resolve the symlinks when the path is absolute. #3842
- Pass
--pre
and--clear
options 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 check
failing due to an invalid API key frompyup.io
. #4188 - Fixed a bug which caused versions from VCS dependencies to be included in
Pipfile.lock
inadvertently. #4217 - Fixed a bug which caused pipenv to search non-existent virtual environments for
pip
when installing using--system
. #4220 Requires-Python
values specifying constraint versions of python starting from1.x
will now be parsed successfully. #4226- Fix a bug of
pipenv update --outdated
that can't print output correctly. #4229 - Fixed a bug which caused pipenv to prefer source distributions over wheels from
PyPI
during the dependency resolution phase. Fixed an issue which prevented proper build isolation usingpep517
based builders during dependency resolution. #4231 - Don't fallback to system Python when no matching Python version is found. #4232
Vendored Libraries
- Updated
pip_shims
to support--outdated
with new pip versions. #3766 - Update 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 fromtomlkit
- 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` - **pyparsi...
- attrs: