dstandish edited a comment on issue #15933:
URL: https://github.com/apache/airflow/issues/15933#issuecomment-844585293


   This came up in part because leveldb hooks depend on plyvel library which 
requires that the machine has leveldb installed.
   
   So, prior to #15770, on mac if you want to install google provider (e.g. 
because you want to use some GCP hook) then you also have to install leveldb 
(which has nothing to do with GCP), and if you do not have leveldb installed, 
then the google provider install will fail.
   
   To resolve this, what we ended up doing was making plyvel an optional 
dependency of google provider (#15770) so you have to install 
`...google[leveldb]` to get plyvel (and this will only work if your system has 
leveldb installed).  This also required that we make plyvel a "core" dependency 
of airflow, since CI requires it in order to fully import the google provider.
   
   _(Come to think of it perhaps CI could be amended to do `...provider-x[ALL]` 
and then we would not have to add it as a  core dep...)_
   
   Rather than making leveldb a google provider extra, I think a cleaner 
solution would be if leveldb was made a distinct provider, either 
google-leveldb or just leveldb.  In the case of leveldb, there's no interaction 
with GCP hooks -- AFAIK it's completely independent.  And this way plyvel would 
not need to be an extra, and would not need to be a airflow core dep.
   
   The issue with leveldb was my main concern because being forced to `brew 
install` this system dependency is a bad user experience.  And we have fixed 
the issue in a way, though it can be debated what the best solution is (i.e. 
sep provider vs extras).  I'm not aware if there are other similar problems 
within the google provider, or other reasons that there may be to separate 
certain components of the provider
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to