diff --git a/CHANGELOG.md b/CHANGELOG.md index 115f2a8d16..d830df0721 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,44 @@ Pipenv 2024.0.0 (2024-06-06) ============================ +Features & Improvements +----------------------- -No significant changes. +- Supply any ``--extra-pip-args`` also in the resolver steps. `#6006 `_ +- The ``uninstall`` command now does the inverse of ``upgrade`` which means it no longer invokes a full ``lock`` cycle which was problematic for projects with many dependencies. `#6029 `_ +- The ``pipenv requirements`` subcommand now supports the ``--from-pipfile`` flag. When this flag is used, the requirements file will only include the packages explicitly listed in the Pipfile, excluding any sub-packages. `#6156 `_ + +Behavior Changes +---------------- + +- ``pipenv==3000.0.0`` denotes the first major release of our semver strategy. + As much requested, the ``install`` no longer does a complete lock operation. Instead ``install`` follows the same code path as pipenv update (which is upgrade + sync). + This is what most new users expect the behavior to be; it is a behavioral change, a necessary one to make the tool more usable. + Remember that complete lock resolution can be invoked with ``pipenv lock`` just as before. `#6098 `_ + +Bug Fixes +--------- + +- Fix a bug that passes pipenv check command if Pipfile.lock not exist `#6126 `_ +- Fix a bug that vcs subdependencies were locked without their subdirectory fragment if they had one `#6136 `_ +- ``pipenv`` converts off ``pkg_resources`` API usages. This necessitated also vendoring in: + * latest ``pipdeptree==2.18.1`` which also converted off ``pkg_resources`` + * ``importlib-metadata==7.1.0`` to continue supporting python 3.8 and 3.9 + * ``packaging==24.0`` since the packaging we were utilizing in pip's _vendor was insufficient for this conversion. `#6139 `_ +- Pipenv only supports absolute python version. If the user specifies a Python version with inequality signs like >=3.12, <3.12 in the [requires] field, the code has been modified to explicitly express in an error log that absolute versioning must be used. `#6164 `_ + +Vendored Libraries +------------------ + +- Vendor in ``pip==24.0`` `#6117 `_ +- Spring 2024 Vendoring includes: + * ``click-didyoumean==0.3.1`` + * ``expect==4.9.0`` + * ``pipdeptree==2.16.2`` + * ``python-dotenv==1.0.1`` + * ``ruamel.yaml==0.18.6`` + * ``shellingham==1.5.4`` + * ``tomlkit==0.12.4`` `#6118 `_ 2023.12.1 (2024-02-04) diff --git a/docs/advanced.md b/docs/advanced.md index 838df82096..1382af7f17 100644 --- a/docs/advanced.md +++ b/docs/advanced.md @@ -29,7 +29,7 @@ Or you can install packages exactly as specified in `Pipfile.lock` using the `in $ pipenv install -Note: Legacy versions of pipenv (prior to pipenv 3000) would relock dependencies when running `pipenv install`. This behavior was changed in pipenv 3000 to only relock dependencies when supply package specifiers to the `install` command. +Note: Legacy versions of pipenv (prior to pipenv 2024) would relock dependencies when running `pipenv install`. This behavior was changed in pipenv 2024.0.0 to only relock dependencies when supply package specifiers to the `install` command. ``pipenv sync`` is nearly equivalent to ``pipenv install`` at this point, except pipenv install provides more functionality for adding and upgrading packages. diff --git a/docs/commands.md b/docs/commands.md index 469bc9eb76..eb058dc48f 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -28,7 +28,7 @@ The user can provide these additional parameters: General Interface Note: ```{note} - It was confusing to users that prior to pipenv 3000, the install would relock the lock file every time it was run. + It was confusing to users that prior to pipenv 2024, the install would relock the lock file every time it was run. Based on feedback in pipenv issue reports, we changed the install command to only update lock when adding or changing a package. If you wish to relock the entire set of Pipfile specifiers, please continue to utilize `pipenv lock` ```