httpbin icon indicating copy to clipboard operation
httpbin copied to clipboard

remove redundant greenlet dependency

Open graingert opened this issue 1 year ago • 12 comments

graingert avatar Jul 30 '24 09:07 graingert

I'm currently investigating https://github.com/kevin1024/vcrpy/issues/848 and so running the pytest-httpbin tests on 3.13 with https://github.com/kevin1024/pytest-httpbin/pull/90 but I'm blocked on greenlet supporting 3.13

graingert avatar Jul 30 '24 09:07 graingert

Thanks for the PR, @graingert. I think Kevin was the one who reviewed the addition of greenlet as a direct dependency. I'm trying to find context for its addition and the only piece I can come up with is here.

This suggests the process cannot run in the docker image without it. I haven't taken a look at any of this yet, but we may want to verify/disprove that claim before making changes here.

Unrelated, I see macOS is having a hard time, likely due to the ARM image changes from a few months ago. I'll take a look at getting that fixed so it's decoupled from this PR.

nateprewitt avatar Aug 08 '24 14:08 nateprewitt

@nateprewitt

This suggests the process cannot run in the docker image without it.

greenlet is pulled in as a dependency of gevent, this override was only needed to get pip to install a pre release version of greenlet on 3.12. This dependency override should only have been added to the 'mainapp' extras.

greenlet now supports 3.12 in a mainline release so this dependency is redundant

graingert avatar Aug 08 '24 15:08 graingert

I'm referring specifically to this part of the comment I linked:

The cleanup of the dependencies I did recently removed a dependency which was needed after-all. The image built fine without it, but the process did not start.

Greenlet was previously deleted during that PR process and had to be readded because it broke the docker image. I agree it should come in with gevent, but there is likely something else incorrectly defined that's not resulting in all dependencies ending up in the image.

nateprewitt avatar Aug 08 '24 15:08 nateprewitt

Yeah it was added so that python 3.12 would install a pre release version of greenlet

Once greenlet has release a full/final 3.x release it would be good to simplify these dependencies.

This final release is now available

graingert avatar Aug 08 '24 15:08 graingert

CI currently failing due to python 3.7 missing from GitHub actions' setup-python and failing brotlicffi. Something similar to https://github.com/kevin1024/pytest-httpbin/pull/89/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R81 will need to be applied

graingert avatar Aug 08 '24 15:08 graingert

Also it looks like something is wrong with the ci matrix, this pypy3.10 build is failing due to a cpython 3.9 exception https://github.com/psf/httpbin/actions/runs/10178190245/job/28513362402?pr=51

graingert avatar Aug 08 '24 15:08 graingert

Yeah it was added so that python 3.12 would install a pre release version of greenlet

Totally, I understand why the branching end up there. What I was concerned about was this commit (https://github.com/psf/httpbin/pull/17/commits/4759eb1e2fbb949245b20fd6859dbfb33980ddc5) which seems to have happened prior to the Python 3.12 issues being identified. This is how greenlet entered the declared dependency closure. If we're highly confident this was a misidentified issue, we can test out of the docker image.

For CI, yes, we need to fix the bare tox command being run because it's testing every version in every build.

nateprewitt avatar Aug 08 '24 15:08 nateprewitt

The magic words:

so we can resolve https://github.com/psf/httpbin/pull/51.

Closed this lol

graingert avatar Aug 08 '24 16:08 graingert

@nateprewitt can you take a look at this? I'd like to get 3.13 support landed in vcrpy and pytest-httpbin before the final release of 3.13

graingert avatar Sep 03 '24 11:09 graingert

I've got this on my list for review next week. We should be able to get a release out then.

nateprewitt avatar Sep 13 '24 18:09 nateprewitt

@nateprewitt greenlet now has support for python 3.13 so this is not critical - would still be useful for when 3.14 is in beta

graingert avatar Sep 18 '24 13:09 graingert