fix: Don't double-include template files (#722)

Fixes broken publishing action:
https://github.com/ArcadeAI/arcade-mcp/actions/runs/20147239181

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Removes template force-include to avoid duplicate files and adds CI
wheel-duplicate validation; bumps version to 1.6.1.
> 
> - **Packaging**:
> - Bump `arcade-mcp` version from `1.6.0` to `1.6.1` in
`pyproject.toml`.
> - Remove `[tool.hatch.build.targets.wheel.force-include]` for
`arcade_cli/templates` to prevent double-including template files.
> - **CI/CD**:
> - In `.github/workflows/release-on-version-change.yml`, add a
post-build Python step to validate built wheels for duplicate filenames
before publishing.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
3a15e08772b2b4851b185b04c763f3f5898bdbd5. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
This commit is contained in:
Nate Barbettini 2025-12-11 13:55:31 -08:00 committed by GitHub
parent aae9b3a49c
commit 592c3f73c0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 36 additions and 5 deletions

View file

@ -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 }}"

View file

@ -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",