-
-
Notifications
You must be signed in to change notification settings - Fork 487
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
also migrate python 3.12 for numpy 2.0; "soft-close" 3.12 migration #5851
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
To understand correctly: This is now a combined migration that would pull a feedstock onto NumPy 2 and add Python 3.12 builds? OK with me, just want to make sure I understand it. |
Agreed this is fine but also maybe we just close the python 3.12 migration? That will have the same effect for PRs in the numpy2 migration and it is May anyways so why not? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to wait until a few numpy core maintainers have finished their disucssion as to whether or not python 3.9 should be even be included.
We still have around ~900 unmigrated feedstocks for 3.12 (see comment). I think this is probably too much...? Also, in recent years we've closed the 3.X migration once we started migrating for 3.{X+1}.
Yes exactly, and it overrides existing The downside is that we'd be migrating all python-feedstocks (not just all numpy ones), see same comment. |
That is also only a coincidence of someone spending time on the Python migrations in general. After 4-6 months most packages have been migrated to the new Python version or will never be migrated as they are no longer maintained. @ocefpaf or myself have gone through all open PRs in the last years and were able to migrate a lot of feedstocks were upstream was actively maintained and the feedstocks not. I think once someone has done some passes like that, we can close 3.12. |
Well, in that sense, going with the PR as-is would give every feedback another shot at being migrated for python 3.12, and with the attention the numpy2 migration will get, we could then definitely close it. But I'm also fine with closing the 312 migration beforehand to avoid the PR churn, if people prefer that overall. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My concerns are no longer. thank you for waiting.
Sorry if I'm missing something, but have we already tested these changes in a feedstock somewhere? |
Thanks @hmaarrfk. @conda-forge/core - I'd like to have some explicit (dis)agreement here... Do we:
I think 2. is more friendly to feedstocks that are "good citizens" and kept up-to-date, whereas 1. gives more time for people to finish migrating for 3.12, in exchange for more migration PR churn. |
Yes I did, but didn't push my changes, because the (already 2.0-migrated) feedstock didn't change - which is as it should be. |
So I tried out the NumPy 2 migrator on a feedstock that uses NumPy via Python only (no C API). Here is the PR: conda-forge/numcodecs-feedstock#106 AFAICT the only change it makes is adding If so, then the only reason the migrator will open a migration PR to a feedstock not using NumPy (in So how might we do this? Some options:
Please feel free to suggest more Admittedly all of these have their tradeoffs. That said, maybe this is a way we could find the balance between having the Python 3.12 migrator stay open a bit while keeping the NumPy 2 migrator focused on relevant feedstocks |
Thanks for the testing and additional ideas!
If I understand you correctly, then 1. & 2. need conda-forge/conda-forge-repodata-patches-feedstock#712, which has it's own set of problems (i.e. patching ~100k artefacts; though I'd be in favour of it...). Not sure about 3. - the thing needs to be rerender-proof. How would you add it in the piggyback so that it persists (except literally writing I think 4. is not feasible currently. There's a piggyback that attaches to some migration (or even all of them, if you really want), but it's not a migrator in and of itself that can be awaited (unlike the alt-arch migration).
To be fair, any feedstock that hasn't been rerendered in a few weeks will produce a non-empty diff upon rerendering, and so the bot will open a PR regardless, because it cannot (or at least does not) distinguish based on the kind of changes that the diff produces (c.f. regro/cf-scripts#2500). |
While waiting for responses here, I've started looking at winding down the python 3.12 migration: #5892 |
For now I've followed the good idea of @hmaarrfk in #5892 to "soft-close" the 3.12 migration, as in: apply the changes of the migrator to the global pinning already, but do not delete the migrator file. Compared to outright closing the migration, this has the advantage that we can still follow the bot's progress on the status page and the bot will also keep raising PRs for feedstocks once all their dependencies become available (even though, strictly speaking, a rerender of said feedstock would already pull in 3.12; feedstocks with missing dependencies would then have to add I've tested the state of this PR in conda-forge/pythran-feedstock#85 (the global pinning cannot be faked by |
This was just discussed in the core call and received a lot of support and no opposition. |
Thanks Axel! 🙏 |
Otherwise we'll need another migration just for 3.12, which is even more of a hassle than dealing with superfluous migrator PRs now. For more details/discussion, see conda-forge/conda-forge.github.io#1997