I just stumbled upon this thread - a bit late yes, but I am not sure what’s the current status - maybe someone can enlighten me?
For the record - I am Airflow maintainer who created, developed and perfected our constraint mechanism for the last few years. We needed it badly. We could not get standard support for it so we went with our own ways. And it saved us myriad of times.
Our users who follow "installation with constraints” are automatically saved from their installations falling because package a released a breaking version even in patchlevel release (last time it happend was 10 days ago, but it is already maybe 20-30 times over the last five years). And we have a super easy advice to our users when it happens when they don’t use constraints. Just go and use constraints Installation from PyPI — Airflow 3.1.1 Documentation .
At the same time (and more importantly) this is a fantastic mechanism for the open-source project like Airflow to get prepared for regulation in security space (like the CRA Page not found | Shaping Europe’s digital future ). We do not “pin” our dependencies - we pretty much exclusively never upper-bind any dependencies, PRECISELY becasue we have the escape hatch that constraints give us - we can always tell our users “use constraints if this new release of package b broke things”. And - at the same time - the lack of upper-binding of our dependencies makes it possible by our users (i.e. manufacturers in terms of the CRA) to upgrade problematic dependencies of ours that have vulnerabilities on their own - without waiting for us to relase a new version (whcih might never happen - as open source steward, as opposed to manufacturers we are not forced to release new versions in this case). Or without them to upgrade to latest version of Airflow that already bumped that dependency in it’s constraints.
This is very powerful mechanism that we use for years and it works . Beutifully. I cannot count the number of times we got the request “the security scan we run in our BIG ENTERPRISE have found those vulnerabilities in those 100 of dependencies of yours in this old 2.3.0 release - FIX IT ASAP !!!”. And our response always is “here is link to instructions how you can do it yourself and BTW you should update to latest versions of airlfow and those dependencies you care about security”. And we never hear back (not unsurprisingly).
So if you ask “Do you know other projects than Airflow that do it?” - I think this is a wrong question. I honestly think “How many projects in about a year will SCREAM to get similar solution in place because they won’t be able to cope with manufacturers banging on their doors to upgrade their dependencies ?” is a better one.
I would love to be able to use PEP-751 insted of our “poor man’s constraints solution” - and if we want similar approach to spread among others - noone- would be able to affort build what we’ve build for airflow - but should rather use a “Standard” solution.
I am super happy to collaborate on it. The moment pip and uv both support PEP-751 installations, I drop everything else and in a week or so this will be the preferred way we tell our users to install airflow (with constraints for some time as backwards compatibility for older pip versions). So let’s make it happen BEFORE other open source projects will start begging for a similar solution.