Sourced from pip's changelog.
23.1 (2023-04-15)
Deprecations and Removals
- Remove support for the deprecated
--install-options
. ([#11358](https://github.com/pypa/pip/issues/11358) <https://github.com/pypa/pip/issues/11358>
_)--no-binary
does not implysetup.py install
anymore. Instead a wheel will be built locally and installed. ([#11451](https://github.com/pypa/pip/issues/11451) <https://github.com/pypa/pip/issues/11451>
_)--no-binary
does not disable the cache of locally built wheels anymore. It only means "don't download wheels". ([#11453](https://github.com/pypa/pip/issues/11453) <https://github.com/pypa/pip/issues/11453>
_)- Deprecate
--build-option
and--global-option
. Users are invited to switch to--config-settings
. ([#11859](https://github.com/pypa/pip/issues/11859) <https://github.com/pypa/pip/issues/11859>
_)- Using
--config-settings
with projects that don't have apyproject.toml
now prints a deprecation warning. In the future the presence of config settings will automatically enable the default build backend for legacy projects and pass the setttings to it. ([#11915](https://github.com/pypa/pip/issues/11915) <https://github.com/pypa/pip/issues/11915>
_)- Remove
setup.py install
fallback when building a wheel failed for projects withoutpyproject.toml
. ([#8368](https://github.com/pypa/pip/issues/8368) <https://github.com/pypa/pip/issues/8368>
_)- When the
wheel
package is not installed, pip now uses the default build backend instead ofsetup.py install
andsetup.py develop
for project withoutpyproject.toml
. ([#8559](https://github.com/pypa/pip/issues/8559) <https://github.com/pypa/pip/issues/8559>
_)Features
- Specify egg-link location in assertion message when it does not match installed location to provide better error message for debugging. (
[#10476](https://github.com/pypa/pip/issues/10476) <https://github.com/pypa/pip/issues/10476>
_)- Present conflict information during installation after each choice that is rejected (pass
-vv
topip install
to show it) ([#10937](https://github.com/pypa/pip/issues/10937) <https://github.com/pypa/pip/issues/10937>
_)- Display dependency chain on each Collecting/Processing log line. (
[#11169](https://github.com/pypa/pip/issues/11169) <https://github.com/pypa/pip/issues/11169>
_)- Support a per-requirement
--config-settings
option in requirements files. ([#11325](https://github.com/pypa/pip/issues/11325) <https://github.com/pypa/pip/issues/11325>
_)- The
--config-settings
/-C
option now supports using the same key multiple times. When the same key is specified multiple times, all values are passed to the build backend as a list, as opposed to the previous behavior, where pip would only pass the last value if the same key was used multiple times. ([#11681](https://github.com/pypa/pip/issues/11681) <https://github.com/pypa/pip/issues/11681>
_)- Add
-C
as a short version of the--config-settings
option. ([#11786](https://github.com/pypa/pip/issues/11786) <https://github.com/pypa/pip/issues/11786>
_)- Reduce the number of resolver rounds, since backjumping makes the resolver more efficient in finding solutions. This also makes pathological cases fail quicker. (
[#11908](https://github.com/pypa/pip/issues/11908) <https://github.com/pypa/pip/issues/11908>
_)- Warn if
--hash
is used on a line without requirement in a requirements file. ([#11935](https://github.com/pypa/pip/issues/11935) <https://github.com/pypa/pip/issues/11935>
_)- Stop propagating CLI
--config-settings
to the build dependencies. They already did not propagate to requirements provided in requirement files. To pass the same config settings to several requirements, users should provide the requirements as CLI arguments. ([#11941](https://github.com/pypa/pip/issues/11941) <https://github.com/pypa/pip/issues/11941>
_)- Support wheel cache when using
--require-hashes
. ([#5037](https://github.com/pypa/pip/issues/5037) <https://github.com/pypa/pip/issues/5037>
_)- Add
--keyring-provider
flag. See the Authentication page in the documentation for more info. ([#8719](https://github.com/pypa/pip/issues/8719) <https://github.com/pypa/pip/issues/8719>
_)- In the case of virtual environments, configuration files are now also included from the base installation. (
[#9752](https://github.com/pypa/pip/issues/9752) <https://github.com/pypa/pip/issues/9752>
_)Bug Fixes
- Fix grammar by changing "A new release of pip available:" to "A new release of pip is available:" in the notice used for indicating that. (
[#11529](https://github.com/pypa/pip/issues/11529) <https://github.com/pypa/pip/issues/11529>
_)- Normalize paths before checking if installed scripts are on PATH. (
[#11719](https://github.com/pypa/pip/issues/11719) <https://github.com/pypa/pip/issues/11719>
_)- Correct the way to decide if keyring is available. (
[#11774](https://github.com/pypa/pip/issues/11774) <https://github.com/pypa/pip/issues/11774>
_)
... (truncated)
6424ac4
Bump for release868338f
Update AUTHORS.txt4f3a4f7
Merge pull request #11919 from sbidoul/deprecate-legacy-ignore-config-setting...dbf4e68
Merge pull request #11897 from sbidoul/cache-hash-checking-sbiefe2d27
Further refactor is_wheel_from_cache4beca6b
Improve testbd746e3
Introduce ireq.cached_wheel_source_linkcaafe6e
Add a couple of assertsa6ef648
Rename original_link_is_in_wheel_cache to is_wheel_from_cacheff8c8e3
Cosmetics