diff --git a/CHANGELOG.md b/CHANGELOG.md index 0841c771dc..c130a12f1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,47 @@ +3000.0.0 (2024-06-06) +===================== +Pipenv 3000.0.0 (2024-06-06) +============================ + + +Features & Improvements +----------------------- + +- 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) ====================== Pipenv 2023.12.1 (2024-02-04) diff --git a/news/6006.feature.rst b/news/6006.feature.rst deleted file mode 100644 index ebdb4ecd84..0000000000 --- a/news/6006.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Supply any ``--extra-pip-args`` also in the resolver steps. diff --git a/news/6029.feature.rst b/news/6029.feature.rst deleted file mode 100644 index 0870806273..0000000000 --- a/news/6029.feature.rst +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/news/6098.behavior.rst b/news/6098.behavior.rst deleted file mode 100644 index c6918b8bf5..0000000000 --- a/news/6098.behavior.rst +++ /dev/null @@ -1,4 +0,0 @@ -``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. diff --git a/news/6117.vendor.rst b/news/6117.vendor.rst deleted file mode 100644 index 5a0b323052..0000000000 --- a/news/6117.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Vendor in ``pip==24.0`` diff --git a/news/6118.vendor.rst b/news/6118.vendor.rst deleted file mode 100644 index 1078d34286..0000000000 --- a/news/6118.vendor.rst +++ /dev/null @@ -1,8 +0,0 @@ -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`` diff --git a/news/6126.bugfix.rst b/news/6126.bugfix.rst deleted file mode 100644 index e11d7604eb..0000000000 --- a/news/6126.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a bug that passes pipenv check command if Pipfile.lock not exist diff --git a/news/6136.bugfix.rst b/news/6136.bugfix.rst deleted file mode 100644 index 6ddd3742c1..0000000000 --- a/news/6136.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a bug that vcs subdependencies were locked without their subdirectory fragment if they had one diff --git a/news/6139.bugfix.rst b/news/6139.bugfix.rst deleted file mode 100644 index 8550e8bdf6..0000000000 --- a/news/6139.bugfix.rst +++ /dev/null @@ -1,4 +0,0 @@ -``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. diff --git a/news/6156.feature.rst b/news/6156.feature.rst deleted file mode 100644 index 525c98d88d..0000000000 --- a/news/6156.feature.rst +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/news/6164.bugfix.rst b/news/6164.bugfix.rst deleted file mode 100644 index 348a090179..0000000000 --- a/news/6164.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/pipenv/pipenv.1 b/pipenv/pipenv.1 index b86814840d..51e99e24a8 100644 --- a/pipenv/pipenv.1 +++ b/pipenv/pipenv.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PIPENV" "1" "Feb 04, 2024" "2023.12.1" "pipenv" +.TH "PIPENV" "1" "Jun 06, 2024" "3000.0.0" "pipenv" .sp \fBNOTE:\fP .INDENT 0.0 @@ -51,10 +51,10 @@ $ python \-\-version .UNINDENT .UNINDENT .sp -You should get some output like \fB3.10.8\fP\&. If you do not have Python, please +You should get some output like \fB3.12.1\fP\&. If you do not have Python, please install the latest 3.x version from \fI\%python.org\fP .sp -Additionally, make sure you have \fI\%pip\fP available. +Additionally, make sure you have \fI\%pip\fP available, assuming you install via pip, our preferred method of installation. Check this by running .INDENT 0.0 .INDENT 3.5 @@ -62,7 +62,7 @@ Check this by running .nf .ft C $ pip \-\-version -pip 22.3.1 +pip 24.0 .ft P .fi @@ -206,24 +206,31 @@ For example when installing the \fBrequests\fP library, you should get output si .ft C $ pipenv install requests Creating a virtualenv for this project... -Pipfile: C:\eUsers\ematte\eProjects\epipenv\-triage\eexample\ePipfile -Using C:/Users/matte/AppData/Local/Programs/Python/Python311/python.exe (3.11.2) to create virtualenv... -[ ] Creating virtual environment...created virtual environment CPython3.11.2.final.0\-64 in 488ms - creator CPython3Windows(dest=C:\eUsers\ematte\e.virtualenvs\eexample\-7V6BFyzL, clear=False, no_vcs_ignore=False, global=False) - seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\eUsers\ematte\eAppData\eLocal\epypa\evirtualenv) - added seed packages: pip==23.0, setuptools==67.1.0, wheel==0.38.4 - activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator +Pipfile: /home/matteius/pipenv\-triage/test_install2/Pipfile +Using default python from /mnt/extra/miniconda3/bin/python (3.12.1) to create virtualenv... +⠹ Creating virtual environment...created virtual environment CPython3.12.1.final.0\-64 in 139ms + creator CPython3Posix(dest=/home/matteius/Envs/test_install2\-DMnDbAT9, clear=False, no_vcs_ignore=False, global=False) + seeder FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/home/matteius/.local/share/virtualenv) + added seed packages: pip==24.0 + activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator -Successfully created virtual environment! -Virtualenv location: C:\eUsers\ematte\e.virtualenvs\eexample\-7V6BFyzL +✔ Successfully created virtual environment! +Virtualenv location: /home/matteius/Envs/test_install2\-DMnDbAT9 +Creating a Pipfile for this project... Installing requests... Resolving requests... -Installing... -Adding requests to Pipfile\(aqs [packages] ... -Installation Succeeded -Installing dependencies from Pipfile.lock (3b5a71)... +Added requests to Pipfile\(aqs [packages] ... +✔ Installation Succeeded +Pipfile.lock not found, creating... +Locking [packages] dependencies... +Building requirements... +Resolving dependencies... +✔ Success! +Locking [dev\-packages] dependencies... +Updated Pipfile.lock (1977acb1ba9778abb66054090e2618a0a1f1759b1b3b32afd8a7d404ba18b4fb)! To activate this project\(aqs virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run. +Installing dependencies from Pipfile.lock (18b4fb)... .ft P .fi