mirror of
https://github.com/Minidoracat/mcp-feedback-enhanced.git
synced 2025-07-26 10:02:25 +08:00
197 lines
7.7 KiB
Makefile
197 lines
7.7 KiB
Makefile
# Makefile for mcp-feedback-enhanced development
|
|
# 適用於 mcp-feedback-enhanced 專案開發
|
|
# Compatible with Windows PowerShell and Unix systems
|
|
# 兼容 Windows PowerShell 和 Unix 系統
|
|
|
|
.PHONY: help install install-dev install-hooks lint format type-check test clean pre-commit-run pre-commit-all update-deps check-rust build-desktop build-desktop-release test-desktop clean-desktop build-all test-all test-func test-web test-desktop-func
|
|
|
|
# 預設目標 - 顯示幫助訊息
|
|
help: ## Show this help message
|
|
@echo "Available commands:"
|
|
@echo ""
|
|
@echo " dev-setup Complete development setup"
|
|
@echo " install Install the package"
|
|
@echo " install-dev Install development dependencies"
|
|
@echo " install-hooks Install pre-commit hooks"
|
|
@echo " lint Run linting with Ruff"
|
|
@echo " lint-fix Run linting with auto-fix"
|
|
@echo " format Format code with Ruff"
|
|
@echo " format-check Check code formatting"
|
|
@echo " type-check Run type checking with mypy"
|
|
@echo " check Run all code quality checks"
|
|
@echo " check-fix Run all checks with auto-fix"
|
|
@echo " pre-commit-run Run pre-commit on staged files"
|
|
@echo " pre-commit-all Run pre-commit on all files"
|
|
@echo " pre-commit-update Update pre-commit hooks"
|
|
@echo " test Run tests"
|
|
@echo " test-cov Run tests with coverage"
|
|
@echo " test-fast Run tests without slow tests"
|
|
@echo " test-func Run functional tests (standard)"
|
|
@echo " test-web Run Web UI tests (continuous)"
|
|
@echo " test-desktop-func Run desktop application functional tests"
|
|
@echo " clean Clean up cache and temporary files"
|
|
@echo " ps-clean PowerShell version of clean (Windows)"
|
|
@echo " update-deps Update dependencies"
|
|
@echo " build Build the package"
|
|
@echo " build-check Check the built package"
|
|
@echo " bump-patch Bump patch version"
|
|
@echo " bump-minor Bump minor version"
|
|
@echo " bump-major Bump major version"
|
|
@echo " ci Simulate CI pipeline locally"
|
|
@echo " quick-check Quick check with auto-fix"
|
|
@echo ""
|
|
@echo "Desktop Application Commands:"
|
|
@echo " build-desktop Build desktop application (debug)"
|
|
@echo " build-desktop-release Build desktop application (release)"
|
|
@echo " test-desktop Test desktop application"
|
|
@echo " clean-desktop Clean desktop build artifacts"
|
|
@echo " check-rust Check Rust development environment"
|
|
|
|
# 安裝相關命令
|
|
install: ## Install the package
|
|
uv sync
|
|
|
|
install-dev: ## Install development dependencies
|
|
uv sync --dev
|
|
|
|
install-hooks: ## Install pre-commit hooks
|
|
uv run pre-commit install
|
|
@echo "✅ Pre-commit hooks installed successfully!"
|
|
|
|
# 程式碼品質檢查命令
|
|
lint: ## Run linting with Ruff
|
|
uv run ruff check .
|
|
|
|
lint-fix: ## Run linting with auto-fix
|
|
uv run ruff check . --fix
|
|
|
|
format: ## Format code with Ruff
|
|
uv run ruff format .
|
|
|
|
format-check: ## Check code formatting
|
|
uv run ruff format . --check
|
|
|
|
type-check: ## Run type checking with mypy
|
|
uv run mypy
|
|
|
|
# 組合品質檢查命令
|
|
check: lint format-check type-check ## Run all code quality checks
|
|
|
|
check-fix: lint-fix format type-check ## Run all checks with auto-fix
|
|
|
|
# Pre-commit 相關命令
|
|
pre-commit-run: ## Run pre-commit on staged files
|
|
uv run pre-commit run
|
|
|
|
pre-commit-all: ## Run pre-commit on all files
|
|
uv run pre-commit run --all-files
|
|
|
|
pre-commit-update: ## Update pre-commit hooks
|
|
uv run pre-commit autoupdate
|
|
|
|
# 測試相關命令
|
|
test: ## Run tests
|
|
uv run pytest
|
|
|
|
test-cov: ## Run tests with coverage
|
|
uv run pytest --cov=src/mcp_feedback_enhanced --cov-report=html --cov-report=term
|
|
|
|
test-fast: ## Run tests without slow tests
|
|
uv run pytest -m "not slow"
|
|
|
|
# 功能測試命令
|
|
test-func: ## Run functional tests (standard)
|
|
uv run python -m mcp_feedback_enhanced test
|
|
|
|
test-web: ## Run Web UI tests (continuous)
|
|
uvx --no-cache --with-editable . mcp-feedback-enhanced test --web
|
|
|
|
test-desktop-func: ## Run desktop application functional tests
|
|
uvx --no-cache --with-editable . mcp-feedback-enhanced test --desktop
|
|
|
|
# 維護相關命令
|
|
clean: ## Clean up cache and temporary files
|
|
@echo "Cleaning up..."
|
|
@if exist ".mypy_cache" rmdir /s /q ".mypy_cache" 2>nul || true
|
|
@if exist ".ruff_cache" rmdir /s /q ".ruff_cache" 2>nul || true
|
|
@if exist ".pytest_cache" rmdir /s /q ".pytest_cache" 2>nul || true
|
|
@if exist "htmlcov" rmdir /s /q "htmlcov" 2>nul || true
|
|
@if exist "dist" rmdir /s /q "dist" 2>nul || true
|
|
@if exist "build" rmdir /s /q "build" 2>nul || true
|
|
@find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
|
@find . -name "*.pyc" -delete 2>/dev/null || true
|
|
@find . -name "*.pyo" -delete 2>/dev/null || true
|
|
@find . -name "*.egg-info" -exec rm -rf {} + 2>/dev/null || true
|
|
@echo "✅ Cleanup completed!"
|
|
|
|
update-deps: ## Update dependencies
|
|
uv sync --upgrade
|
|
|
|
# 建置相關命令
|
|
build: ## Build the package
|
|
uv build
|
|
|
|
build-check: ## Check the built package
|
|
uv run twine check dist/*
|
|
|
|
# 版本發布命令
|
|
bump-patch: ## Bump patch version
|
|
uv run bump2version patch
|
|
|
|
bump-minor: ## Bump minor version
|
|
uv run bump2version minor
|
|
|
|
bump-major: ## Bump major version
|
|
uv run bump2version major
|
|
|
|
# 開發工作流程
|
|
dev-setup: install-dev install-hooks ## Complete development setup
|
|
@echo "🎉 Development environment setup complete!"
|
|
@echo ""
|
|
@echo "Next steps:"
|
|
@echo " 1. Run 'make check' to verify everything works"
|
|
@echo " 2. Start coding! Pre-commit hooks will run automatically"
|
|
@echo " 3. Use 'make help' to see all available commands"
|
|
|
|
# CI 流程模擬
|
|
ci: clean install-dev pre-commit-all test ## Simulate CI pipeline locally
|
|
|
|
# 快速開發命令
|
|
quick-check: lint-fix format type-check ## Quick check with auto-fix (recommended for development)
|
|
|
|
# Windows PowerShell 專用命令
|
|
ps-clean: ## PowerShell version of clean (Windows)
|
|
powershell -Command "Get-ChildItem -Path . -Recurse -Name '__pycache__' | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue; Get-ChildItem -Path . -Recurse -Name '*.pyc' | Remove-Item -Force -ErrorAction SilentlyContinue; @('.mypy_cache', '.ruff_cache', '.pytest_cache', 'htmlcov', 'dist', 'build') | ForEach-Object { if (Test-Path $$_) { Remove-Item $$_ -Recurse -Force } }"
|
|
|
|
# 桌面應用程式相關命令
|
|
check-rust: ## Check Rust development environment
|
|
@echo "🔍 Checking Rust environment..."
|
|
@rustc --version || (echo "❌ Rust not installed. Please visit https://rustup.rs/" && exit 1)
|
|
@cargo --version || (echo "❌ Cargo not installed" && exit 1)
|
|
@cargo install --list | grep tauri-cli || (echo "⚠️ Tauri CLI not installed, installing..." && cargo install tauri-cli)
|
|
@echo "✅ Rust environment check completed"
|
|
|
|
build-desktop: ## Build desktop application (debug mode)
|
|
@echo "🔨 Building desktop application (debug)..."
|
|
uv run python scripts/build_desktop.py
|
|
|
|
build-desktop-release: ## Build desktop application (release mode)
|
|
@echo "🚀 Building desktop application (release)..."
|
|
uv run python scripts/build_desktop.py --release
|
|
|
|
test-desktop: build-desktop ## Test desktop application
|
|
@echo "🖥️ Testing desktop application..."
|
|
uv run python -m mcp_feedback_enhanced test --desktop
|
|
|
|
clean-desktop: ## Clean desktop build artifacts
|
|
@echo "🧹 Cleaning desktop build artifacts..."
|
|
uv run python scripts/build_desktop.py --clean
|
|
|
|
# 完整構建流程(包含桌面應用程式)
|
|
build-all: clean build-desktop-release build ## Build complete package with desktop app
|
|
@echo "🎉 Complete build finished!"
|
|
|
|
# 測試所有功能
|
|
test-all: test test-func test-desktop ## Run all tests including desktop and functional tests
|
|
@echo "✅ All tests completed!"
|