Let’s discuss all that, but I consider it out of scope here.
This is not the “entrypoint API changes I’d like in 3.15” PEP. It’s compatible with my planned next steps; I believe it’s compatible enough with yours; and I believe it’ll be a net benefit even if ($DEITY forbid) none of the next steps make it.
Trouble is, I think Cython is better off generating both versions directly, rather than using a generic C macro that covers all the bases.
(I do have ideas for a more autogeneration-friendly format, but that’s for a whole different PEP.)
Deprecating only single-phase init feels off-topic for this PEP, and has its own discussion thread.
Deprecating the current multi-phase can’t quite begin for 5 years at the very least – when the new API will be supported by non-EOL versions of Python. And after those years, any deadline we set now is likely to just be discussed all over again. I guess we can set a timer now to start that discussion.
I’d rather discuss deprecations/removals in the stable ABI in general – we obviously need to break PEP 384’s “until Python 4” promise, and that alone feels like a vat of worms.