diff --git a/NEWS.rst b/NEWS.rst index 3e7940c5f41..397277444bc 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -9,6 +9,79 @@ .. towncrier release notes start +24.2 (2024-07-28) +================= + +Deprecations and Removals +------------------------- + +- Deprecate ``pip install --editable`` falling back to ``setup.py develop`` + when using a setuptools version that does not support :pep:`660` + (setuptools v63 and older). (`#11457 `_) + +Features +-------- + +- Check unsupported packages for the current platform. (`#11054 `_) +- Use system certificates *and* certifi certificates to verify HTTPS connections on Python 3.10+. + Python 3.9 and earlier only use certifi. + + To revert to previous behaviour, pass the flag ``--use-deprecated=legacy-certs``. (`#11647 `_) +- Improve discovery performance of installed packages when the ``importlib.metadata`` + backend is used to load distribution metadata (used by default under Python 3.11+). (`#12656 `_) +- Improve performance when the same requirement string appears many times during + resolution, by consistently caching the parsed requirement string. (`#12663 `_) +- Minor performance improvement of finding applicable package candidates by not + repeatedly calculating their versions (`#12664 `_) +- Disable pip's self version check when invoking a pip subprocess to install + PEP 517 build requirements. (`#12683 `_) +- Improve dependency resolution performance by caching platform compatibility + tags during wheel cache lookup. (`#12712 `_) +- ``wheel`` is no longer explicitly listed as a build dependency of ``pip``. + ``setuptools`` injects this dependency in the ``get_requires_for_build_wheel()`` + hook and no longer needs it on newer versions. (`#12728 `_) +- Ignore ``--require-virtualenv`` for ``pip check`` and ``pip freeze`` (`#12842 `_) +- Improve package download and install performance. + + Increase chunk sizes when downloading (256 kB, up from 10 kB) and reading files (1 MB, up from 8 kB). + This reduces the frequency of updates to pip's progress bar. (`#12810 `_) +- Improve pip install performance. + + Files are now extracted in 1MB blocks, or in one block matching the file size for + smaller files. A decompressor is no longer instantiated when extracting 0 bytes files, + it is not necessary because there is no data to decompress. (`#12803 `_) + +Bug Fixes +--------- + +- Set ``no_color`` to global ``rich.Console`` instance. (`#11045 `_) +- Fix resolution to respect ``--python-version`` when checking ``Requires-Python``. (`#12216 `_) +- Perform hash comparisons in a case-insensitive manner. (`#12680 `_) +- Avoid ``dlopen`` failure for glibc detection in musl builds (`#12716 `_) +- Avoid keyring logging crashes when pip is run in verbose mode. (`#12751 `_) +- Fix finding hardlink targets in tar files with an ignored top-level directory. (`#12781 `_) +- Improve pip install performance by only creating required parent + directories once, instead of before extracting every file in the wheel. (`#12782 `_) +- Improve pip install performance by calculating installed packages printout + in linear time instead of quadratic time. (`#12791 `_) + +Vendored Libraries +------------------ + +- Remove vendored tenacity. +- Update the preload list for the ``DEBUNDLED`` case, to replace ``pep517`` that has been renamed to ``pyproject_hooks``. +- Use tomllib from the stdlib if available, rather than tomli +- Upgrade certifi to 2024.7.4 +- Upgrade platformdirs to 4.2.2 +- Upgrade pygments to 2.18.0 +- Upgrade setuptools to 70.3.0 +- Upgrade typing_extensions to 4.12.2 + +Improved Documentation +---------------------- + +- Correct ``—-ignore-conflicts`` (including an em dash) to ``--ignore-conflicts``. (`#12851 `_) + 24.1.2 (2024-07-07) =================== diff --git a/news/10822.vendor.rst b/news/10822.vendor.rst deleted file mode 100644 index 27a3c234091..00000000000 --- a/news/10822.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Remove vendored tenacity. diff --git a/news/11045.bugfix.rst b/news/11045.bugfix.rst deleted file mode 100644 index cf08c9b8bcd..00000000000 --- a/news/11045.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Set ``no_color`` to global ``rich.Console`` instance. diff --git a/news/11054.feature.rst b/news/11054.feature.rst deleted file mode 100644 index 335468c12f9..00000000000 --- a/news/11054.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Check unsupported packages for the current platform. diff --git a/news/11457.removal.rst b/news/11457.removal.rst deleted file mode 100644 index 7af83fde3ce..00000000000 --- a/news/11457.removal.rst +++ /dev/null @@ -1,3 +0,0 @@ -Deprecate ``pip install --editable`` falling back to ``setup.py develop`` -when using a setuptools version that does not support :pep:`660` -(setuptools v63 and older). diff --git a/news/11647.feature.rst b/news/11647.feature.rst deleted file mode 100644 index 26d04d49165..00000000000 --- a/news/11647.feature.rst +++ /dev/null @@ -1,4 +0,0 @@ -Changed pip to use system certificates and certifi to verify HTTPS connections. -This change only affects Python 3.10 or later, Python 3.9 and earlier only use certifi. - -To revert to previous behavior pass the flag ``--use-deprecated=legacy-certs``. diff --git a/news/12216.bugfix.rst b/news/12216.bugfix.rst deleted file mode 100644 index 804bf1ee9bb..00000000000 --- a/news/12216.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix resolution to respect ``--python-version`` when checking ``Requires-Python``. diff --git a/news/12572.trivial.rst b/news/12572.trivial.rst deleted file mode 100644 index f50b78a217c..00000000000 --- a/news/12572.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Add ``groups`` in dependabot.yml to bump group updates diff --git a/news/12656.feature.rst b/news/12656.feature.rst deleted file mode 100644 index fdbba5484ba..00000000000 --- a/news/12656.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Improve discovery performance of installed packages when the -``importlib.metadata`` backend is used to load distribution metadata -(used by default under Python 3.11+). diff --git a/news/12660.trivial.rst b/news/12660.trivial.rst deleted file mode 100644 index f02256eccbb..00000000000 --- a/news/12660.trivial.rst +++ /dev/null @@ -1,2 +0,0 @@ -Remove (suppressed) deprecation warning from vendored ``pkg_resources`` -to ensure builds succeed with ``PYTHONWARNINGS=error``. diff --git a/news/12663.feature.rst b/news/12663.feature.rst deleted file mode 100644 index 11300ae47d3..00000000000 --- a/news/12663.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Improve performance when the same requirement string appears many times during resolution, by consistently caching the parsed requirement string. diff --git a/news/12664.feature.rst b/news/12664.feature.rst deleted file mode 100644 index a5f85097c62..00000000000 --- a/news/12664.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Minor performance improvement of finding applicable package candidates by not repeatedly calculating their versions diff --git a/news/12680.bugfix.rst b/news/12680.bugfix.rst deleted file mode 100644 index fa821f9f339..00000000000 --- a/news/12680.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Perform hash comparisons in a case-insensitive manner. diff --git a/news/12683.feature.rst b/news/12683.feature.rst deleted file mode 100644 index 2e949cd0762..00000000000 --- a/news/12683.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Disable pip's self version check when invoking a pip subprocess to install -PEP 517 build requirements. diff --git a/news/12712.feature.rst b/news/12712.feature.rst deleted file mode 100644 index 3a08cdb10e2..00000000000 --- a/news/12712.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve dependency resolution performance by caching platform compatibility -tags during wheel cache lookup. diff --git a/news/12716.bugfix.rst b/news/12716.bugfix.rst deleted file mode 100644 index 7af794f7bb3..00000000000 --- a/news/12716.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Avoid dlopen failure for glibc detection in musl builds diff --git a/news/12728.feature.rst b/news/12728.feature.rst deleted file mode 100644 index 923d18707e0..00000000000 --- a/news/12728.feature.rst +++ /dev/null @@ -1,5 +0,0 @@ -``wheel`` is no longer explicitly listed as a build depepndency of ``pip``. -``setuptools`` already injects this dependency in the ``get_requires_for_build_wheel()`` hook. -This makes no difference for users of ``pip``. -This makes no difference when building wheels of ``pip``. -This avoids an unnecessary dependency on ``wheel`` when building the source distribution of ``pip``. diff --git a/news/12751.bugfix.rst b/news/12751.bugfix.rst deleted file mode 100644 index 70c6680a8a9..00000000000 --- a/news/12751.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Avoid keyring logging crashes when pip is run in verbose mode. diff --git a/news/12776.trivial.rst b/news/12776.trivial.rst deleted file mode 100644 index 87d2f8e7975..00000000000 --- a/news/12776.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Use prerelease version of CFFI for Python 3.13 testing diff --git a/news/12781.bugfix.rst b/news/12781.bugfix.rst deleted file mode 100644 index 6bd43d347db..00000000000 --- a/news/12781.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix finding hardlink targets in tar files with an ignored top-level directory. diff --git a/news/12782.bugfix.rst b/news/12782.bugfix.rst deleted file mode 100644 index 459a2838c32..00000000000 --- a/news/12782.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve pip install performance by only creating required parent -directories once, instead of before extracting every file in the wheel. diff --git a/news/12791.bugfix.rst b/news/12791.bugfix.rst deleted file mode 100644 index c19345d439c..00000000000 --- a/news/12791.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve pip install performance. The installed packages printout is -now calculated in linear time instead of quadratic time. diff --git a/news/12796.vendor.rst b/news/12796.vendor.rst deleted file mode 100644 index 6384a5b1476..00000000000 --- a/news/12796.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Update the preload list for the ``DEBUNDLED`` case, to replace ``pep517`` that has been renamed to ``pyproject_hooks``. diff --git a/news/12797.vendor.rst b/news/12797.vendor.rst deleted file mode 100644 index 7842883ddba..00000000000 --- a/news/12797.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Use tomllib from the stdlib if available, rather than tomli diff --git a/news/12803.bugfix.rst b/news/12803.bugfix.rst deleted file mode 100644 index 4193d33e05c..00000000000 --- a/news/12803.bugfix.rst +++ /dev/null @@ -1,4 +0,0 @@ -Improve pip install performance. Files are now extracted in 1MB blocks, -or in one block matching the file size for smaller files. -A decompressor is no longer instantiated when extracting 0 bytes files, -it is not necessary because there is no data to decompress. diff --git a/news/12805.trivial.rst b/news/12805.trivial.rst deleted file mode 100644 index 56f61f77238..00000000000 --- a/news/12805.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Update ruff to 0.5.0 diff --git a/news/12810.feature.rst b/news/12810.feature.rst deleted file mode 100644 index fd236947e4d..00000000000 --- a/news/12810.feature.rst +++ /dev/null @@ -1,5 +0,0 @@ -Improve download performance. Download packages and update the -progress bar in larger chunks of 256 kB, up from 10 kB. -Limit the progress bar to 5 refresh per second. -Improve hash performance. Read package files in larger chunks of 1 MB, -up from 8192 bytes. diff --git a/news/12842.feature.rst b/news/12842.feature.rst deleted file mode 100644 index 60ebc3245f2..00000000000 --- a/news/12842.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Ignore ``--require-virtualenv`` for ``pip check`` and ``pip freeze`` diff --git a/news/12851.doc.rst b/news/12851.doc.rst deleted file mode 100644 index 844545c73ac..00000000000 --- a/news/12851.doc.rst +++ /dev/null @@ -1 +0,0 @@ -Correct ``—-ignore-conflicts`` (including an em dash) to ``--ignore-conflicts``. diff --git a/news/5dac0fc9-10c7-4d77-b8dc-8ff111c9557d.trivial.rst b/news/5dac0fc9-10c7-4d77-b8dc-8ff111c9557d.trivial.rst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/news/72167f18-bd68-41e1-8404-4d23e6b2652f.trivial.rst b/news/72167f18-bd68-41e1-8404-4d23e6b2652f.trivial.rst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/news/aa82171b-1578-4128-8db3-9aa72b3a6a84.trivial.rst b/news/aa82171b-1578-4128-8db3-9aa72b3a6a84.trivial.rst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/news/bcfde343-3f44-464e-9229-7af962defac6.trivial.rst b/news/bcfde343-3f44-464e-9229-7af962defac6.trivial.rst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/news/certifi.vendor.rst b/news/certifi.vendor.rst deleted file mode 100644 index bc4ad30e7f9..00000000000 --- a/news/certifi.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Upgrade certifi to 2024.7.4 diff --git a/news/d0281e66-f6f9-4fb6-ac44-b5a9d468d42b.trivial.rst b/news/d0281e66-f6f9-4fb6-ac44-b5a9d468d42b.trivial.rst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/news/platformdirs.vendor.rst b/news/platformdirs.vendor.rst deleted file mode 100644 index b2007b95b09..00000000000 --- a/news/platformdirs.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Upgrade platformdirs to 4.2.2 diff --git a/news/pygments.vendor.rst b/news/pygments.vendor.rst deleted file mode 100644 index 5232695fa02..00000000000 --- a/news/pygments.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Upgrade pygments to 2.18.0 diff --git a/news/setuptools.vendor.rst b/news/setuptools.vendor.rst deleted file mode 100644 index afdd14c09dc..00000000000 --- a/news/setuptools.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Upgrade setuptools to 70.3.0 diff --git a/news/typing_extensions.vendor.rst b/news/typing_extensions.vendor.rst deleted file mode 100644 index 580ac5dfb2b..00000000000 --- a/news/typing_extensions.vendor.rst +++ /dev/null @@ -1 +0,0 @@ -Upgrade typing_extensions to 4.12.2 diff --git a/src/pip/__init__.py b/src/pip/__init__.py index 531eec2d928..640e922f537 100644 --- a/src/pip/__init__.py +++ b/src/pip/__init__.py @@ -1,6 +1,6 @@ from typing import List, Optional -__version__ = "24.2.dev0" +__version__ = "24.2" def main(args: Optional[List[str]] = None) -> int: