This broke a lot of stuff for us at work today. Building the wheels or something I can’t remember. The fix was forcing pip to use not the 3.x and use something older I think.
Pinning depends on the requirements you as the consumer have, and the specific package manager (pip, conda, poetry, etc.) so it's hard to give guidance that's helpful when you're a library maintainer. Generally when consuming any dependency you should pin though...
Just so anyone who reads this has the version: cython<=0.29.36 is the most recent non 3.0.0 version.
As always: pin your dependencies.
Sadly, it's not always that simple. If one of your well-pinned packages has a build dependency which is not correctly pinned, then you're subject to the problem.
You raise a great point. I believe cached builds, say with Nix, are the way to go. What do you do?