potiuk commented on PR #50269:
URL: https://github.com/apache/airflow/pull/50269#issuecomment-2871374182

   Yes. I think such changes in Airflow should be **minor** version upgrades -> 
3.1.0 should be minimum version 
   
   Also - we have to be quite careful when making such change. We should at 
least have a mental model and work out scenarios where various versions and 
combos of airlfow + fab would be installed (or prevent them from being 
installed together if those combos are not good).
   
   I don't think we have a realy good guide for what happens when you move 
config from Airflow to provider like thiat. The ConfigChange we have currently 
implemented does not serve well case where configurations are moved between two 
distributions, It only works if ConfigChange is moved within Airflow or within 
distribution.
   
   Assume we add this in 2.1.0 FAB (not 2.0.2) - moving configuration like that 
is for me sign of "minor release" at least.
   
   Two easy cases are : 
   
   * FAB 2.0.1 + Airflow 3.0.1 (only config in Airlfow works, no-one suggests 
to move it)
   * FAB 2.1.0 + Airflow 3.1.0 - config should be in FAB, if someone still has 
it in airflow it is going to work wth deprecation.
   
   
   * More interesting is:  2.0.1 FAB and 3.1.0 Airflow: Will it work? FAB will 
read "airflow" one and it will raise deprecation warning, and no way to remove 
the deprecation warning. Changing the entry to "fab" will not really work (?) 
because FAB will continue reading "airflow" one. I guess that can be solved by 
adding FAB >= 2.1.0 in Airfflow 3.1.0
   
   * Even more interesting is 2.1.0 FAB and 3.0.1 Airflow. FAB will read "fab" 
entry but airflow wil not have config change inforamtion - so it will only work 
when you move configuraiton to "fab' but you have no warning about that - as 
airflow is not aware about that config change. Effect - you might silently 
loose configuration set in "airflow" config. Again , setting Airlfow >3.1.0 for 
FAB 2.1.0 makes sense, but then we should make that change **just** before we 
relase 3.1.0, because otherwise nobody will be able to use any 2.1.0 FAB after 
we release it. -until we release Airflow 3.1.0.
   
   In shortl  - we have two options:
   
   a)  I think we should only make that change just before we release 3.1.0 and 
bump both Airlfow 3.1.0 and Fab 2.1.0 and make them both depend on the new 
version.  
   
   b) or maybe we shoudl also figure out handling of config change in provider 
separately so that 2.1.0 FAB will handle config change as well and work also 
with Airlfow 3.0.* 
   
   I think option b) is better if we can pull it off, because then FAB 2.1. 
will be able to work with Airflow 3.0*  and we will be able to relase security 
fixes independently for it. But then some compatibilty code needs to be 
implemented in FAB even as simple as manually checking if "airflow" is set  and 
falling back to it - no matter what is implemented in Airflow.
   
   Actually probably best option would be to add possiblity of providers 
contributing dynamically config changes to Airflow, but that might be a bit too 
much as we would have to also require some Airflow providers's manager changes 
and min version set for Airflow in such providers - so likely "hand-written" 
check for config in FAB provider is a better option:
   
   if "airflow" config exists -> read from there and raise deprecation, else 
read from "fab".  That's probably simples solutin.
   
    
   
   
   
   
   


-- 
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.

To unsubscribe, e-mail: [email protected]

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

Reply via email to