mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-11 19:56:03 +00:00
refactor: smart UV index wrapper for all pre-commit hooks
Replace isolated UV configuration with unified wrapper script that: - Detects release branches (release-X.Y.x pattern) - Checks upstream target branch for feature branches - Supports LLAMA_STACK_RELEASE_MODE env var for local testing - Wraps all uv commands (lock, run) in local hooks When on/targeting release branches, automatically sets: - UV_EXTRA_INDEX_URL=https://test.pypi.org/simple/ - UV_INDEX_STRATEGY=unsafe-best-match For local testing on feature branches targeting release branches: LLAMA_STACK_RELEASE_MODE=true pre-commit run --all-files This ensures RC versions can be resolved from test.pypi in both CI (on actual release branches) and local development.
This commit is contained in:
parent
83176acd88
commit
451f1e5fd2
3 changed files with 48 additions and 27 deletions
|
|
@ -78,7 +78,7 @@ repos:
|
||||||
name: uv-lock
|
name: uv-lock
|
||||||
additional_dependencies:
|
additional_dependencies:
|
||||||
- uv==0.7.20
|
- uv==0.7.20
|
||||||
entry: ./scripts/pre-commit-uv-lock.sh
|
entry: ./scripts/uv-run-with-index.sh lock
|
||||||
language: python
|
language: python
|
||||||
pass_filenames: false
|
pass_filenames: false
|
||||||
require_serial: true
|
require_serial: true
|
||||||
|
|
@ -87,7 +87,7 @@ repos:
|
||||||
name: Distribution Template Codegen
|
name: Distribution Template Codegen
|
||||||
additional_dependencies:
|
additional_dependencies:
|
||||||
- uv==0.7.8
|
- uv==0.7.8
|
||||||
entry: uv run --group codegen ./scripts/distro_codegen.py
|
entry: ./scripts/uv-run-with-index.sh run --group codegen ./scripts/distro_codegen.py
|
||||||
language: python
|
language: python
|
||||||
pass_filenames: false
|
pass_filenames: false
|
||||||
require_serial: true
|
require_serial: true
|
||||||
|
|
@ -96,7 +96,7 @@ repos:
|
||||||
name: Provider Codegen
|
name: Provider Codegen
|
||||||
additional_dependencies:
|
additional_dependencies:
|
||||||
- uv==0.7.8
|
- uv==0.7.8
|
||||||
entry: uv run --group codegen ./scripts/provider_codegen.py
|
entry: ./scripts/uv-run-with-index.sh run --group codegen ./scripts/provider_codegen.py
|
||||||
language: python
|
language: python
|
||||||
pass_filenames: false
|
pass_filenames: false
|
||||||
require_serial: true
|
require_serial: true
|
||||||
|
|
@ -105,7 +105,7 @@ repos:
|
||||||
name: API Spec Codegen
|
name: API Spec Codegen
|
||||||
additional_dependencies:
|
additional_dependencies:
|
||||||
- uv==0.7.8
|
- uv==0.7.8
|
||||||
entry: sh -c 'uv run ./docs/openapi_generator/run_openapi_generator.sh > /dev/null'
|
entry: sh -c './scripts/uv-run-with-index.sh run ./docs/openapi_generator/run_openapi_generator.sh > /dev/null'
|
||||||
language: python
|
language: python
|
||||||
pass_filenames: false
|
pass_filenames: false
|
||||||
require_serial: true
|
require_serial: true
|
||||||
|
|
@ -146,7 +146,7 @@ repos:
|
||||||
name: Generate CI documentation
|
name: Generate CI documentation
|
||||||
additional_dependencies:
|
additional_dependencies:
|
||||||
- uv==0.7.8
|
- uv==0.7.8
|
||||||
entry: uv run ./scripts/gen-ci-docs.py
|
entry: ./scripts/uv-run-with-index.sh run ./scripts/gen-ci-docs.py
|
||||||
language: python
|
language: python
|
||||||
pass_filenames: false
|
pass_filenames: false
|
||||||
require_serial: true
|
require_serial: true
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Detect current branch
|
|
||||||
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
|
|
||||||
|
|
||||||
# On release branches, use test.pypi as extra index for RC versions
|
|
||||||
if [[ "$BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then
|
|
||||||
echo "Detected release branch: $BRANCH"
|
|
||||||
echo "Setting UV_EXTRA_INDEX_URL=https://test.pypi.org/simple/"
|
|
||||||
export UV_EXTRA_INDEX_URL="https://test.pypi.org/simple/"
|
|
||||||
export UV_INDEX_STRATEGY="unsafe-best-match"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Run uv lock
|
|
||||||
exec uv lock "$@"
|
|
||||||
43
scripts/uv-run-with-index.sh
Executable file
43
scripts/uv-run-with-index.sh
Executable file
|
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Detect current branch and target branch
|
||||||
|
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
|
||||||
|
# For feature branches, check what branch they're merging into
|
||||||
|
TARGET_BRANCH=$(git rev-parse --abbrev-ref HEAD@{upstream} 2>/dev/null | sed 's|origin/||' || echo "")
|
||||||
|
|
||||||
|
echo "[uv-run-with-index] Current branch: '$BRANCH'" >&2
|
||||||
|
echo "[uv-run-with-index] Target branch: '$TARGET_BRANCH'" >&2
|
||||||
|
echo "[uv-run-with-index] PWD: $PWD" >&2
|
||||||
|
echo "[uv-run-with-index] Command: uv $*" >&2
|
||||||
|
|
||||||
|
# Check if on a release branch or targeting one, or LLAMA_STACK_RELEASE_MODE is set
|
||||||
|
IS_RELEASE=false
|
||||||
|
if [[ "$BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then
|
||||||
|
echo "[uv-run-with-index] ✓ On release branch: $BRANCH" >&2
|
||||||
|
IS_RELEASE=true
|
||||||
|
elif [[ "$TARGET_BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then
|
||||||
|
echo "[uv-run-with-index] ✓ Targeting release branch: $TARGET_BRANCH" >&2
|
||||||
|
IS_RELEASE=true
|
||||||
|
elif [[ "${LLAMA_STACK_RELEASE_MODE:-}" == "true" ]]; then
|
||||||
|
echo "[uv-run-with-index] ✓ LLAMA_STACK_RELEASE_MODE=true" >&2
|
||||||
|
IS_RELEASE=true
|
||||||
|
else
|
||||||
|
echo "[uv-run-with-index] ✗ Not a release branch" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# On release branches, use test.pypi as extra index for RC versions
|
||||||
|
if [[ "$IS_RELEASE" == "true" ]]; then
|
||||||
|
echo "[uv-run-with-index] Setting UV_EXTRA_INDEX_URL=https://test.pypi.org/simple/" >&2
|
||||||
|
export UV_EXTRA_INDEX_URL="https://test.pypi.org/simple/"
|
||||||
|
export UV_INDEX_STRATEGY="unsafe-best-match"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run uv with all arguments passed through
|
||||||
|
exec uv "$@"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue