-
Notifications
You must be signed in to change notification settings - Fork 16.3k
Adds automated installation of dependent packages #11526
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
Adds automated installation of dependent packages #11526
Conversation
1ae7ebd to
e5ffe28
Compare
|
Hey @kaxil @ash - as mentioned on slack - I need to get that one merged in order to solve the Docker building problem that is now causing Kubernetes failures. Simply - when installing airflow[EXTRAS] I need to install also all the providers. This has not been possible yet because we do not have those packages in PyPI. This one is needed to fix #11490 This PR will likely fail in a few cases because Airflow will not find the right packages in PyPI to install:
Now the question is how we approach it:
Another point is to solve the local installation (#11489) but I think this one will have to be installed differently because you for sure want to have local providers installed. This I am going to likely solve by a custom approach to not exclude packages in setup.py when installing locally (providing that I will be able to reliably detect the case that I am installing airflow from sources and not building the package which should be possible). But I have to double check that one. |
|
The Workflow run is cancelling this PR. Building images for the PR has failed. Follow the the workflow link to check the reason. |
e5ffe28 to
ec15b73
Compare
|
The Workflow run is cancelling this PR. Building images for the PR has failed. Follow the the workflow link to check the reason. |
ec15b73 to
64eeb06
Compare
|
This one should work in principle now. I had hard time getting the version retrieval work, even if I manipulated the path, so if someone can make the |
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks$,^Build docs$,^Spell check docs$,^Backport packages$,^Checks: Helm tests$,^Test OpenAPI*. |
64eeb06 to
4e9bb8d
Compare
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks$,^Build docs$,^Spell check docs$,^Backport packages$,^Checks: Helm tests$,^Test OpenAPI*. |
4e9bb8d to
124b2ca
Compare
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks$,^Build docs$,^Spell check docs$,^Backport packages$,^Checks: Helm tests$,^Test OpenAPI*. |
I like (2) |
Yep. That's what I am doing :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can get away without any .
Edit: I have no idea what I was going to say here anymore.
Would love to hear how :). I thought the same, but I am not so sure any more. I actually tested it and if you do Also when we add dependencies in extras, as you will see now - if you try to install airflow[google] - it will fail now because it won't find the apache-airflow-google-package. So I wonder how you would like to avoid those two problems. We can of course do a "proper" sub-provider setup.py and keep separate setup.py per provider and split it and then have dependent package structure from airflow, but that would be a lot of maintenance, and especially if you want to manage common set of dependencies for the whole airflow, that woudl be quite complex. But If you would like to solve that this way - feel free :). |
83094ff to
485bc68
Compare
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks$,^Build docs$,^Spell check docs$,^Backport packages$,^Checks: Helm tests$,^Test OpenAPI*. |
485bc68 to
6427332
Compare
|
All is ready now for merging - I think I managed to get it working in all cases as expected. |
286a80d to
f51113d
Compare
|
Converted it to Draft as fhis one should be merged only after we release providers to PyPI. |
f51113d to
e8eb429
Compare
|
We should merge this just before we release our PyPI package for airflow beta 1 |
e8eb429 to
1b0a3aa
Compare
1b0a3aa to
effc3e4
Compare
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Backport packages$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
d2e17ad to
35465a4
Compare
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Backport packages$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Backport packages$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
35465a4 to
457decd
Compare
|
Looks that this one is good to go as well (there are some random cancels happening but I think they are because of GA problems not our own cancelling.) |
When extras are specifying when airflow is installed, this one triggers installation of dependent packages. Each extra has a set of provider packages that are needed by the extra and they will be installed automatically if this extra is specified. For now we do not add any version specificatiion, until we agree the process in apache#11425 and then we should be able to implement an automated way of getting information about cross-package version dependencies. Fixes: apache#11464
457decd to
1189134
Compare
The apache#11526 was badly rebased just before beta1 relase and few lines installing the providers were lost. This PR restores those lines. Fixes: apache#12231
When extras are specifying when airflow is installed, this one triggers
installation of dependent packages. Each extra has a set of provider
packages that are needed by the extra and they will be installed
automatically if this extra is specified.
For now we do not add any version specificatiion, until we agree the
process in #11425 and then we should be able to implement an
automated way of getting information about cross-package
version dependencies.
Fixes: #11464
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.