Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move apache-airflow out of python package set #231187

Closed
mweinelt opened this issue May 10, 2023 · 4 comments
Closed

Move apache-airflow out of python package set #231187

mweinelt opened this issue May 10, 2023 · 4 comments
Labels
0.kind: bug Something is broken

Comments

@mweinelt
Copy link
Member

Describe the bug

Apache airflow is an application, the package set is intended for libraries.

Expected behavior

The application should live elsewhere in the repo tree and use buildPythonApplication so it can rely on packageOverrides to get the package version it requires.

Notify maintainers

@ingenieroariel
@bhipple
@gbpdt

@mweinelt mweinelt added the 0.kind: bug Something is broken label May 10, 2023
@graham33
Copy link
Contributor

The problem with airflow is that some users will use it as an application, and some will also use it as a package (you can write tasks and other scripts that live outside of airflow that need to import the airflow module to interact with the airflow service).

However, clearly it's not possible to support airflow in python3Packages right now since it doesn't support sqlalchemy 2.x. Hence, as mentioned in #214565, I'd still propose to mark it as broken in python3Packages (since hopefully soon apache/airflow#28723 will be addressed and we'll be able to support it again), and keep a working version of the standalone application with its own overridden package set (so people who just need the application can continue using it).

I've implemented this in a draft PR (which works but will need some cleanup): #231944. Again, not ideal but I think better than removing it from the python package set.

@mweinelt
Copy link
Member Author

There is no harm to living outside of the python package set. You inherit all of its packages. Airflow specific packages would need to live in apache-airflow.python.pkgs, which can carry overrides that make it work.

Airflow can use buildPythonApplication and have apache-airflow = toPythonLibrary apache-airflow { }; in its python package overrides.

I don't get the why it needs to live in python packages. It will break again and again with no means to fixing it.

The whole story is similar to ansible (blocking resolvelib updates) and buildbot (being consistently broken, because the upstream releases cannot keep up with our package set update cycle).

#225195 is when buildbot moved out of the package set.

@gbpdt
Copy link
Contributor

gbpdt commented May 15, 2023

For our use-cases there is a benefit to it staying in the python package set: we have some cases where we have a large curated python env, based on python3Packages, which contains airflow.

If airflow is in nixpkgs python3Packages it's obviously less work for us, but more importantly it's tested with the rest of the package set. This means issues like the one we're currently workingon are likely to be found earlier and hopefully resolved earlier. If we add it to python3Packages ourselves in an overlay, we only find the issues when we upgrade nixpkgs and any fixes/forks are likely to remain internal rather than being available to others.

@mweinelt
Copy link
Member Author

Resolved in 08126bf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: bug Something is broken
Projects
None yet
Development

No branches or pull requests

3 participants