- Make app/domains/auth/ and app/core/redis.py mypy-clean under strict. - Add mypy-gate.ini and Makefile mypy-gate target; promote typecheck-gate in CI. - Consolidate domains into app/domains/: bulletin, admin, intelligence, markets. - Extract referral domain incl. DeFi partner DEX ref links; keep Telegram bot wired. - Move app/mcp/ package and app/api/v1/mcp/router into app/domains/mcp/. - Archive dead app/mcp_router.py.
56 lines
1.7 KiB
Makefile
56 lines
1.7 KiB
Makefile
.PHONY: help install dev build lint format check test test-all security ci clean mypy-gate typecheck-gate
|
|
|
|
help: ## Show this help
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
|
|
install: ## Install dependencies
|
|
pip install -e ".[dev]"
|
|
pip install -r requirements.txt
|
|
@command -v pre-commit >/dev/null 2>&1 && pre-commit install || echo " (pre-commit not installed; skipping hook install)"
|
|
|
|
dev: ## Start dev server
|
|
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
|
|
|
build: ## Build Docker image
|
|
docker build -t rmi-backend .
|
|
|
|
lint: ## Lint with ruff
|
|
ruff check app/ tests/
|
|
|
|
format: ## Format with ruff (writes)
|
|
ruff format app/ tests/
|
|
ruff check --fix app/ tests/
|
|
|
|
check: ## Full check: lint + format + typecheck + test
|
|
ruff check app/ tests/
|
|
ruff format --check app/ tests/
|
|
mypy app/ --ignore-missing-imports
|
|
pytest tests/ -x -q -m "not integration"
|
|
|
|
typecheck: ## MyPy type check (full codebase, informational)
|
|
mypy app/ --config-file mypy.ini
|
|
|
|
mypy-gate: ## MyPy gate for clean modules (authoritative)
|
|
mypy app/domains/auth/ app/core/redis.py --config-file mypy-gate.ini
|
|
|
|
typecheck-gate: ## Alias for mypy-gate
|
|
$(MAKE) mypy-gate
|
|
|
|
test: ## Run tests (non-integration)
|
|
pytest tests/ -x -q -m "not integration"
|
|
|
|
test-all: ## Run ALL tests including integration
|
|
pytest tests/ -q
|
|
|
|
security: ## Security audit
|
|
bandit -r app/ -q
|
|
ruff check --select S app/ tests/
|
|
|
|
ci: ## Full CI pipeline
|
|
ruff check app/ tests/
|
|
ruff format --check app/ tests/
|
|
$(MAKE) mypy-gate
|
|
pytest tests/ -x -q -m "not integration"
|
|
|
|
clean: ## Remove build artifacts
|
|
rm -rf dist build *.egg-info .pytest_cache .mypy_cache .ruff_cache
|