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

JingsongLi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-vector-index.git


The following commit(s) were added to refs/heads/main by this push:
     new b378b7b  fix: support license checks in source archives
b378b7b is described below

commit b378b7b7bdd37a52371b06a8e203005a7562ad70
Author: JingsongLi <[email protected]>
AuthorDate: Sun Jul 26 15:06:42 2026 +0800

    fix: support license checks in source archives
---
 tools/check_license_headers.py | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/tools/check_license_headers.py b/tools/check_license_headers.py
index 3095b3a..c959926 100755
--- a/tools/check_license_headers.py
+++ b/tools/check_license_headers.py
@@ -17,7 +17,7 @@
 # limitations under the License.
 #
 
-"""Validate ASF license headers on tracked text files."""
+"""Validate ASF license headers on source text files."""
 
 from __future__ import annotations
 
@@ -51,14 +51,22 @@ EXEMPT_FILES = {
 
 
 def repo_root() -> Path:
-    return Path(
-        subprocess.check_output(["git", "rev-parse", "--show-toplevel"], 
text=True).strip()
-    )
+    return Path(__file__).resolve().parent.parent
+
 
+def source_files(root: Path) -> list[str]:
+    result = subprocess.run(
+        ["git", "-C", str(root), "rev-parse", "--show-toplevel"],
+        capture_output=True,
+        text=True,
+    )
+    if result.returncode == 0 and Path(result.stdout.strip()).resolve() == 
root:
+        output = subprocess.check_output(["git", "-C", str(root), "ls-files"], 
text=True)
+        return output.splitlines()
 
-def tracked_files(root: Path) -> list[str]:
-    output = subprocess.check_output(["git", "-C", str(root), "ls-files"], 
text=True)
-    return output.splitlines()
+    return sorted(
+        path.relative_to(root).as_posix() for path in root.rglob("*") if 
path.is_file()
+    )
 
 
 def is_text_file(path: Path) -> bool:
@@ -74,7 +82,7 @@ def main() -> int:
     root = repo_root()
     missing = []
 
-    for file_name in tracked_files(root):
+    for file_name in source_files(root):
         if file_name in EXEMPT_FILES:
             continue
 
@@ -91,7 +99,7 @@ def main() -> int:
             print(f"  {file_name}", file=sys.stderr)
         return 1
 
-    print("All tracked text files have ASF license headers or are explicitly 
exempt.")
+    print("All source text files have ASF license headers or are explicitly 
exempt.")
     return 0
 
 

Reply via email to