* Fix a bug in extras handling for link requirements (`#12372
* Fix mercurial revision "parse error": use ``--rev={ref}``
instead of ``-r={ref}`` (`#12373
- Finally drop csv23, it has been removed upstream since 2021.
``setup.py``.
- Use libalternatives instead of update-alternatives.
* Document that certain removals can be fast tracked.
* use %python_clone and %python_install_alternative for sip and
* Make the setup.py install deprecation warning less
noisy. We warn only when setup.py install succeeded and
setup.py bdist_wheel failed, as situations where both
fails are most probably irrelevant to this deprecation.
- 20.2.2
* Only attempt to use the keyring once and if it fails, don’t try
again. This prevents spamming users with several keyring unlock
* Fix regression that distributions in system site-packages are
not correctly found when a virtual environment is configured
* Disable caching for range requests, which causes corrupted
wheels when pip tries to obtain metadata using the feature
* Always use UTF-8 to read pyvenv.cfg to match the built-in venv.
* 2020 Resolver: Correctly handle marker evaluation in
constraints and exclude them if their markers do not match the
* Correctly find already-installed distributions with dot (.) in
* Trace a better error message on installation failure due to
* Fix SVN version detection for alternative SVN distributions.
* New resolver: Correctly include the base package when specified
* Use UTF-8 to handle ZIP archive entries on Python 2 according
to PEP 427, so non-ASCII paths can be resolved as expected.
* Add deprecation warning for invalid requirements format
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=113
- Bug Fixes
- Handle a timezone indicator of Z when parsing dates in the
self check. (#12338)
- Fix bug where installing the same package at the same time
with multiple pip processes could fail. (#12361)
- Update to 23.3:
- Process
- Added reference to vulnerability reporting guidelines to
pip's security policy.
- Features
- Improve extras resolution for multiple constraints on same
base package. (#11924)
- Improve use of datastructures to make candidate selection
1.6x faster. (#12204)
- Allow pip install --dry-run to use platform and ABI
overriding options. (#12215)
- Add is_yanked boolean entry to the installation report
(--report) to indicate whether the requirement was yanked
from the index, but was still selected by pip conform to
PEP 592. (#12224)
- Bug Fixes
- Ignore errors in temporary directory cleanup (show a
warning instead). (#11394)
- Normalize extras according to PEP 685 from package metadata
in the resolver for comparison. This ensures extras are
correctly compared and merged as long as the package
providing the extra(s) is built with values normalized
according to the standard. Note, however, that this
does not solve cases where the package itself contains
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=111
- Bug Fixes
- Handle a timezone indicator of Z when parsing dates in the
self check. (#12338)
- Fix bug where installing the same package at the same time
with multiple pip processes could fail. (#12361)
- Update to 23.3:
- Process
- Added reference to vulnerability reporting guidelines to
pip's security policy.
- Features
- Improve extras resolution for multiple constraints on same
base package. (#11924)
- Improve use of datastructures to make candidate selection
1.6x faster. (#12204)
- Allow pip install --dry-run to use platform and ABI
overriding options. (#12215)
- Add is_yanked boolean entry to the installation report
(--report) to indicate whether the requirement was yanked
from the index, but was still selected by pip conform to
PEP 592. (#12224)
- Bug Fixes
- Ignore errors in temporary directory cleanup (show a
warning instead). (#11394)
- Normalize extras according to PEP 685 from package metadata
in the resolver for comparison. This ensures extras are
correctly compared and merged as long as the package
providing the extra(s) is built with values normalized
according to the standard. Note, however, that this
does not solve cases where the package itself contains
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=109
- Update to 23.1.2
- Upgrade setuptools to 67.7.2
- 23.1.1:
- Revert #11487, as it causes issues with virtualenvs created by the
Windows Store distribution of Python. (#11987)
- Revert pkg_resources (via setuptools) back to 65.6.3
- Update documentation to reflect the new behavior of using the
cache of locally built wheels in hash-checking mode. (#11967)
- 23.1:
- Remove support for the deprecated --install-options. (#11358)
- --no-binary does not imply setup.py install anymore. Instead a
wheel will be built locally and installed. (#11451)
- --no-binary does not disable the cache of locally built wheels
anymore. It only means "don't download wheels". (#11453)
- Deprecate --build-option and --global-option. Users are invited to
switch to --config-settings. (#11859)
- Using --config-settings with projects that don't have a
pyproject.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)
- Remove setup.py install fallback when building a wheel failed for
projects without pyproject.toml. (#8368)
- When the wheel package is not installed, pip now uses the default
build backend instead of setup.py install and setup.py develop for
project without pyproject.toml. (#8559)
- Specify egg-link location in assertion message when it does not
match installed location to provide better error message for
debugging. (#10476)
- Present conflict information during installation after each choice
that is rejected (pass -vv to pip install to show it) (#10937)
- Display dependency chain on each Collecting/Processing log line.
(#11169)
- Support a per-requirement --config-settings option in requirements
files. (#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)
- Add -C as a short version of the --config-settings option.
(#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)
- Warn if --hash is used on a line without requirement in a
requirements file. (#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)
- Support wheel cache when using --require-hashes. (#5037)
- Add --keyring-provider flag. See the Authentication page in the
documentation for more info. (#8719)
- In the case of virtual environments, configuration files are now
also included from the base installation. (#9752)
- 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)
- Normalize paths before checking if installed scripts are on PATH.
(#11719)
- Correct the way to decide if keyring is available. (#11774)
- More consistent resolution backtracking by removing legacy hack
related to setuptools resolution (#11837)
- Include AUTHORS.txt in pip's wheels. (#11882)
- The uninstall and install --force-reinstall commands no longer
call normalize_path() repeatedly on the same paths. Instead, these
results are cached for the duration of an uninstall operation,
resulting in improved performance, particularly on Windows.
(#11889)
- Fix and improve the parsing of hashes embedded in URL fragments.
(#11936)
- When package A depends on package B provided as a direct URL
dependency including a hash embedded in the link, the
--require-hashes option did not warn when user supplied hashes
were missing for package B. (#11938)
- Correctly report requested_extras in the installation report when
extras are specified for a local directory installation. (#11946)
- When installing an archive from a direct URL or local file,
populate download_info.info.hashes in the installation report, in
addition to the legacy download_info.info.hash key. (#11948)
- 23.0.1:
- Change the hashes in the installation report to be a mapping. Emit
the archive_info.hashes dictionary in direct_url.json. (#11312)
- Implement logic to read the EXTERNALLY-MANAGED file as specified
in PEP 668. This allows a downstream Python distributor to prevent
users from using pip to modify the externally managed environment.
(#11381)
- Enable the use of keyring found on PATH. This allows keyring
installed using pipx to be used by pip. (#11589)
- The inspect and installation report formats are now declared
stable, and their version has been bumped from 0 to 1. (#11757)
- Wheel cache behavior is restored to match previous versions,
allowing the cache to find existing entries. (#11527)
- Use the "venv" scheme if available to obtain prefixed lib paths.
(#11598)
- Deprecated a historical ambiguity in how egg fragments in
URL-style requirements are formatted and handled. egg fragments
that do not look like PEP 508 names now produce a deprecation
warning. (#11617)
- Fix scripts path in isolated build environment on Debian. (#11623)
- Make pip show show the editable location if package is editable
(#11638)
- Stop checking that wheel is present when build-system.requires is
provided without build-system.build-backend as setuptools (which
we still check for) will inject it anyway. (#11673)
- Fix an issue when an already existing in-memory distribution would
cause exceptions in pip install (#11704)
OBS-URL: https://build.opensuse.org/request/show/1084785
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=103
* Deprecations and Removals
+ Deprecate installation with setup.py install when no-binary is enabled
for source distributions without pyproject.toml. (#11452)
+ Deprecate installation with setup.py install when the wheel package is
absent for source distributions without pyproject.toml. (#8559)
+ Drop --use-deprecated=out-of-tree-build. (#11001)
* Features
+ Use the data-dist-info-metadata attribute from PEP 658 to resolve
distribution metadata without downloading the dist yet. (#11111)
+ Add --dry-run option to pip install, to let it print what it would
install but not actually make changes in the target environment. (#11096)
+ Add pip inspect command to obtain the list of installed distributions
and other information about the Python environment, in JSON. (#11245)
+ Add option to install and uninstall commands to opt-out from
running-as-root warning. (#10556)
+ Add a user interface for supplying config settings to build backends.
(#11059)
+ Explains why specified version cannot be retrieved when Requires-Python
is not satisfied. (#9615)
+ Validate build dependencies when using --no-build-isolation. (#9794)
* Bug Fixes
+ Fix entry point generation of pip.X, pipX.Y, and easy_install-X.Y to
correctly account for multi-digit Python version segments. (#11547)
+ Fix --no-index when --index-url or --extra-index-url is specified
inside a requirements file. (#11276)
+ Ignore distributions with invalid Name in metadata instead of crashing,
when using the importlib.metadata backend. (#11352)
+ Raise RequirementsFileParseError when parsing malformed requirements
options that can’t be sucessfully parsed by shlex. (#11491)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=101
- Drop the doctype check, that presented a warning for index
pages that use non-compliant HTML 5.
- Update to 22.0.3:
- Print the exception via rich.traceback, when running with
--debug.
- Only calculate topological installation order, for packages
that are going to be installed/upgraded.
- This fixes an AssertionError that occured when determining
installation order, for a very specific combination of
upgrading-already-installed-package + change of dependencies
+ fetching some packages from a package index. This
combination was especially common in Read the Docs'
builds.
- Use html.parser by default, instead of falling back
to html5lib when --use-deprecated=html5lib is not
passed.
- Clarify that using per-requirement overrides disables the
usage of wheels.
- Update to 22.0.2:
- Instead of failing on index pages that use non-compliant
HTML 5, print a deprecation warning and fall back to
html5lib-based parsing for now. This simplifies the migration
for non-compliant index pages, by letting such indexes
function with a warning.
- Update to 22.0.1:
- Accept lowercase <!doctype html> on index pages.
- Properly handle links parsed by html5lib, when using
--use-deprecated=html5lib.
- Update to 22.0:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=96
* Always refuse installing or building projects that have no ``pyproject.toml`` nor
``setup.py``.
* Tweak running-as-root detection, to check ``os.getuid`` if it exists, on
Unix-y and non-Linux/non-MacOS machines.
* When installing projects with a ``pyproject.toml`` in editable mode, and the build
backend does not support :pep:`660`, prepare metadata using
``prepare_metadata_for_build_wheel`` instead of ``setup.py egg_info``. Also, refuse
installing projects that only have a ``setup.cfg`` and no ``setup.py`` nor
``pyproject.toml``. These restore the pre-21.3 behaviour.
* Restore compatibility of where configuration files are loaded from on MacOS
* Upgrade pep517 to 0.12.0
* Improve deprecation warning regarding the copying of source trees when
installing from a local directory.
* Suppress location mismatch warnings when pip is invoked from a Python source
tree, so ``ensurepip`` does not emit warnings on CPython ``make install``.
* On Python 3.10 or later, the installation scheme backend has been changed to use
``sysconfig``. This is to anticipate the deprecation of ``distutils`` in Python
3.10, and its scheduled removal in 3.12. For compatibility considerations, pip
installations running on Python 3.9 or lower will continue to use ``distutils``.
* Remove the ``--build-dir`` option and aliases, one last time.
* In-tree builds are now the default. ``--use-feature=in-tree-build`` is now
ignored. ``--use-deprecated=out-of-tree-build`` may be used temporarily to ease
the transition.
* Un-deprecate source distribution re-installation behaviour.
* Replace vendored appdirs with platformdirs.
* Support `PEP 610 <https://www.python.org/dev/peps/pep-0610/>`_ to detect
editable installs in ``pip freeze`` and ``pip list``. The ``pip list`` column output
has a new ``Editable project location`` column, and the JSON output has a new
``editable_project_location`` field.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=92
- Update to 20.2.4:
Deprecations and Removals
* Document that certain removals can be fast tracked.
* Document that Python versions are generally supported until
PyPI usage falls below 5%
Features
* New resolver: Avoid accessing indexes when the installed
candidate is preferred and considered good enough
* Improve error message friendliness when an environment
has packages with corrupted metadata
* Cache package listings on index packages so they are guarenteed
to stay stable during a pip command session. This also improves
performance when a index page is accessed multiple times during
the command session
* New resolver: Tweak resolution logic to improve user experience
when user-supplied requirements conflict
Bug Fixes
* New resolver: Correctly respect ``Requires-Python`` metadata
to reject incompatible packages in ``--no-deps`` mode
* New resolver: Pick up hash declarations in constraints files
and use them to filter available distributions
* New resolver: If a package appears multiple times in user
specification with different ``--hash`` options, only hashes
that present in all specifications should be allowed
OBS-URL: https://build.opensuse.org/request/show/860101
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=90
- add setuptools-45.1.0-py3-none-any.whl for testsuite
* Fix a regression in generation of compatibility tags
* Rename an internal module, to avoid ImportErrors due to improper uninstallation
* Switch to a dedicated CLI tool for vendoring dependencies.
* Remove wheel tag calculation from pip and use packaging.tags. This should provide more tags ordered better than in prior releases.
* Deprecate setup.py-based builds that do not generate an .egg-info directory.
* The pip>=20 wheel cache is not retro-compatible with previous versions. Until pip 21.0, pip will continue to take advantage of existing legacy cache entries.
* Deprecate undocumented --skip-requirements-regex option.
* Deprecate passing install-location-related options via --install-option.
* Use literal "abi3" for wheel tag on CPython 3.x, to align with PEP 384 which only defines it for this platform.
* Remove interpreter-specific major version tag e.g. cp3-none-any from consideration. This behavior was not documented strictly, and this tag in particular is not useful. Anyone with a use case can create an issue with pypa/packaging.
* Wheel processing no longer permits wheels containing more than one top-level .dist-info directory.
* Support for the git+git@ form of VCS requirement is being deprecated and will be removed in pip 21.0. Switch to git+https:// or git+ssh://. git+git:// also works but its use is discouraged as it is insecure.
* Default to doing a user install (as if --user was passed) when the main site-packages directory is not writeable and user site-packages are enabled.
* Warn if a path in PATH starts with tilde during pip install.
* Cache wheels built from Git requirements that are considered immutable, because they point to a commit hash.
* Add option --no-python-version-warning to silence warnings related to deprecation of Python versions.
* Cache wheels that pip wheel built locally, matching what pip install does. This particularly helps performance in workflows where pip wheel is used for building before installing. Users desiring the original behavior can use pip wheel --no-cache-dir
* Display CA information in pip debug.
* Show only the filename (instead of full URL), when downloading from PyPI.
* Suggest a more robust command to upgrade pip itself to avoid confusion when the current pip command is not available as pip.
* Define all old pip console script entrypoints to prevent import issues in stale wrapper scripts.
* The build step of pip wheel now builds all wheels to a cache first, then copies them to the wheel directory all at once. Before, it built them to a temporary directory and moved them to the wheel directory one by one.
* Expand ~ prefix to user directory in path options, configs, and environment variables. Values that may be either URL or path are not currently supported, to avoid ambiguity:
--find-links
--constraint, -c
--requirement, -r
--editable, -e
* Correctly handle system site-packages, in virtual environments created with venv (PEP 405).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=76
- Update to version 19.3.1
* Document Python 3.8 support.
* Fix bug that prevented installation of PEP 517 packages without setup.py.
* Remove undocumented support for un-prefixed URL requirements pointing to SVN repositories.
* Remove the deprecated --venv option from pip config.
* Make pip show warn about packages not found.
* Abort installation if any archive contains a file which would be placed outside the extraction location.
* pip's CLI completion code no longer prints a Traceback if it is interrupted.
* Ignore errors copying socket files for local source installs (in Python 3).
* Skip copying .tox and .nox directories to temporary build directories
* Ignore "require_virtualenv" in pip config
OBS-URL: https://build.opensuse.org/request/show/741057
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=74
* Fix a ``NoneType`` ``AttributeError`` when evaluating hashes and no hashes provided
* Drop support for EOL Python 3.4.
* Credentials will now be loaded using keyring when installed
* Fully support using --trusted-host inside requirements files
* Update timestamps in pip's --log file to include milliseconds
* Respect whether a file has been marked as "yanked" from a simple repository (see PEP 592 for details)
* When choosing candidates to install, prefer candidates with a hash matching one of the user-provided hashes
* Improve the error message when METADATA or PKG-INFO is None when accessing metadata
* Add a new command pip debug that can display e.g. the list of compatible tags for the current Python
* Display hint on installing with --pre when search results include pre-release versions
* Report to Warehouse that pip is running under CI if the PIP_IS_CI environment variable is set
* Allow --python-version to be passed as a dotted version string (e.g. 3.7 or 3.7.3)
* Log the final filename and SHA256 of a .whl file when done building a wheel
* Include the wheel's tags in the log message explanation when a candidate wheel link is found incompatible
* Add a --path argument to pip freeze to support --target installations
* Add a --path argument to pip list to support --target installations
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=70
- Update to version 19.1.1+git.1557777841.63878672:
* Update news file to match usual style
* fix-5963: assert error message
* Simplify CandidateEvaluator.evaluate_link().
* Fix 6486 mac gitignore (#6487)
* Store instances in the VcsSupport registry instead of classes.
* Remove unused cls argument from VcsSupport.unregister().
* fix-5963: Add news file
* fix-5963: fail elegantly on missing name or section in config set / unset
* Remove unnecessary slices.
* Fix typo.
- Switch to multibuild, so testing is separate from the building
of the package itself.
OBS-URL: https://build.opensuse.org/request/show/703184
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=66
- Update to version 19.1.1+git.1557521541.a731e7e3:
* Docs: capitalize "URL"
* Upgrade Sphinx version for Read the Docs (#6477)
* Upwrap import
* Remove utils/packaging.py's dependence on the current environment.
* Improve import error handling Fix --no-index usage Fix missing type annotation type
* Rename _link_package_versions() to evaluate_link().
* Move _link_package_versions() to CandidateEvaluator.
* Refine return type of _package_versions() and find_all_candidates().
* Fix mismerged import
* Issue #5948: Enable keyring support
* Move run_with_log_command() after run_stderr_with_prefix().
* Change to never allow logging errors during tests.
* Add failing test.
* Respect --global-option and --install-option for VCS installs.
- Start using upstream git checkout instead of the released
tarballs so we can get tests/ directory (gh#pypa/pip#6258).
- Enable tests.
- Update to 19.1.1:
- Restore pyproject.toml handling to how it was with pip 19.0.3
to prevent the need to add --no-use-pep517 when installing in
editable mode. (#6434)
- Fix a regression that caused @ to be quoted in pypiserver
links. This interfered with parsing the revision string from
VCS urls. (#6440)
- Configuration files may now also be stored under sys.prefix
(#5060)
- Avoid creating an unnecessary local clone of a Bazaar branch
when exporting. (#5443)
OBS-URL: https://build.opensuse.org/request/show/702370
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=65
- Update to 19.0.2 (2019-02-09):
+ Bug Fixes
* Fix a crash where PEP 517-based builds using --no-cache-dir
would fail in some circumstances with an AssertionError due
to not finalizing a build directory internally. (#6197)
* Provide a better error message if attempting an editable
install of a directory with a pyproject.toml but no setup.py.
(#6170)
* The implicit default backend used for projects that provide a
pyproject.toml file without explicitly specifying build-
backend now behaves more like direct execution of setup.py,
and hence should restore compatibility with projects that
were unable to be installed with pip 19.0. This raised the
minimum required version of setuptools for such builds to
40.8.0. (#6163)
* Allow RECORD lines with more than three elements, and display
a warning. (#6165)
* AdjacentTempDirectory fails on unwritable directory instead
of locking up the uninstall command. (#6169)
* Make failed uninstalls roll back more reliably and better at
avoiding naming conflicts. (#6194)
* Ensure the correct wheel file is copied when building PEP 517
distribution is built. (#6196)
* The Python 2 end of life warning now only shows on CPython,
which is the implementation that has announced end of life
plans. (#6207)
+ Improved Documentation
* Re-write README and documentation index (#5815)
- Update to 19.0.1 (2019-01-23):
+ Bug Fixes
OBS-URL: https://build.opensuse.org/request/show/673419
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=60
- update to 18.0
- refresh pip-8.1.2-shipped-requests-cabundle.patch
* drop python 3.3 support
* Remove the legacy format from pip list.
* Remove support for cleaning up #egg fragment postfixes
* Remove the shim for the old get-pip.py location
* Introduce a new --prefer-binary flag, to prefer older wheels
over newer source packages.
* Improve autocompletion function on file name completion
* Add support for installing PEP 518 build dependencies from source
* Improve status message when upgrade is skipped due to only-if-needed strategy
OBS-URL: https://build.opensuse.org/request/show/624890
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=54