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
Start Python 3.12 migration with the release candidate #2004
Comments
One thing that's unrelated to the rc, but related to 3.12, is that - AFAICT - we haven't yet really discussed the implications of PEP602 for conda-forge1. Key point being that Pythons versions which had been released in an 18 months cadence are fading away, while being replaced by new versions in a 12 months cadence. We've now reached the new steady-state (one new release per year, one release EOL per yer), because 3.8 was the first to start the October-only releases, and it's been yearly ever since. If we keep going as recently (drop oldest CPython when we add the newest one) this would mean that we'd be dropping support for 3.8 a full year before its upstream 5 year EOL, which is probably going to cause some grief. The math is against us there: yearly releases + 5 years of upstream support means that if we want to match that, we have to - on average - also build for 5 CPython version everywhere. Or live with the fact that we drop support after 4 years... (the slow coming-of-age of the limited API may help a bit, but probably not by much). Footnotes
|
Small update here:
|
Started the migration: conda-forge/conda-forge-pinning-feedstock#4914 |
Since the migration is now in progress, can we close this issue? Or is there more still to do here? |
The last step |
Thanks Uwe! 🙏 |
Building upon #1499 and #1629 (cc @h-vetinari), I would like to start another approach and build Python packages with the release candidate before the final release.
How to do this
conda-forge/labels/python_rc
. By not having the RC on the main label, users will not be able to get Python 3.12 environments by chance, only if explicitly requested. We have a green build for rc2 ready at Python 3.12.0rc2 python-feedstock#636What if things go wrong?
We can easily mark builds as broken. In the case that this really happens, we have built a script as part of step 3. We would simply run this.
Will end-users end up with pre-release Python 3.12 environments?
No, the built packages will be all uploaded to the main channel except the one for Python itself. Thus
python=3.12
won't be solvable until the final release has been built. The packages in CI can be built because there we are adding an additional channel.What happens if there will be ABI breakage between the RC and the final release?
This is a very unlikely case and as outlined in numpy/numpy#19630 between the RCs and the final release are stricter requirements for changes than between patch releases.
If this still happens, we would simply mark all existing builds as broken using the script from point 3 and restart the migrator.
The text was updated successfully, but these errors were encountered: