This is an automated email from the ASF dual-hosted git repository.

henry3260 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new a23aa81c62e Fix flaky static checks crashing on ts-sdk node_modules 
during editable build (#74117)
a23aa81c62e is described below

commit a23aa81c62e1eb5a52cdfa4b19ae5697d4f4ad6d
Author: Shahar Epstein <[email protected]>
AuthorDate: Fri Oct 16 16:48:46 2026 +0100

    Fix flaky static checks crashing on ts-sdk node_modules during editable 
build (#74117)
    
    The root apache-airflow package has no files of its own, but hatchling's
    editable build still walks the entire checkout because .gitignore patterns
    only filter files, not directory descent. That walk crosses 
ts-sdk/node_modules
    (tens of thousands of pnpm symlink directories) while the ts-sdk prek hooks 
run
    pnpm install in parallel, so any symlink swapped mid-walk raises
    FileNotFoundError and fails hooks that uv sync the workspace, such as
    lint-helm-chart.
    
    Pruning .gitignore'd directories during the walk keeps hatchling out of
    node_modules entirely; the produced editable wheel is unchanged.
---
 pyproject.toml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pyproject.toml b/pyproject.toml
index db37ed21643..d39f28f7dc6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -601,6 +601,13 @@ Mastodon = "https://fosstodon.org/@airflow";
 Bluesky = "https://bsky.app/profile/apache-airflow.bsky.social";
 YouTube = "https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/";
 
+[tool.hatch.build]
+# Prune .gitignore'd directories (node_modules, .venv, ...) during the file 
walk instead of only
+# filtering their files: an editable build of this root package otherwise 
descends into
+# ts-sdk/node_modules and crashes with FileNotFoundError when a concurrent 
`pnpm install`
+# (ts-sdk prek hooks run alongside root ones) swaps the pnpm symlinks under it.
+skip-excluded-dirs = true
+
 [tool.hatch.build.targets.sdist]
 exclude = ["*"]
 

Reply via email to