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]
