-
Notifications
You must be signed in to change notification settings - Fork 14.5k
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 plyvel to google provider extra #15812
Conversation
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
I think we need a little more :) The providers are prepared and tested during CI build (We have a special job "Build and test povider packages"). And In fact the job did fail: https://github.com/apache/airflow/pull/15812/checks?check_run_id=2571762641 The job failed because our CI does not install plyvel any more since this is an optional dependency now. But for CI image we run all the tests and check if all providers are fully importable, so we should also add plyvel as depenedncy installed during CI image build. This can be done simply as yet another extra for "airflow" itself - similarly as we have virtualenv, statsd, rabbitmq etc. Simply adding it as one more extra in setup.py and adding it to the "CORE_EXTRAS_REQUIREMENTS" in setup.py should do the job. I believe this is also the reason why level_db tests failed as well and doc build failed (because neither can import plyvel). |
Just make sure that you run pre-commits as well. After you add 'plyvel' extra, you will also have to update "extra documentation" and pre-commit will fail if you did not :) |
i will look into this thank you :) |
@potiuk it seems that it may be more elegant to create a what do you think? doing so also means we don't have an airflow level db extra and a google provider leveldb extra, and avoids the decision of whether the airflow leveldb extra should also install the google provider etc. |
I think this would not play very well with the current hierarchy. I think We have not foreseen that we can have booth "providerX" and "providerX.something". I am afraid it might lead to some problems. I think - looking at the current "google" provider structure, splittiing it similarly to "microsoft" could have been better. Maybe (but that's somethig that likely needs a bit more thought) we should split it to "google.cloud" , "google.firebase", etc. eventually. For now I think the 'extra' is quick and pretty much backwards-compatible solution (with the right dependencies installed). Splitting it to independent providers will be much more laborious and can have some unforeseen cosequences (like the need to extract a "common" part to even separate provider. |
For leveldb, there isn't any common part, i think. It does not use GCP base hooks, because it actually has nothing to do with GCP. So it might actually be a simple job to create a distinct provider for this one. I'm not sure we really even need google in the name. Why couldn't it just be a Just exploring options here. Already pushed the change with the approach you suggested. Will let the build go before rebasing with those conflicts (cus it seems there's something in master broken) |
Yep, leveldb is indeed very separate from the rest. I think master is OK, but we have another major outage of Github Actions in a full swing: https://www.githubstatus.com/incidents/m16jzl31gnqt BTW. you need to rebase anyway. |
Yeah i know i need to rebase but when i did locally at pre-commit i found this error:
|
Plyvel does not build on macOS without levelDB installed in system. Its better to make it an optional install.
d80f02c
to
4b5430c
Compare
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
Yeah. You need to rebuild the image when asked :) |
The PR most likely needs to run full matrix of tests because it modifies parts of the core of Airflow. However, committers might decide to merge it quickly and take the risk. If they don't merge it quickly - please rebase it to the latest master at your convenience, or amend the last commit of the PR, and push it with --force-with-lease. |
I think this looks cool for now. I've opened #15933 to discuss what we do with Google Provider. |
Plyvel does not build on macOS without levelDB installed in system. Its better to make it an optional install. (cherry picked from commit 76a80bb)
Not sure if I did this correctly, or how to test installation of providers but reading up now.
Hmmm...
Tried this:
Got a failure with no log: