Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,6 @@ Stephan Erb <github@stephanerb.eu> <stephan@dev.static-
Victor Stinner <victor.stinner@gmail.com> <vstinner@redhat.com>
Yoval P <yoval@gmx.com>
Zhiping Deng <kofreestyler@gmail.com>
dkjsone <221672629+dkjsone@users.noreply.github.com> user <empty>
Meet Vasita <meetvasita85@gmail.com> meet-vasita <meetvasita85@gmail.com>
Meet Vasita <meetvasita85@gmail.com> Meet_Vasita <84974738+meet-vasita@users.noreply.github.com>
9 changes: 9 additions & 0 deletions AUTHORS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ albertg
Alberto Sottile
Aleks Bunin
Ales Erjavec
Alessandro Molina
Alethea Flowers
Alex Gaynor
Alex Grönholm
Expand All @@ -37,6 +38,7 @@ Alexandre Conrad
Alexey Popravka
Aleš Erjavec
Alli
Aman
Ami Fischman
Ananya Maiti
Anatoly Techtonik
Expand All @@ -56,6 +58,7 @@ Aniruddha Basak
Anish Tambe
Anrs Hu
Anthony Sottile
Antoine Lambert
Antoine Musso
Anton Ovchinnikov
Anton Patrushev
Expand Down Expand Up @@ -236,6 +239,7 @@ Dimitri Merejkowsky
Dimitri Papadopoulos
Dimitri Papadopoulos Orfanos
Dirk Stolle
dkjsone
Dmitry Gladkov
Dmitry Volodin
Domen Kožar
Expand Down Expand Up @@ -347,6 +351,7 @@ Igor Sobreira
Ikko Ashimine
Ilan Schnell
Illia Volochii
Ilya Abdolmanafi
Ilya Baryshev
Inada Naoki
Ionel Cristian Mărieș
Expand Down Expand Up @@ -482,6 +487,7 @@ luojiebin
luz.paz
László Kiss Kollár
M00nL1ght
MajorTanya
Malcolm Smith
Marc Abramowitz
Marc Tamlyn
Expand All @@ -498,6 +504,7 @@ Martin Pavlasek
Masaki
Masklinn
Matej Stuchlik
Mateusz Sokół
Mathew Jennings
Mathieu Bridon
Mathieu Kniewallner
Expand Down Expand Up @@ -525,6 +532,7 @@ mayeut
mbaluna
Md Sujauddin Sekh
mdebi
Meet Vasita
memoselyk
meowmeowcat
Michael
Expand Down Expand Up @@ -714,6 +722,7 @@ Shivansh-007
Shixian Sheng
Shlomi Fish
Shovan Maity
Shubham Nagure
Simeon Visser
Simon Cross
Simon Pichugin
Expand Down
64 changes: 64 additions & 0 deletions NEWS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,70 @@

.. towncrier release notes start

25.3 (2025-10-24)
=================

Deprecations and Removals
-------------------------

- Remove support for the legacy ``setup.py develop`` editable method in setuptools
editable installs; setuptools >= 64 is now required. (`#11457 <https://github.com/pypa/pip/issues/11457>`_)
Comment on lines +18 to +19
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, does pip raise a friendly error on pip install -e project --no-build-isolation when setuptools<64 is installed? Not sure how common this would be, but it could trip some people up @sbidoul.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That can be a possible future improvement, even maybe for a 25.3.1.

But detecting the version of the selected setuptools sounds fraught with edge cases, I wouldn't accept a PR for that today.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❯ pip install -e "pip-test-package @ git+https://github.com/pypa/pip-test-package" --no-build-isolation
Obtaining pip-test-package from git+https://github.com/pypa/pip-test-package
  Cloning https://github.com/pypa/pip-test-package to ./.venv/src/pip-test-package
  Running command git clone --filter=blob:none --quiet https://github.com/pypa/pip-test-package /tmp/brol/.venv/src/pip-test-package
  Resolved https://github.com/pypa/pip-test-package to commit 96d6d72ac54132aecbdd5adac88bc8d1f8fb986b
  Checking if build backend supports build_editable ... done
ERROR: Project pip-test-package from git+https://github.com/pypa/pip-test-package uses a build backend that is missing the 'build_editable' hook, so it cannot be installed in editable mode. Consider using a build backend that supports PEP 660.

That sounds reasonable. To do more we'd need to reintroduce setuptools-specific code which I'm not keen to do. I'd rather address that via documentation and communication.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, if we don't want to add setuptools specific code, then perhaps adding a "consider upgrading your locally installed build backend" when --no-build-isolation hint may be better. That's obviously out of scope for the pip 25.3 release cycle though.

- Remove the deprecated ``--global-option`` and ``--build-option``.
``--config-setting`` is now the only way to pass options to the build backend. (`#11859 <https://github.com/pypa/pip/issues/11859>`_)
- Deprecate the ``PIP_CONSTRAINT`` environment variable for specifying build
constraints.

