-
Notifications
You must be signed in to change notification settings - Fork 86
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
Test new python versions #324
base: main
Are you sure you want to change the base?
Conversation
Supposedly pyimagej works for Python 3.11, 3.12, 3.13, but we don't test/advertise it
Thanks @gselzer for taking a look at this. I thought it over and I'm in favor of testing additional Python versions but I do not want to have more test environments than needed. To date it seems like our approach hasn't cause us major issues. Given that, here is the official Python status tracker. From what I can tell 5 versions are always "active" (at the time of writing this post, these versions are This also aligns well with our |
This commit bumps the minimum Python version to 3.9, mathcing the current officially supported minimum version. This commit also increases the total number of tested Python versions to 5, again matching the officially supported Python versions.
We recommend installing openjdk=11, so we should also test with it.
I'd agree. I believe that at a minimum we should test two python versions:
If you want to test more, there's not really harm, just inconvenience in the CI checks taking longer. My question, then, is what the benefit might be - it's very rare for code to work in e.g. 3.8 and 3.13 but not in e.g. 3.11. If you have a concern that would be solved by checking more versions, we could add them, just seems like additional headache in all of our builds. As far as version end of life is concerned, I like to follow @ctrueden's approach of "why remove it"? If there's some Python vulnerability we need to avoid or new feature we want to utilize, makes sense, but bumping the minimum version just to bump the minimum version seems unnecessary. I also see you bumped the CI Java version to 11, which inherently isn't a bad thing, but is related to the discussion. We could consider adding Java versions to the matrix as well, like we do in napari-imagej |
In addition to @gselzer's comments (with which I agree), another consideration for how to configure the test matrix is simply being a good citizen of the free OSS cloud. Testing 3×OS × 5×Pythons × 4×Javas (e.g. 8, 11, 17, 21), while comprehensive (and not necessarily slower, with containers running in parallel), would be spinning up 60 containers on every single push, which feels wasteful and irresponsible to me. Even if we install all 5×4 Python+Java versions into the same container, to reduce the matrix to 3, it's still going to be doing 20× compute compared to a single Python+Java version. That's why I like the middle ground of "lowest+highest" for each: 3×OS × 2×Python × 2×Java is only 12 combinations rather than 60. |
Depending on how we do it, it could be slower, as there is a limit on how many jobs we can run concurrently. |
Supposedly pyimagej works for Python 3.11, 3.12, 3.13, but we don't test/advertise it
Thoughts here @elevans?