diff --git a/.github/workflows/dependency-health.yml b/.github/workflows/dependency-review.yml similarity index 79% rename from .github/workflows/dependency-health.yml rename to .github/workflows/dependency-review.yml index 0eda9a9..94a4b94 100644 --- a/.github/workflows/dependency-health.yml +++ b/.github/workflows/dependency-review.yml @@ -1,4 +1,4 @@ -name: Dependency Health +name: Review Development Dependencies on: workflow_dispatch: @@ -11,18 +11,19 @@ permissions: jobs: dependency-health: + name: Audit Development Dependencies runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - - name: Setup Python + - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.13" - - name: Setup uv + - name: Set up uv uses: astral-sh/setup-uv@v7 with: enable-cache: false diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ebce071..3041071 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,4 +1,4 @@ -name: Publish +name: Release Publish and Repair on: push: @@ -31,6 +31,7 @@ permissions: jobs: publish: + name: Build and Publish Release Artifacts runs-on: ubuntu-latest steps: @@ -40,17 +41,17 @@ jobs: fetch-depth: 0 ref: ${{ github.event_name == 'workflow_dispatch' && inputs.release_tag || github.ref }} - - name: Setup Python + - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.13" - - name: Setup uv + - name: Set up uv uses: astral-sh/setup-uv@v7 with: enable-cache: false - - name: Run regression baseline + - name: Run default regression baseline run: bash ./scripts/doctor.sh - name: Export runtime requirements for vulnerability audit @@ -94,10 +95,10 @@ jobs: print(f"Validated release version: {version}") PY - - name: Smoke test wheel install + - name: Smoke test wheel artifact run: bash ./scripts/smoke_test_built_cli.sh dist/opencode_a2a-*.whl - - name: Smoke test sdist install + - name: Smoke test sdist artifact run: bash ./scripts/smoke_test_built_cli.sh dist/opencode_a2a-*.tar.gz - name: Publish to PyPI diff --git a/.github/workflows/ci.yml b/.github/workflows/validate.yml similarity index 81% rename from .github/workflows/ci.yml rename to .github/workflows/validate.yml index 2067058..ba68bfb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/validate.yml @@ -1,4 +1,4 @@ -name: CI +name: Validate PRs and Main on: pull_request: @@ -11,29 +11,30 @@ permissions: jobs: quality-gate: + name: Validate Default Toolchain runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - - name: Setup Python + - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.13" - - name: Setup uv + - name: Set up uv uses: astral-sh/setup-uv@v7 with: enable-cache: false - - name: Sync Dependencies + - name: Sync locked dependencies run: uv sync --all-extras --frozen - - name: Run pre-commit + - name: Run lint checks run: bash ./scripts/lint.sh - - name: Run pytest + - name: Run test suite run: uv run pytest - name: Enforce coverage policy @@ -60,6 +61,7 @@ jobs: run: bash ./scripts/smoke_test_built_cli.sh dist/opencode_a2a-*.tar.gz runtime-matrix: + name: Validate Runtime Matrix (Python ${{ matrix.python-version }}) runs-on: ubuntu-latest strategy: fail-fast: false @@ -70,18 +72,18 @@ jobs: - name: Checkout uses: actions/checkout@v6 - - name: Setup Python + - name: Set up Python uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - - name: Setup uv + - name: Set up uv uses: astral-sh/setup-uv@v7 with: enable-cache: false - - name: Sync Dependencies + - name: Sync locked dependencies run: uv sync --all-extras --frozen - - name: Run pytest runtime matrix + - name: Run runtime regression tests run: uv run pytest --no-cov diff --git a/pyproject.toml b/pyproject.toml index f96876a..39e3cfd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,7 @@ dev = [ "mypy>=1.19.1,<2.0", "pip-audit>=2.9,<3.0", "pre-commit>=4.5.1,<5.0", + "pygments>=2.20.0,<3.0", "pytest>=8.0,<10.0", "pytest-asyncio>=0.23,<2.0", "pytest-cov>=7.0.0,<8.0.0", diff --git a/uv.lock b/uv.lock index 50b06a6..de366a7 100644 --- a/uv.lock +++ b/uv.lock @@ -761,6 +761,7 @@ dev = [ { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, + { name = "pygments" }, { name = "pytest" }, { name = "pytest-asyncio" }, { name = "pytest-cov" }, @@ -778,6 +779,7 @@ requires-dist = [ { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.5.1,<5.0" }, { name = "pydantic", specifier = ">=2.6,<3.0" }, { name = "pydantic-settings", specifier = ">=2.2,<3.0" }, + { name = "pygments", marker = "extra == 'dev'", specifier = ">=2.20.0,<3.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0,<10.0" }, { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23,<2.0" }, { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=7.0.0,<8.0.0" }, @@ -1092,11 +1094,11 @@ wheels = [ [[package]] name = "pygments" -version = "2.19.2" +version = "2.20.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] [[package]]