-
Notifications
You must be signed in to change notification settings - Fork 996
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PyPI reports traitlets 5.2.2.post0
exists
#12376
Comments
Possibly related to caching ala #12214 |
For reference, the file 5.2.2.post0 can be found on the 5.2.2 releases: https://pypi.org/project/traitlets/5.2.2/#files |
It appears to be a |
I'm not convinced it's Poetry's fault -- Poetry 1.2.1 and Poetry 1.2.2 only differ in the PyPI API they consult. Poetry 1.2.1 would use the JSON API to gather filenames; Poetry 1.2.2 uses the PEP 691 implementation to gather filenames. As determining what versions are available in the Simple API (whether HTML or JSON, PEP 503 or PEP 691) requires parsing filenames, PyPI is reporting that the spurious version exists, even if it's not reflected by the JSON API. I suspect that Warehouse somehow associated an uploaded .post0 release with 5.2.2 rather than creating a new release as one would expect. Try |
Maybe? The downgrade to poetry 1.2.1 shows the set of dependencies resolved working - resulting in
This is an interesting preposition, so let's explore that a bit! Looking at Sadly, we can no longer examine the GitHub Action execution logs or artifacts for 5.2.2 as they have expired: https://github.com/ipython/traitlets/actions/runs/2417447574 The GitHub tag for https://github.com/ipython/traitlets/releases/tag/5.2.2.post1 reflects a
Absolutely, it definitely exists, and is confirmed associated with the 5.2.2 release via the JSON API: $ curl -s https://pypi.org/pypi/traitlets/5.2.2/json | jq '.urls[] |select(.packagetype=="bdist_wheel") |.filename'
"traitlets-5.2.2.post0-py3-none-any.whl"
"traitlets-5.2.2-py3-none-any.whl" One of the Warehouse Admins should be able to dig up some of the Journal history to determine how that file arrived. Either via the Admin interface at https://pypi.org/admin/projects/traitlets/journals/ or via a SQL query like: SELECT version, action, submitted_date, submitted_by FROM journals WHERE name = 'traitlets' AND version LIKE '5.2.2%'; I'd expect to see entries like |
|
The issue can be found here: https://inspector.pypi.io/project/traitlets/5.2.2/packages/30/b6/43f78c203f11e7ce353ca7ca326332f8c020863b7904cc8aedea5a415f90/traitlets-5.2.2.post0-py3-none-any.whl/traitlets-5.2.2.dist-info/METADATA#line.3 The file This is probably a duplicate of #12316. |
Argh. Without metadata being served per PEP 658 here, it really seems like we can't win. I'm inclined to call this an issue with a bad package being uploaded by the traitlets authors, who likely need to delete the file in question. Technically we can defend against this in Poetry by checking the JSON API for files we discover using the PEP 691 API (we still rely on the JSON API for metadata, after all), but that strikes me as the wrong way to try and solve this. I think declaring it a user error that PyPI currently does not protect against is more likely the way to go. WDYT @dimbleby? |
yeah, seems like we've got to the bottom of this one
I don't immediately see a very straightforward way in the current code to have poetry tolerate this so from a poetry point of view I'd probably call this not-worth-the-trouble / MR-welcome-if-anyone-can-do-better. warehouse maintainers will decide whether #12316 adequately covers this case or whether it's useful to track it explicitly. |
|
@neersighted @dimbleby Is there a way the bad file can be corrected while we're working/deciding on defensive strategies so CI workflows can run? |
Actually, from the report it looks like |
I just yanked traitlets 5.2.2. |
@blink1073 Thank you! |
I think this issue can now be closed, and we should consider how to resolve prevention via #12316 |
I agree. |
Describe the bug
First noticed in
poetry
Issue #6826,commitizen
GitHub Actions CI workflows fail whenpoetry
resolvestraitlets
:Neither the PyPI release history nor the repo releases indicate a version
5.2.2.post0
was released. However, when we curlpypi.org
, we receive a hit for5.2.2.post0
:Expected behavior
PyPI
does not identifytraitlets==5.2.2.post0
as a released version with a wheel.To Reproduce
Please refer to the details in the
Describe the bug
section.My Platform
commitizen
GitHub Actions CI workflowpythonpackage.yml
ubuntu-latest
,macos-latest
,windows-latest
Additional context
See also
traitlets
Issue #729.The text was updated successfully, but these errors were encountered: