-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
pip install pytest fails - Mo matching found for py>=1.5.0 for python3.3 #2966
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
Comments
Support for Python 3.3 was dropped, see the changelog. |
@ColinKennedy if you are using the latest |
It looks like the metadata did not get published correctly when pytest 3.3.0 was uploaded. Compare py 1.5.2, which has 'Requires Python' metadata on the page, with pytest 3.3.0, which does not. Unfortunately, this means that installing pytest fails on Python 3.3 rather than automatically falling back to an older version. |
it seems the wheel metadata is incorrect |
Unfortunately, the only way I can think of to fix this is to make a new release of pytest which can be installed on Python 3.3, and has a version number higher than Otherwise, it might get fixed in pip if it gets a proper dependency resolver - that was a GSoC project this year, but I haven't heard much about it. |
I used the automatic procedure detailed in HOWTORELEASE to generate and upload the package, what could have caused the missing header? An old |
@nicoddemus pip cant cause it - wheel looked recent, perhaps setuptools? |
I will verify the actual versions when I get home to see if they were the cause. |
wheel, setuptools or maybe twine (if you're using that). |
Here's the
Now with
|
Look at this file, I see that pytest releases are made through devpi. I've never used that; maybe it doesn't propagate the 'Requires-Python' metadata to PyPI. |
@takluyver the metadata is taken from the wheel, and the wheel doesnt contain it |
Or alternatively, publish a new release 3.3.1 that has the proper metadata and pull 3.3.0 from PyPI any distributions that are missing the metadata (wheel only apparently). |
I think you would have to delete 3.3.0 entirely, both wheel and sdist, to solve the problem that way. In the simple index, pip is looking for a |
I dare say this issue is a critical one. Some projects have adapted by dropping support for Python 2.6 and 3.3. Others may have worked around it by pinning to older versions of pytest, which isn't a sustainable approach, especially when the metadata provides a better mechanism for filtering releases based on supported Pythons. I don't have access to manage pytest releases myself, or I'd help directly. Is there any reason not to immediately cut a 3.3.1 from 3.3.0 and remove 3.3.0 from PyPI? And to prevent the resurgence of this issue, I suggest that releases should be cut mechanically using infrastructure resources like Travis CI to cut releases in a well-defined and visible environment. I've applied this approach in all of the projects I maintain and I'd be happy to help set that up for pytest too. |
@jaraco main blocker for this currently is the lack of commit/push automation in combination with regendoc/towncrier - else we could just use the combination of setuptools_scm and automate the uploads from travis |
pytest 3.3.1 was released and has the same issue, so that's another version that's going to need to be pulled to address this issue. |
Hi @jaraco!
We just released
@RonnyPfannschmidt I think @jaraco's point here is that the package generation should be done in a controlled environment, not necessarily the entire process be automated. If that's the suggestion, I think we could just push tags to an approved "release PR" (#2997) and the package generation/publication could be done from Travis. Besides the technical issues to address, there's some resistance from @hpk42 and @obestwalter (IIRC) about automating releases like this; they prefer some manual checking first. Particularly I'm a big fan of the "push-tag-to-release" workflow. :) |
Are you sure? I verified the package myself (both wheel and .tar.gz) and they did contain the "Python Requires" metadata. 😮 |
I'm not certain, but I don't see the Requires-Python in the metadata listing for pytest Whereas I do see it for py. |
@nicoddemus how did you upload them? @jaraco when the wheel is uploaded as second file, pypi skips the data, also twine seems to be required |
Just verified again:
|
Is it possible that this release flow is implicated, and that py doesn't use this flow? |
@RonnyPfannschmidt using Having the
I'm pretty sure |
@takluyver that seems possible, thanks for looking into it |
Just realized another disadvantage about dropping |
Yes, it's disruptive... and the longer 3.3.0/1 is out there, the more the disruption. I suggest that 3.3.2 should be released for as long as 3.3.0 was released with a warning that those versions go away, then they go away. |
Alternatively, maybe we can ask PyPI if we can hack into their DB and update the metadata for those packages. |
A thought: would it be possible for people still supporting Python 2.6 and 3.3 to conditionally pin their Lines 30 to 36 in a220a40
|
I think one issue here is that it's not possible to update metadata on packages on PyPI anymore. Before one was able to fix the Readme or other stuff via the "register" call. That is now gone. I'm pretty sure nobody wants to put that back for PyPI and instead wants to get warehouse out and fix it there. So I think it would be reasonable to ask the to fix it in the Database for 3.3.0 and 3.3.1. In the meantime, I'm looking into the devpi push issue devpi/devpi#480 |
Was something fixed on PyPI? The new pytest is now blocked on older PyPy3 https://travis-ci.org/fschulze/devpi/jobs/313430195 |
Doh, I misunderstood. With the correct metadata it should use the older release. |
I updated devpi.net with a pre-release. I made a test upload of pytest at https://devpi.net/fschulze/dev/pytest/3.3.1 and it now has the metadata. |
No resistance from me, really. the more automatic a release is, the less one can do wrong :) togetherwith pre-releases that would actually be my ideal scenario. |
That would be ideal solution: it will fix those releases without changing the actual package, and we won't risk further disruption for users using supported Python versions. Do you guys know who we can contact regarding this request? @dstufft? |
Judging from https://pypi.org/help/ the warehouse issue tracker may be a good place. https://github.com/pypa/warehouse/issues |
Thanks @fschulze! Opened up pypi/warehouse#2700. |
@nicoddemus so what do we do about the bad uploads - they break the builds and by now pulling will break pinned builds |
The warehouse guys seem to be happy to help us out, so we should go with
that solution.
Em dom, 24 de dez de 2017 08:32, Ronny Pfannschmidt <
[email protected]> escreveu:
… @nicoddemus <https://github.com/nicoddemus> so what do we do about the
bad uploads - they break the builds and by now pulling will break pinned
builds
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2966 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABCO_InoXUlrr-nwKKUf7Z_9eW0faYyZks5tDihRgaJpZM4QtzSl>
.
|
|
Thanks to the awesome help from @ewdurbin the metadata is now fixed for |
Thanks for all the hard work on this one. |
metadata is missing |
I'm using a tox environment and all of its tests pass in Python 2.7,3.4-6 except for in Python 3.3. It just started happening last night and persisted into this morning, both on my Linux environment locally and also remotely
Here is the log for when I try to run
Here's a report of the failing test remotely:
https://travis-ci.org/ColinKennedy/ways/jobs/308277578
That Travis-CI link refers to a log with more output. This pastebin link is that log: https://pastebin.com/rk8EUq0E
OS:
Ubuntu 16.04.2 LTS
I have a feeling this is simple user error on my part but it's hard to tell since I wiped my environment and am still getting the same error, locally and remotely. Any help would be greatly appreciated
The text was updated successfully, but these errors were encountered: