- Move src/clide/ to clide/ (flatten directory structure) - Add SettingsService for persistent user preferences - Settings stored in ~/.clide/settings.json - Persist theme, panel visibility, and compact mode state - Fix terminal rendering glitch with throttled refresh (~60fps) - Update pyproject.toml, Makefile, and tests for new structure Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
96 lines
2.3 KiB
Makefile
96 lines
2.3 KiB
Makefile
.PHONY: setup run test test-single typecheck lint format build build-all clean help
|
|
|
|
PYTHON := python3.12
|
|
VENV := .venv
|
|
BIN := $(VENV)/bin
|
|
TEST ?= tests/
|
|
|
|
# Colors for output
|
|
BLUE := \033[0;34m
|
|
GREEN := \033[0;32m
|
|
RESET := \033[0m
|
|
|
|
help:
|
|
@echo "$(BLUE)Clide Development Commands$(RESET)"
|
|
@echo ""
|
|
@echo "$(GREEN)setup$(RESET) Create venv and install dependencies"
|
|
@echo "$(GREEN)run$(RESET) Run the application"
|
|
@echo "$(GREEN)test$(RESET) Run all tests"
|
|
@echo "$(GREEN)test-single$(RESET) Run single test (TEST=path::test_name)"
|
|
@echo "$(GREEN)typecheck$(RESET) Run mypy type checking"
|
|
@echo "$(GREEN)lint$(RESET) Run ruff linter"
|
|
@echo "$(GREEN)format$(RESET) Run ruff formatter"
|
|
@echo "$(GREEN)build$(RESET) Build executable for current platform"
|
|
@echo "$(GREEN)clean$(RESET) Remove build artifacts and caches"
|
|
|
|
setup:
|
|
@echo "Creating virtual environment..."
|
|
$(PYTHON) -m venv $(VENV)
|
|
@echo "Installing dependencies..."
|
|
$(BIN)/pip install --upgrade pip
|
|
$(BIN)/pip install -e ".[dev,build]"
|
|
@echo "Installing pre-commit hooks..."
|
|
$(BIN)/pre-commit install || true
|
|
@echo "$(GREEN)Setup complete! Activate with: source $(VENV)/bin/activate$(RESET)"
|
|
|
|
run:
|
|
$(BIN)/python -m clide
|
|
|
|
test:
|
|
$(BIN)/pytest $(TEST)
|
|
|
|
test-single:
|
|
$(BIN)/pytest $(TEST) -v
|
|
|
|
test-cov:
|
|
$(BIN)/pytest --cov=clide/clide --cov-report=html --cov-report=term
|
|
|
|
test-snapshots:
|
|
$(BIN)/pytest tests/snapshots/
|
|
|
|
test-snapshots-update:
|
|
$(BIN)/pytest tests/snapshots/ --snapshot-update
|
|
|
|
typecheck:
|
|
$(BIN)/mypy clide/
|
|
|
|
lint:
|
|
$(BIN)/ruff check clide/ tests/
|
|
|
|
format:
|
|
$(BIN)/ruff format clide/ tests/
|
|
$(BIN)/ruff check --fix clide/ tests/
|
|
|
|
build:
|
|
$(BIN)/pyinstaller clide.spec --clean
|
|
|
|
build-onefile:
|
|
$(BIN)/pyinstaller \
|
|
--name clide \
|
|
--onefile \
|
|
--clean \
|
|
--noconfirm \
|
|
clide/clide/__main__.py
|
|
|
|
clean:
|
|
rm -rf $(VENV)
|
|
rm -rf dist/ build/
|
|
rm -rf .pytest_cache/ .mypy_cache/ .ruff_cache/
|
|
rm -rf htmlcov/ .coverage
|
|
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type f -name "*.pyc" -delete 2>/dev/null || true
|
|
|
|
# CI targets (for GitHub Actions)
|
|
ci-lint:
|
|
pip install ruff mypy
|
|
ruff check clide/ tests/
|
|
mypy clide/
|
|
|
|
ci-test:
|
|
pip install -e ".[dev]"
|
|
pytest --cov=clide/clide --cov-report=xml
|
|
|
|
ci-build:
|
|
pip install -e ".[build]"
|
|
pyinstaller clide.spec --clean
|