diff --git a/.github/workflows/release-on-version-change.yml b/.github/workflows/release-on-version-change.yml index 23a31293..68129f3b 100644 --- a/.github/workflows/release-on-version-change.yml +++ b/.github/workflows/release-on-version-change.yml @@ -107,6 +107,41 @@ jobs: run: | uv build --out-dir dist | tee build.log + # Validate wheel archives: PyPI rejects duplicate filenames in wheels + python - <<'PY' + from __future__ import annotations + + from pathlib import Path + import sys + import zipfile + + dist = Path("dist") + wheels = sorted(dist.glob("*.whl")) + if not wheels: + print("No wheels found in dist/, skipping wheel validation.") + raise SystemExit(0) + + for whl in wheels: + with zipfile.ZipFile(whl) as zf: + names = zf.namelist() + + seen: set[str] = set() + dupes: set[str] = set() + for name in names: + if name in seen: + dupes.add(name) + else: + seen.add(name) + + if dupes: + print(f"ERROR: {whl} contains duplicate paths (PyPI will reject this wheel):", file=sys.stderr) + for name in sorted(dupes): + print(f" - {name}", file=sys.stderr) + raise SystemExit(1) + + print("Wheel validation OK (no duplicate filenames).") + PY + # Verify build artifacts ls -la dist/ echo "Built artifacts for ${{ env.PACKAGE_NAME }} v${{ env.VERSION }}" diff --git a/pyproject.toml b/pyproject.toml index de00c1b8..d88720c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "arcade-mcp" -version = "1.6.0" +version = "1.6.1" description = "Arcade.dev - Tool Calling platform for Agents" readme = "README.md" license = {file = "LICENSE"} @@ -94,10 +94,6 @@ packages = [ "libs/arcade-evals/arcade_evals", ] -# Include Jinja templates in the CLI package -[tool.hatch.build.targets.wheel.force-include] -"libs/arcade-cli/arcade_cli/templates" = "arcade_cli/templates" - [tool.uv.workspace] members = [ "libs/arcade-core",