Following up here... that PR has been merged.... At some point we should probably have a vote on that, if it's meant to be actual binding policy. Maybe we're still feeling it out? But "what is public" is a pretty fundamental concern to the project. Maybe such a policy itself should be an AIP?
Meanwhile, going down into the weeds a bit, there's one aspect of the doc which came up here: https://github.com/apache/airflow/pull/29147#discussion_r1086214750 It quotes the "policy": > Airflow has a set of Executors that are considered public. You are free to extend their functionality Do we really mean that all executors are public? Or do we just mean that the executor *interface* is public, i.e. BaseExecutor? It's of course better for the healthy development of our built-in executors if we have no backcompat guarantees and can change them as needed. But yes this means that anyone else "building on" our executors would be wise to "vendor in" our executor code instead of just subclassing. Maybe it's a reasonable assumption that any user with the sophistication and, perhaps, chutzpah to customize one of our executors, has also the sophistication to manage this. What do y'all think?