-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
134 lines (106 loc) · 3.15 KB
/
Copy pathMakefile
File metadata and controls
134 lines (106 loc) · 3.15 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# ML Systems Evaluation Framework - Development Makefile
.PHONY: help install install-dev install-docs test test-verbose test-coverage lint format check clean build docker-build docker-run docs docs-sphinx dev-setup ci-check full-setup quick-test quick-lint quick-format api api-dev api-test
# Default target
help:
@echo "ML Systems Evaluation Framework - Development Commands"
@echo ""
@echo "Installation:"
@echo " install Install production dependencies"
@echo " install-dev Install development dependencies"
@echo " dev-setup Install dev dependencies (recommended)"
@echo ""
@echo "Development:"
@echo " test Run tests"
@echo " test-verbose Run tests with verbose output"
@echo " test-coverage Run tests with coverage"
@echo " lint Run linting checks"
@echo " format Format code"
@echo " check Run all quality checks (lint + format)"
@echo ""
@echo "API:"
@echo " api Start API server"
@echo " api-dev Start API server in development mode"
@echo " api-test Run API tests"
@echo ""
@echo "Build:"
@echo " build Build the package"
@echo " clean Clean build artifacts"
@echo ""
@echo "Docker:"
@echo " docker-build Build Docker image"
@echo " docker-run Run Docker container"
@echo ""
@echo "Documentation:"
@echo " docs Show documentation info"
@echo " docs-sphinx Build Sphinx documentation"
@echo " docs-sphinx-serve Build and serve Sphinx documentation"
@echo ""
# Installation
install:
uv sync --frozen
install-dev:
uv sync --extra dev --frozen
# Testing
test:
uv run pytest
test-verbose:
uv run pytest -v
test-coverage:
uv run pytest --cov=ml_eval --cov-report=html --cov-report=term
# Code Quality
lint:
uv run ruff check --fix .
format:
uv run ruff format .
check: lint format
# API
api:
uv run ml-eval-api
api-dev:
uv run ml-eval-api --reload
api-test:
uv run pytest tests/test_api.py -v
# Build
build:
uv build
clean:
rm -rf build/ dist/ *.egg-info/ htmlcov/ .coverage .pytest_cache/ .ruff_cache/
# Docker
docker-build:
docker build -t ml-systems-evaluation .
docker-run:
docker run -it --rm ml-systems-evaluation
# Documentation
docs:
@echo "📚 Documentation"
@echo " 📝 Markdown: docs/README.md (Primary format)"
@echo " 🔧 Sphinx: docs_sphinx/ (API docs only)"
@echo " 📚 GitHub: https://github.com/phanhongan/ml-systems-evaluation"
docs-sphinx:
cd docs_sphinx && uv run make html
docs-sphinx-serve:
cd docs_sphinx && uv run make serve
# Documentation utilities (simplified)
docs-build:
@echo "📚 Building documentation..."
@echo "✅ Markdown documentation is ready in docs/"
@echo "🔧 Sphinx API docs: make docs-sphinx"
docs-serve:
@echo "📚 Serving documentation..."
@echo "📝 Markdown: View docs/README.md"
@echo "🔧 Sphinx: make docs-sphinx-serve"
# Development setup
dev-setup: install-dev
@echo "✅ Development environment ready!"
# CI checks
ci-check: lint test
# Full setup for new developers
full-setup: dev-setup
@echo "✅ Full development environment ready!"
# Quick commands for development
quick-test:
uv run pytest -x
quick-lint:
uv run ruff check .
quick-format:
uv run ruff format .