diff --git a/.agents/skills/polyxml-codegen-workflow/SKILL.md b/.agents/skills/polyxml-codegen-workflow/SKILL.md index a14af8c..3c23050 100644 --- a/.agents/skills/polyxml-codegen-workflow/SKILL.md +++ b/.agents/skills/polyxml-codegen-workflow/SKILL.md @@ -8,6 +8,17 @@ description: >- # PolyXML Polyglot Codegen Development & Verification Playbook +## CI generated-consumer prerequisites + +The Rust core tests execute Python dataclass/Pydantic models and call PolyXML XML +codecs. In the Rust CI job, install the editable Python extension with `[dev]` +extras into a dedicated Python 3.12+ venv **before** `cargo test`; prepend that +venv to `GITHUB_PATH` so subprocess `python3` uses the same interpreter. A local +gate's existing venv can hide this missing CI dependency. New all-seven consumer +tests require actual Java, Go, C++20, .NET and TypeScript tools; provision Node, +TypeScript, Java and Go explicitly rather than relying on the runner image. +Do not skip consumers to work around missing prerequisites. + ## Inherited simpleContent Normalize synthetic text fields only after root-level import/include merging and diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1461325..fec0d64 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,6 +34,34 @@ jobs: with: python-version: "3.12" + - name: Install uv + uses: astral-sh/setup-uv@v7 + + - name: Prepare Python generated-consumer environment + run: | + uv venv --python python .venv + uv pip install --python .venv/bin/python -e "./crates/polyxml-python[dev]" + echo "$PWD/.venv/bin" >> "$GITHUB_PATH" + + - name: Set up generated-consumer Node.js + uses: actions/setup-node@v7 + with: + node-version: "22" + + - name: Install generated-consumer TypeScript compiler + run: npm install --global typescript@5.9.3 + + - name: Set up generated-consumer Java + uses: actions/setup-java@v6 + with: + distribution: "temurin" + java-version: "25" + + - name: Set up generated-consumer Go + uses: actions/setup-go@v7 + with: + go-version: "1.26.x" + - name: Verify Multi-Language Version Parity run: python scripts/sync_version.py --check