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?

Reply via email to