Use the ``--build-constraint`` option or the ``PIP_BUILD_CONSTRAINT`` environment variable
instead. When build constraints are used, ``PIP_CONSTRAINT`` no longer affects isolated build
environments. To enable this behavior without specifying any build constraints, use
``--use-feature=build-constraint``. (`#13534 <https://github.com/pypa/pip/issues/13534>`_)
- Remove support for non-standard legacy wheel filenames. (`#13581 <https://github.com/pypa/pip/issues/13581>`_)
- Remove support for the deprecated ``setup.py bdist_wheel`` mechanism. Consequently,
``--use-pep517`` is now always on, and ``--no-use-pep517`` has been removed. (`#6334 <https://github.com/pypa/pip/issues/6334>`_)

Features
--------

- When :pep:`658` metadata is available, full distribution files are no longer downloaded when using ``pip lock`` or ``pip install --dry-run``. (`#12603 <https://github.com/pypa/pip/issues/12603>`_)
- Add support for installing an editable requirement written as a Direct URL (``PackageName @ URL``). (`#13495 <https://github.com/pypa/pip/issues/13495>`_)
- Add support for build constraints via the ``--build-constraint`` option. This
allows constraining the versions of packages used during the build process
(e.g., setuptools) without affecting the final installation. (`#13534 <https://github.com/pypa/pip/issues/13534>`_)
- On ``ResolutionImpossible`` errors, include a note about causes with no candidates. (`#13588 <https://github.com/pypa/pip/issues/13588>`_)
- Building pip itself from source now uses flit-core instead of setuptools.
This does not affect how pip installs or builds packages you use. (`#13743 <https://github.com/pypa/pip/issues/13743>`_)

Bug Fixes
---------

- Handle malformed ``Version`` metadata entries and
show a sensible error message instead of crashing. (`#13443 <https://github.com/pypa/pip/issues/13443>`_)
- Permit spaces between a filepath and extras in an install requirement. (`#13523 <https://github.com/pypa/pip/issues/13523>`_)
- Ensure the self-check files in the cache have the same permissions as the rest of the cache. (`#13528 <https://github.com/pypa/pip/issues/13528>`_)
- Avoid concurrency issues and improve performance when caching locally built wheels,
especially when the temporary build directory is on a different filesystem than the cache.
The wheel directory passed to the build backend is now a temporary subdirectory inside
the cache directory. (`#13540 <https://github.com/pypa/pip/issues/13540>`_)
- Include relevant user-supplied constraints in logs when reporting dependency conflicts. (`#13545 <https://github.com/pypa/pip/issues/13545>`_)
- Fix a regression in configuration parsing that was turning a single value
into a list and thus leading to a validation error. (`#13548 <https://github.com/pypa/pip/issues/13548>`_)
- For Python versions that do not support :pep:`706`, pip will now raise an installation error for a
source distribution when it includes a symlink that points outside the source distribution archive. (`#13550 <https://github.com/pypa/pip/issues/13550>`_)
- Prevent ``--user`` installs if ``site.ENABLE_USER_SITE`` is set to ``False``. (`#8794 <https://github.com/pypa/pip/issues/8794>`_)


Vendored Libraries
------------------

- Upgrade certifi to 2025.10.5
- Upgrade msgpack to 1.1.2
- Upgrade platformdirs to 4.5.0
- Upgrade requests to 2.32.5
- Upgrade resolvelib to 1.2.1
- Upgrade rich to 14.2.0
- Upgrade tomli to 2.3.0
- Upgrade truststore to 0.10.4

25.2 (2025-07-30)
=================

Expand Down
2 changes: 0 additions & 2 deletions news/11457.removal.rst

This file was deleted.

2 changes: 0 additions & 2 deletions news/11859.removal.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/12603.feature.rst

This file was deleted.

2 changes: 0 additions & 2 deletions news/13443.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/13495.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/13523.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/13528.bugfix.rst

This file was deleted.

3 changes: 0 additions & 3 deletions news/13534.feature.rst

This file was deleted.

8 changes: 0 additions & 8 deletions news/13534.removal.rst

This file was deleted.

5 changes: 0 additions & 5 deletions news/13540.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/13545.bugfix.rst

This file was deleted.

2 changes: 0 additions & 2 deletions news/13548.bugfix.rst

This file was deleted.

2 changes: 0 additions & 2 deletions news/13550.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/13561.doc.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/13581.removal.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/13588.feature.rst

This file was deleted.

2 changes: 0 additions & 2 deletions news/13743.feature.rst

This file was deleted.

2 changes: 0 additions & 2 deletions news/6334.removal.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/8794.bugfix.rst

This file was deleted.

Empty file removed news/FURB100.trivial.rst
Empty file.
1 change: 0 additions & 1 deletion news/certifi.vendor.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/msgpack.vendor.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/platformdirs.vendor.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/requests.vendor.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/resolvelib.vendor.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/rich.vendor.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/tomli.vendor.rst

This file was deleted.

1 change: 0 additions & 1 deletion news/truststore.vendor.rst

This file was deleted.

2 changes: 1 addition & 1 deletion src/pip/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from __future__ import annotations

__version__ = "25.3.dev0"
__version__ = "26.0.dev0"


def main(args: list[str] | None = None) -> int:
Expand Down
Loading