potiuk commented on pull request #9889:
URL: https://github.com/apache/airflow/pull/9889#issuecomment-660943222


   Hello. (also cc @ephraimbuddy who experienced problems with the previous 
requirement generation). 
   
   I think I found a very good and workable solution for former "requirements" 
(now "constraints"). 
   
   In short:
   
   - I keep constraints*.txt files in separate (orphaned) branches - similar to 
what github-pages does. This way "constraints" can evolve separately from the 
main code (for example constraint changes in master are kept in the 
`constraints-master` branch). Similarly 1.10 requirements will be kept in 
`constraints-1-10` branch.
   
   - The new "upgraded" constraints are pushed automatically by merge to master 
(or push to v1-10-test) - such pushes will always try to upgrade to latest 
constraints and in case tests pass, they will push a new commit to the  
`constraints-master` (or `constraint-1-10` branch. The commit will include run 
id and commit hash of the original commit from master/v1-10-test - so that we 
know which commit brought the new constraints in. This will only happen if all 
the tests are successful, so there is no risk we push any constraint change to 
that branch if any of the tests fail.
   
   - @kaxil  @dimberman  - for releases we will just have to tag the 
constraints with 'constraints-1.10.12` (for example) and this way our 
Dockerfiles and `pip install` will be able to use those "fixed" set of 
requirements  
   
   - all the other properties of constraints/requirements are kept - we have 
open-ended setup.py requirements, but also a way to manage (fully 
automatically) a set of good, proven-by-tests constraint.txt files that can be 
used for repeatable/reproducible  airflow installation and docker image 
generation. 
   
   - last but not least: I used the opportunity to replace 'requirements' -> 
'constraints' in all related places in docs, file names etc. - the 
"requirements" name was extremely confusing.


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