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

   After some recent (and looking and old) discussions, it turns out that we 
need one more thing to be fully PEP-517 compliant. While hatchling allows us 
(for now) to dynamically modiy project attributes that are "static" in 
`pyproject.toml`  - this is not  what it is supposed to happen, because various 
tools might take such dependencies directly from pyproject.toml if they are not 
marked as dynamic (and will not run the build hook to retrieve the dynamic 
values for those properties).
   
   So we either generate the requiremets/optional dependencies dynamically, or 
we describe it statically in pyproject.toml, but we should not combine the two 
cases.
   
   Comment describing it is  here:  
https://github.com/pypa/pip/issues/11440#issuecomment-1774064882
   
   And I realized that after this discussion in this discussion in hatch 
https://github.com/pypa/hatch/issues/1331 but also this comment in uv 
https://github.com/astral-sh/uv/issues/2475#issuecomment-2002003895. 
   
   Seems that what we do is a hack.
   
   While it is convenient to keep dynamic requirements and optional 
dependencies in `pyproject.toml`, it seems that it is non-standard and can 
behave differently for different ways of installing airflow (from wheel file, 
sdist, url - depending what different tools are doing) - for one now `pip` 
installs current airflow "properly" from URL, while UV uses only 
pyproject.toml. 
   
   This had no impact on released airflow in wheel package, because wheel keeps 
dependenceis in METADATA, and this is where tools are getting the dependencies.
   


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