Skip to content
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

maint: req py36+ and jh 1.5.1+, fix tests, add RELEASE.md, add pre-commit hooks, add dependabot #273

Merged
merged 18 commits into from
Oct 19, 2023

Conversation

consideRatio
Copy link
Member

@consideRatio consideRatio commented Jun 19, 2023

This PR is making some progress towards general maintenance needs tracked in #270, doing things done for other repos in the jupyterhub org.

It is a large PR that combines various things that could be made into at least some separate PRs, but has for now been combined to avoid merge conflicts. If its too much work to review in this form or needs various updates, I'll try to extract a few PRs to make it easier to review going onwards.

@consideRatio consideRatio force-pushed the pr/general-maint branch 2 times, most recently from 99f20c9 to bc3248e Compare June 19, 2023 08:40
@consideRatio consideRatio marked this pull request as draft June 19, 2023 08:56
@consideRatio consideRatio force-pushed the pr/general-maint branch 5 times, most recently from 29fa83f to 6052f1a Compare June 19, 2023 13:44
@consideRatio consideRatio changed the title maint: req py37+ and jh 1.5.1+, test jh 4, add RELEASE.md and pre-commit hooks maint: req py37+ and jh 1.5.1+, fix tests, add RELEASE.md, add pre-commit hooks, add dependabot Jun 19, 2023
@consideRatio consideRatio marked this pull request as ready for review June 19, 2023 13:49
@consideRatio
Copy link
Member Author

Ping also to @rkdarst who has contributed a lot to this repo!

Copy link
Contributor

@ryanlovett ryanlovett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this @consideRatio !

I personally am okay with pushing minimum dependencies forward, but system-python users on older distributions may feel differently. I defer to @mbmilligan, who also worked on the test matrix some months back.

.github/workflows/test.yaml Outdated Show resolved Hide resolved
matrix:
include:
# test oldest supported version
- python-version: "3.7"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When @mbmilligan was working on #252, I think the user community mentioned that 3.6 was the default python on the Red Hat distributions they were using. I believe the feedback was they tended to use the system python rather than containers or virtual environments. It may have been discussed at the Sep. 2022 meeting.

I don't know if anyone affected by bumping minimum python would be okay with not being able to use the latest batchspawner. However this change is reasonable to me since it is feasible to run jupyterhub in a container or virtual environment on top of older distributions/kernels.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I found these notes:

image


For reference, Python 3.7 reaches end-of-life state 28th June.

image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given most HPC systems run some variant of CentOS, and RH technically provides security support for packages in it until EOL, https://endoflife.date/centos is also relevant. And that ends in 2024. And then I think there's going to be a fairly delayed migration, as IBM bought RedHat and totally fucked everything up over the last few years :D

So I think it would be useful to not drop 3.6 support as part of this PR, because batchspawner / HPC systems have unfortunately different needs than the rest of the ecosystem. I'm very much pro dropping 3.6 support, just in a separate PR to unblock merging this one.

batchspawner/api.py Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
@mbmilligan
Copy link
Member

@consideRatio
Hi Erik, just to note that this is much needed work and I'm really happy to see you taking it on! I'm on vacation through July 5 so I probably won't have time to dig into a review before then.

@consideRatio
Copy link
Member Author

Hi @mbmilligan I hope you are well!

Do you think you will find time to review this PR and others to get us towards a release? I also wondered if you feel that its fine if someone else in the jupyterhub team reviewed and merged some PRs?

@mbmilligan
Copy link
Member

mbmilligan commented Sep 19, 2023 via email

Copy link
Contributor

@yuvipanda yuvipanda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As someone who doesn't run HPC systems nor has to maintain anything on CentOS (praise be!), I'm happy to merge this PR if python 3.6 removal is split out into a different PR. I would like someone from batchspawner / HPC community to make that choice as I don't feel qualified to make that.

Thank you so much for working on this, @consideRatio

@yuvipanda
Copy link
Contributor

Upon re-reading @mbmilligan's comment in #273 (comment), let me amend to say that I'm very happy to approve all the changes except for 3.6 support dropping. My interpretation of the comment is that @mbmilligan would still prefer to be the one pushing the merge button so am happy to leave that up to them :)

@consideRatio consideRatio changed the title maint: req py37+ and jh 1.5.1+, fix tests, add RELEASE.md, add pre-commit hooks, add dependabot maint: req py36+ and jh 1.5.1+, fix tests, add RELEASE.md, add pre-commit hooks, add dependabot Sep 23, 2023
For reference note that JupyterHub 3 and 4 requires python 3.7, so
batchspawner of a modern version on python 3.6 will probably use
JupyterHub 1 or 2.
@consideRatio
Copy link
Member Author

Thanks for reviewing @yuvipanda and @mbmilligan!

I've pushed a commit reverting dropping support for python 3.6. For reference note that jupyterhub 3 requires python 3.7, so users with python 3.6 are stuck with jupyterhub 2 for now also.

I also pushed a code coverage related config omitting coverage of tests.

Copy link
Contributor

@yuvipanda yuvipanda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @consideRatio! This looks good to me.

@yuvipanda
Copy link
Contributor

I've reviewed and approved this, @mbmilligan! I am not 100% sure if your comment meant you want to be the person hitting merge, so I'll just give this a few days before I hit merge :)

@yuvipanda
Copy link
Contributor

yuvipanda commented Sep 27, 2023

@consideRatio I think you can also have the 3.6 drop as a separate PR! I personally think it's ok to drop that, but I'd like someone from the HPC community to make that choice. We can definitely 100% do so once CentOS EOLs in 2024, but hopefully someone from the community chimes in and says it's ok to do now :D

@mahendrapaipuri
Copy link
Contributor

We use batchspawner on our HPC platform and well, we dont really rely on python distribution shipped out of OS. We install all Jupyter related stack in a separate conda/mamba environment. Moreover JupyterHub 4+ supports only Python 3.8+, so, I do not really see a point on supporting Python 3.6+ for batchspawner.

Saying so, I agree with @yuvipanda that we should drop support for Python 3.6 in a separate PR. This is due to the fact that there is no release of batchspawner that supports JupyterHub 3.* (#277) which supports Python 3.7. So, I think it makes sense to make a release that is compatible with JupyterHub 3.* and then drop support for the next releases that are meant for JupyterHub 4.*.

@yuvipanda
Copy link
Contributor

@mbmilligan are you ok with me merging this PR now?

@mbmilligan
Copy link
Member

@mbmilligan are you ok with me merging this PR now?

Thanks for the ping and for the work pushing this forward. Merging now.

@mbmilligan
Copy link
Member

We use batchspawner on our HPC platform and well, we dont really rely on python distribution shipped out of OS. We install all Jupyter related stack in a separate conda/mamba environment. Moreover JupyterHub 4+ supports only Python 3.8+, so, I do not really see a point on supporting Python 3.6+ for batchspawner.

Saying so, I agree with @yuvipanda that we should drop support for Python 3.6 in a separate PR. This is due to the fact that there is no release of batchspawner that supports JupyterHub 3.* (#277) which supports Python 3.7. So, I think it makes sense to make a release that is compatible with JupyterHub 3.* and then drop support for the next releases that are meant for JupyterHub 4.*.

That was my thinking as well. I'll merge this PR now and set up a release, and after that release we can drop additional support lines.

@mbmilligan mbmilligan merged commit 860d9b8 into jupyterhub:main Oct 19, 2023
9 checks passed
@yuvipanda
Copy link
Contributor

Thank you for the merge, @mbmilligan!

And thank you for doing all this work, @consideRatio!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants