potiuk commented on PR #53149: URL: https://github.com/apache/airflow/pull/53149#issuecomment-3090203431
I just started playing with it and the problem is that we miss `force-include` directive in our pyproject.toml. Hatchling has this built-in feature specifically foreseen for including files in the packages that are coming from "outside" of the project repo (which indeed is generally a security issue and unless you specifically set it in pyproject.toml should not happen). I tested it and adding this: ```pyproject.toml [tool.hatch.build.targets.sdist.force-include] "../shared/timezones/src/airflow_timezones/timezone.py" = "src/airflow/sdk/_shared/timezone.py" "../shared/logging/src/airflow_logging/logging" = "src/airflow/sdk/_shared/logging" [tool.hatch.build.targets.wheel.force-include] "../shared/timezones/src/airflow_timezones/timezone.py" = "src/airflow/sdk/_shared/timezone.py" "../shared/logging/src/airflow_logging/logging" = "src/airflow/sdk/_shared/logging" ``` to task-sdk's pyproject.toml solves the problem - and includes noth logging and shared in the final package. And the same can be used for sharing code between shared modules. And it's a 'proper' solution that will work independently on how you are building the packages - does not matter if you use hatch or setuptools or `python -m build` this will work fine because this is handled by the "build backend" - i.e. in our pyproject.toml we specify that `hatchling` is our build backend, and any build frontend will use the version of hatchling we specified to buiold the packages. It really works in this way that first step of the build is that backend "isolated environment" is prepared, then backend copies all the sources to temporary directory (and does any kind of pre-processing - in this case it takes files specified by force-include and copies them to the right place in the temporary source tree) and then the packaging happens. So no matter which build frontend you use - it will **just work**. -- 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]
