Skip to content

Releases: pypa/pipenv

Release v2021.11.15

15 Nov 01:38
b0ceaed
Compare
Choose a tag to compare
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

09 Nov 04:50
706a4ed
Compare
Choose a tag to compare

Features & Improvements

  • Replace click-completion with click'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 of pip fail to be imported. #4833
  • Fix a bug that 3.10.0 can be found be python finder. #4837

Vendored Libraries

  • Update pythonfinder from 1.2.8 to 1.2.9. #4837

Release v2021.11.5.post0

05 Nov 15:51
202acd6
Compare
Choose a tag to compare
v2021.11.5.post0

Release v2021.11.5

05 Nov 10:46
2da61b0
Compare
Choose a tag to compare
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

29 May 03:07
72835f1
Compare
Choose a tag to compare
v2021.5.29

Release v2020.11.15

15 Nov 04:16
Compare
Choose a tag to compare
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

04 Nov 12:39
Compare
Choose a tag to compare
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

13 Aug 13:29
Compare
Choose a tag to compare

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 to 1.5.12. #4385 <https://github.com/pypa/pipenv/issues/4385>_
    • Update requirements to 1.5.13.
    • Update pip-shims to 0.5.3. #4421 <https://github.com/pypa/pipenv/issues/4421>_

Release v2020.6.2

02 Jun 06:15
a44b982
Compare
Choose a tag to compare

2020.6.2 (2020-06-02)

Features & Improvements

  • Pipenv will now detect existing venv and virtualenv based virtual environments more robustly. #4276

Bug Fixes

  • + signs in URL authentication fragments will no longer be incorrectly replaced with space ( ) characters. #4271
  • Fixed a regression which caused Pipenv to fail when running under /. #4273
  • setup.py files with version variables read from os.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 a venv 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 of setup.py files for dependency metadata. #4298
  • Fix a bug where Pipenv doesn't realize the session is interactive #4305

Vendored Libraries

  • Updated requirementslib to version 1.5.11. #4292
  • Updated vendored dependencies:
    • pythonfinder: 1.2.2 => 1.2.4
    • requirementslib: 1.5.9 => 1.5.10 #4302

Release v2020.5.28

28 May 04:52
v2020.5.28
472618c
Compare
Choose a tag to compare

2020.5.28 (2020-05-28)

Features & Improvements

  • pipenv install and pipenv 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 respect PEP-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 and stderr 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 a dev-requirements.txt file). #3316
  • Pipenv will now successfully recursively lock VCS sub-dependencies. #3328
  • Added support for --verbose output to pipenv 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 to PIP\_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 associated PIPENV_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 running pipenv 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 for pipenv 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 and where 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 within pipenv shell. #3071
  • Fixed resolution of direct-url dependencies in setup.py files to respect PEP-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 their install_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]] has verify_ssl=false and url with custom port. #3502
  • Fix sync --sequential ignoring pip 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 to pipenv install and pipenv 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
  • Fixed a bug which sometimes caused pipenv to fail to respect the --site-packages flag when passed with pipenv 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 via pipenv lock --keep-outdated. #3768
  • Resolved an issue which caused resolution to fail when encountering poorly formatted python_version markers in setup.py and setup.cfg files. #3786
  • Fix a bug that installation errors are displayed as a list. #3794
  • Update pythonfinder to fix a problem that python.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 when python does not exist on the system. #3819
  • Resolve the symlinks when the path is absolute. #3842
  • Pass --pre and --clear options to pipenv 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 from pyup.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 from 1.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 using pep517 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 from tomlkit
    • 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...
Read more