Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions Makefile
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
# Root task entrypoints (uv workspace). Tools land in Epic 2 (#17–#20).
.PHONY: sync test lint typecheck build help

help:
@echo "Targets: sync test lint typecheck build"
@echo "All commands run via uv from the workspace root."

sync:
uv sync

test:
uv run pytest

lint:
uv run ruff check .

typecheck:
uv run pyright

build:
uv build --all --out-dir dist
15 changes: 15 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,6 +26,21 @@ uv sync
```



## Development commands

From the repo root (requires [uv](https://docs.astral.sh/uv/)):

| Task | Make | Equivalent |
|------|------|------------|
| Install workspace | `make sync` | `uv sync` |
| Tests | `make test` | `uv run pytest` |
| Lint | `make lint` | `uv run ruff check .` |
| Type-check | `make typecheck` | `uv run pyright` |
| Build packages | `make build` | `uv build --all` |

> Ruff, Pyright, and pytest are wired in Epic 2 (`#17`–`#20`). Until then, `make lint` / `test` / `typecheck` will fail if those tools are not installed yet — that is expected.

## Python version

- **Pin file:** `.python-version` → `3.12`
Expand Down
5 changes: 5 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,3 +10,8 @@ members = ["packages/*"]
[tool.uv]
# Prefer the pinned interpreter from .python-version when creating the venv.
python-preference = "managed"


# Dev tools are added in Epic 2; groups reserved so root tasks stay stable.
[dependency-groups]
dev = []