0.23 Release
With #3960 (the GIL Refs API removal) complete (thanks primarily to @Icxolu I think); I think we should consider what's remaining that blocks us from releasing 0.23.
I have been speaking to @ngoldbaum regarding Python 3.13 freethreaded support and am settled with the idea that to get something out there before 3.13 final releases it's realistic to aim for having a sound implementation in PyO3 but not necessarily the ideal one (e.g. semantics may be unhelpful and performance may be bad). We can discuss the exact details in #4265, though in general this means that for questions such as whether to switch to #[pyclass(frozen)] by default in this release I might prefer to wait until 0.24.
In terms of a list of things to do, I think this means that we need to resolve the final steps of the breaking changes:
- [ ] Finish the
IntoPyObjectintroduction - I think this this is just waiting on some reviews to make next steps (?) - [ ] Decide what to do about #4390 - given the design questions still there which I opened recently (😱), I am wondering whether we can wait until 0.24 for that change to avoid landing too much breakage to traits all in one go (?).
- [ ] I think
PyClass: Syncneeds to happen to make the freethreaded build sound and also resolves a part of #3658 anyway, so I intend to consider that relatively urgently.
Once those points are resolved (and we have enough of #4265 to make PyO3 sound), I would be quite keen to cut the 0.23 release so we don't stack up too many more breaking changes.
Is there anything I've missed?
Finish the IntoPyObject introduction - I think this this is just waiting on some reviews to make next steps (?)
Yes, I think the main part is how we want to deal with the constructors for collections, I think PySet (#4536) is pretty straight forward. PyList and PyTuple will need to become fallible (I worked on it here but haven't opened a PR yet, I will probably split that one). PyDict/IntoPyDict (#4493) is a bit more involved.
It's also still open how we want to continue with #4495.
Decide what to do about #4390 - given the design questions still there which I opened recently (😱), I am wondering whether we can wait until 0.24 for that change to avoid landing too much breakage to traits all in one go (?).
We also have to keep IntoPyObjectBound then, but I'm definitely open to keep that branch alive until 0.24.
Maybe we can also finish off #4364 for 0.23, I don't there is too much left there, probably just deciding whether we're good with the current solution and a rebase.
Also what about #3646?
Just throwing #4413 in the mix here, too...
For free-threading, I'd like to see my PRs (#4523, #4528, #4544, and #4546) as well as a few others (#4439, #4566, and #4512) merged. I think most of those are close to ready so hopefully after some code review passes that list will get smaller quickly.
Thanks all. Yes to all the above - will do my best to round-robin reviews for all of the above! 😄
@davidhewitt this can be closed, right?
Yes, thanks again to all involved!