Closed kBite closed 2 months ago
Another option: replace notreallyaversion
with 9!0dev0+x
$ pip -V pip 24.2 from /home/dshaw/.pyenv/versions/3.11.8/lib/python3.11/site-packages/pip (python 3.11)
$ pip install 'requests==9!0dev0+x' ERROR: Ignored the following yanked versions: 2.32.0, 2.32.1 ERROR: Could not find a version that satisfies the requirement requests==9!0dev0+x (from versions: 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.6.6, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8, 0.8.9, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.6, 0.10.7, 0.10.8, 0.11.1, 0.11.2, 0.12.0, 0.12.1, 0.13.0, 0.13.1, 0.13.2, 0.13.3, 0.13.4, 0.13.5, 0.13.6, 0.13.7, 0.13.8, 0.13.9, 0.14.0, 0.14.1, 0.14.2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 2.0.0, 2.0.1, 2.1.0, 2.2.0, 2.2.1, 2.3.0, 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.6.0, 2.6.1, 2.6.2, 2.7.0, 2.8.0, 2.8.1, 2.9.0, 2.9.1, 2.9.2, 2.10.0, 2.11.0, 2.11.1, 2.12.0, 2.12.1, 2.12.2, 2.12.3, 2.12.4, 2.12.5, 2.13.0, 2.14.0, 2.14.1, 2.14.2, 2.15.1, 2.16.0, 2.16.1, 2.16.2, 2.16.3, 2.16.4, 2.16.5, 2.17.0, 2.17.1, 2.17.2, 2.17.3, 2.18.0, 2.18.1, 2.18.2, 2.18.3, 2.18.4, 2.19.0, 2.19.1, 2.20.0, 2.20.1, 2.21.0, 2.22.0, 2.23.0, 2.24.0, 2.25.0, 2.25.1, 2.26.0, 2.27.0, 2.27.1, 2.28.0, 2.28.1, 2.28.2, 2.29.0, 2.30.0, 2.31.0, 2.32.2, 2.32.3) ERROR: No matching distribution found for requests==9!0dev0+x
This works because:
9!
is the epoch, a part of the version specification I've never seen anyone use (please let's keep it that way)dev0
refers to being the first possible development version, my understanding is dev versions are not allowed to be uploaded to PyPI+x
is a local version identifier, my understanding is local identifiers are not allowed to be uploaded to PyPI
I will note, that notreallyaversion
was previously a valid legacy version (pre-PEP440), so replacing it with a PEP440 compliant version that is very unlikely to ever be used is no worse, even if it remains non-ideal solution.
Totally agree, it's at best a workaround.
An actual solution would leverage the new index versions
subcommand once it's stable.
Affected Puppet, Ruby, OS and module versions/distributions
How to reproduce (e.g Puppet code you use)
python::pip
fails to install withensure => 'latest'
Detecting
$latest_version
relys on parsing(from versions: ... )
pip (>= 24.1) does not return
(from versions: ... )
anymore.There is an undocumented (https://pip.pypa.io/en/stable/cli/), experimental command,
index versions
, that returns ...... but does not support programatic output yet (https://github.com/pypa/pip/issues/10983).