mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-03 09:53:45 +00:00
Backports UV index configuration fixes from `release-0.3.x` (PR #4002). The main issue: when we created the release branch infrastructure, we configured UV to use `test.pypi` as the PRIMARY index to resolve RC dependencies. This caused UV to look for ALL packages there first, which led to problems - some packages don't have binary wheels on `test.pypi`, so UV tried building from source and failed (like the `psycopg2-binary` issue we hit). The fix is simple: use PyPI as primary (default) and `test.pypi` as an EXTRA index. UV will check PyPI first for everything, and only fall back to `test.pypi` for packages not found there (like our RC client versions). This PR includes: - Fixed `install-llama-stack-client` action to output `UV_EXTRA_INDEX_URL` instead of `UV_INDEX_URL` - New `uv-run-with-index.sh` wrapper that auto-detects release branches and sets UV env vars - Updated pre-commit hooks (`uv-lock`, codegen, etc.) to use the wrapper - Pass UV env vars as Docker build args in all locations - Scope UV env vars properly in Containerfile (inline for llama-stack install, explicitly unset before distribution deps) - Export UV env vars to `GITHUB_ENV` in setup-runner for cross-step persistence The wrapper detects release branches automatically in both CI and local environments, so this "just works" without manual configuration. On main (non-release branch), the wrapper becomes a no-op. Tested and validated on `release-0.3.x` where all CI checks pass.
42 lines
1.3 KiB
Bash
Executable file
42 lines
1.3 KiB
Bash
Executable file
#!/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
|
|
# In GitHub Actions, use GITHUB_REF/GITHUB_BASE_REF
|
|
if [[ -n "${GITHUB_REF:-}" ]]; then
|
|
BRANCH="${GITHUB_REF#refs/heads/}"
|
|
else
|
|
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
|
|
fi
|
|
|
|
# For PRs, check the target branch
|
|
if [[ -n "${GITHUB_BASE_REF:-}" ]]; then
|
|
TARGET_BRANCH="${GITHUB_BASE_REF}"
|
|
else
|
|
TARGET_BRANCH=$(git rev-parse --abbrev-ref HEAD@{upstream} 2>/dev/null | sed 's|origin/||' || echo "")
|
|
fi
|
|
|
|
# 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
|
|
IS_RELEASE=true
|
|
elif [[ "$TARGET_BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then
|
|
IS_RELEASE=true
|
|
elif [[ "${LLAMA_STACK_RELEASE_MODE:-}" == "true" ]]; then
|
|
IS_RELEASE=true
|
|
fi
|
|
|
|
# On release branches, use test.pypi as extra index for RC versions
|
|
if [[ "$IS_RELEASE" == "true" ]]; then
|
|
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 "$@"
|