-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathMakefile
More file actions
57 lines (46 loc) · 1.94 KB
/
Makefile
File metadata and controls
57 lines (46 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
.PHONY: help release publish-crates docs test-python test-python-integration format-python test-cli build-python
# Default target - show help when running just 'make'
.DEFAULT_GOAL := help
help:
@echo "pctx dev scripts"
@echo ""
@echo "Available targets:"
@echo " make docs - Generate CLI and Python documentation"
@echo " make test-python - Run Python client tests"
@echo " make test-python-integration - Run Python client tests with integration testing"
@echo " make format-python - Format and lint Python code with ruff"
@echo " make test-cli - Run CLI integration tests (pctx mcp start)"
@echo " make release - Interactive release script (bump version, update changelog)"
@echo " make publish-crates - Publish pctx_code_mode + dependencies to crates.io (runs locally)"
@echo " make build-python - Build Python package (resolves symlinks before build)"
@echo ""
# Generate CLI, OAS, and Python documentation
docs:
@./scripts/generate-cli-docs.sh
@echo ""
@./scripts/generate-openapi.sh
@echo ""
@echo "Building Python Sphinx documentation..."
@cd pctx-py && uv run sphinx-build -b html docs docs/_build/html
@echo ""
@echo "✓ Documentation built successfully!"
# Run Python client tests
test-python:
@cd pctx-py && uv run pytest tests/ -v
# Run Python client tests with integration tests (expects pctx running on localhost on the default port)
test-python-integration:
@cd pctx-py && uv run pytest tests/ --integration -v
format-python:
@cd pctx-py && uv run ruff format . && uv run ruff check . --fix
# Run CLI integration tests
test-cli:
@./scripts/test-mcp-cli.sh
# Interactive release workflow
release:
@./scripts/release.sh
# Publish Rust crates to crates.io
publish-crates:
@./scripts/publish-crates.sh
# Build Python package (resolves _tool_descriptions/data symlink before build, restores after)
build-python:
@./scripts/build-python.sh