shahar1 opened a new pull request, #74117: URL: https://github.com/apache/airflow/pull/74117
The `Static checks` CI job fails intermittently with `lint-helm-chart` (and any other hook that runs `uv sync` on the workspace) when the editable build of the root `apache-airflow` package crashes: ``` FileNotFoundError: [Errno 2] No such file or directory: '.../ts-sdk/node_modules/.pnpm/@[email protected]_.../node_modules/magic-string/dist' ``` Example: https://github.com/apache/airflow/actions/runs/37035333228/job/110938519394 (PR #74098, which only touches `dev/breeze`). Root cause: the root package has no files, but hatchling's editable build still walks the whole checkout. `.gitignore` patterns only filter *files* unless `skip-excluded-dirs` is set, so the walk descends into `ts-sdk/node_modules` (64,789 directories on a local checkout). The ts-sdk prek workspace runs `pnpm install` in parallel with the root hooks, and a pnpm symlink swapped between `scandir` and `os.stat` raises inside hatchling's `safe_walk`. Setting `skip-excluded-dirs = true` in `[tool.hatch.build]` makes hatchling prune `.gitignore`'d directories during the walk. Verified locally with hatchling 1.32.4: - directories walked by `build_editable`: 100,330 before, 1 after - the produced editable wheel `RECORD` is byte-for-byte identical before and after --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Fable 5.1) Generated-by: Claude Code (Fable 5.1) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
