mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-07-29 15:23:51 +00:00
ci(pre-commit): enforce presence of 'upload-time' field in uv.lock
Add a pre-commit hook to ensure all contributions use a uv.lock file that contains the 'upload-time' field (older uv versions do not include that) Refs: #2887
This commit is contained in:
parent
09abdb0a37
commit
e99bf60288
2 changed files with 45 additions and 0 deletions
|
@ -155,6 +155,14 @@ repos:
|
||||||
require_serial: true
|
require_serial: true
|
||||||
files: ^.github/workflows/.*$
|
files: ^.github/workflows/.*$
|
||||||
|
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: check-uv-upload-time
|
||||||
|
name: Check upload-time in uv.lock
|
||||||
|
entry: python3 scripts/check_uv_upload_time.py
|
||||||
|
language: system
|
||||||
|
files: ^uv\.lock$
|
||||||
|
|
||||||
ci:
|
ci:
|
||||||
autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
|
autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
|
||||||
autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate
|
autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate
|
||||||
|
|
37
scripts/check-upload-time.py
Normal file
37
scripts/check-upload-time.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This source code is licensed under the terms described in the LICENSE file in
|
||||||
|
# the root directory of this source tree.
|
||||||
|
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def check_upload_time_regex(file_content):
|
||||||
|
sdist_pattern = re.compile(r'sdist\s*=\s*\{[^}]*upload-time\s*=\s*".*?"[^}]*\}', re.DOTALL)
|
||||||
|
sdist_found = bool(sdist_pattern.search(file_content))
|
||||||
|
return sdist_found
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
try:
|
||||||
|
with open("uv.lock", encoding="utf-8") as f:
|
||||||
|
content = f.read()
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error reading uv.lock: {e}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if not check_upload_time_regex(content):
|
||||||
|
print(
|
||||||
|
"It looks like you're using an old version of uv. "
|
||||||
|
"The lock file does not include upload-time fields for the packages. "
|
||||||
|
"Please update uv and regenerate the lock file"
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Add table
Add a link
Reference in a new issue