llama-stack-mirror/.github/workflows/python-build-test.yml
Charlie Doern 85d407c2a0 feat: split API and provider specs into separate llama-stack-api pkg
Extract API definitions, models, and provider specifications into a
standalone llama-stack-api package that can be published to PyPI
independently of the main llama-stack server.

Motivation

External providers currently import from llama-stack, which overrides
the installed version and causes dependency conflicts. This separation
allows external providers to:

- Install only the type definitions they need without server dependencies
- Avoid version conflicts with the installed llama-stack package
- Be versioned and released independently

This enables us to re-enable external provider module tests that were
previously blocked by these import conflicts.

Changes

- Created llama-stack-api package with minimal dependencies (pydantic, jsonschema)
- Moved APIs, providers datatypes, strong_typing, and schema_utils
- Updated all imports from llama_stack.* to llama_stack_api.*
- Preserved git history using git mv for moved files
- Configured local editable install for development workflow
- Updated linting and type-checking configuration for both packages
- Rebased on top of upstream src/ layout changes

Testing

Package builds successfully and can be imported independently.
All pre-commit hooks pass with expected exclusions maintained.

Next Steps

- Publish llama-stack-api to PyPI
- Update external provider dependencies
- Re-enable external provider module tests

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2025-11-12 09:19:40 -05:00

50 lines
1.2 KiB
YAML

name: Python Package Build Test
run-name: Test building the llama-stack PyPI project
on:
push:
branches:
- main
pull_request:
branches:
- main
paths-ignore:
- 'src/llama_stack_ui/**'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.12', '3.13']
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install uv
uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
with:
python-version: ${{ matrix.python-version }}
activate-environment: true
version: 0.7.6
- name: Build Llama Stack Spec package
working-directory: src/llama-stack-api
run: uv build
- name: Build Llama Stack package
run: uv build
- name: Install Llama Stack package (with spec from local build)
run: |
uv pip install --find-links src/llama-stack-api/dist dist/*.whl
- name: Verify Llama Stack package
run: |
uv pip list
uv pip show llama-stack
command -v llama
llama stack list-apis
llama stack list-providers inference