arcade-mcp/libs/arcade-cli/arcade_cli/templates/full/{{ toolkit_name }}/Makefile
Eric Gustin 4d48bb765d
arcade new <name> --full generates an MCPApp (#787)
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> **Medium Risk**
> Moderate risk because it changes the default `arcade new --full`
scaffolding (dependencies, entry points, Makefile workflow, licensing)
and removes interactive prompts, which could break existing expectations
for generated projects.
> 
> **Overview**
> `arcade new --full` scaffolding is simplified to be non-interactive
and always generate an `arcade_<name>` package, with derived name
variants (title/hyphenated) and updated next-step instructions (`make
install/dev/test/lint`).
> 
> The full template is updated to produce a runnable `arcade-mcp-server`
`MCPApp` (`__main__.py` + `project.scripts`), switch sample
code/tests/evals to a new async Reddit example tool (auth + metadata)
using `httpx`, and refresh dev tooling (new `Makefile`, ruff config
tweaks, added pytest `conftest.py`).
> 
> Template licensing/metadata is standardized to Arcade proprietary
(removes community/official conditionals and the templated README), and
the repo version is bumped to `1.12.0`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
fd39c9ed9beba068fe85cf96979f04a31a40daa4. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2026-03-05 17:50:10 -08:00

31 lines
970 B
Makefile

.PHONY: install build test lint dev
TOOLKIT := $(shell basename $(CURDIR))
help: ## Show this help message
@grep -E '^[a-zA-Z_-]+:.*##' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*##"}; {printf " \033[36m%-10s\033[0m %s\n", $$1, $$2}'
install: ## Install dependencies, then overlay any ../.local-overrides
uv sync --all-extras
uv run pre-commit install
@if [ -f ../.local-overrides ]; then \
while IFS= read -r pkg || [ -n "$$pkg" ]; do \
case "$$pkg" in \#*|"") continue ;; esac; \
echo "Applying local override: $$pkg"; \
uv pip install -e "$$pkg"; \
done < ../.local-overrides; \
fi
build: ## Build wheel
rm -rf dist
uv build
test: ## Run tests with coverage
uv run pytest -W ignore -v --cov --cov-config=pyproject.toml --cov-report=xml
lint: ## Run linting and type checking
uv run pre-commit run -a
uv run mypy --config-file=pyproject.toml
dev: ## Run toolkit locally as MCP server
ARCADE_WORKER_SECRET=dev uv run arcade_$(TOOLKIT) http