I would like to propose the way we are handling "not-ready" providers for
Airflow 3 development - basically by manually releasing the "dev" version
of the providers to PyPI.

We are not yet releasing the standard provider as it is marked as
"not-ready" (and that's good because we do not want regular users to
install it). But we need to make it "pre-installed" (i.e. installed when
the "apache-airflow" package is installed from main. I created PR for that
https://github.com/apache/airflow/pull/42676

We already have the "standard" provider in our code and we have some
references to it (there were a few CI failures caused by the provider
missing for PROD builds (solved already). But while our CI handles it
(hopefully) nicely, when you install the in-development version of Airflow
in "standard" (non-editable) mode - it will attempt to install the
"apache-airflow-providers-standard" - after
https://github.com/apache/airflow/pull/42676 is merged.

As I understand it - the prerelease provider will be installed with
"development" version of airflow 3 because when `pip` can only find
pre-release version of the package (and no "released" version) - it will
install the pre-release one, but it's not going to be seen as "official"
release version.

I already reserved the "apache-airflow-providers-standard" project for the
Apache Airflow organisation so this is the matter of running a single
breeze command to build the package with ".dev0" classifier and uploading
it to PyPI.

Similar situation will be with "edge" executor - which I think we should
release manually in a similar manner until we mark it as "ready".

We could probably add pre-release providers to our regular release process
if need be, but I think manually releasing the dev* versions of those
providers as needed is far less hassle (we just need a few PMC members who
have access to PyPI to do it when needed). The benefit of it will be that
it can be done outside of the regular provider release cadence - for
example when we move more Operators to the standard provider, we might need
to push a new .dev version to PyPI so that our PROD image checks will not
fail.

WDYT?


J.

Reply via email to