This commit is contained in:
Mohamed Rebai 2025-07-26 14:55:56 +01:00 committed by GitHub
commit 34b4d71c12
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 45 additions and 0 deletions

View file

@ -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

View 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()