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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,6 @@ models/*

# Agent-local settings (per-machine permission allowlists)
.claude/settings.local.json

# Package build output (make build)
/dist/
3 changes: 2 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Always use the Makefile. `make help` lists every target; this is the full set:
| `make check-sample` | Transcribe the AMI sample; print WER against `samples/ami/EN2002b-human.txt` (no gate); fail if any word differs from `samples/ami/EN2002b-reference.txt` |
| `make test-fast` | pytest without the `slow` (real inference) tests |
| `make test` | Whole suite; never touches `tmp/output` |
| `make build` | `python -m build` into `dist/`, as CI does |
| `make lint` | `ruff check` and `ruff format --check` |
| `make format` | `ruff format` |
| `make typecheck` | `mypy --strict` |
Expand Down Expand Up @@ -415,7 +416,7 @@ fails loudly.
extend one that already covers it. Use synthetic fixtures where possible, and
the slow whisper tests only when testing whisper behavior.
6. Run `make lint`, `make typecheck` and `make test` before declaring done.
`lefthook install` runs `make lint typecheck test-fast` before every push (`lefthook.yml`).
`lefthook install` runs `make lint typecheck test-fast build` before every push (`lefthook.yml`).

## Common Pitfalls

Expand Down
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.PHONY: help check-deps setup install setup-whisper run run-single \
combine-transcripts filter-vtt session-env compare-transcripts create-sample-files sample-ami check-sample test test-fast lint format typecheck lint-pyrefly \
combine-transcripts filter-vtt session-env compare-transcripts create-sample-files sample-ami check-sample test test-fast build lint format typecheck lint-pyrefly \
clean-output clean-tmp

ROOT_DIR := $(shell pwd)
Expand Down Expand Up @@ -133,6 +133,9 @@ test: ## Run the whole suite, including real whisper/VAD inference
test-fast: ## Run the suite without the slow inference tests
$(VENV_CMD) python -m pytest tests/ -v -m "not slow"

build: ## Build the sdist and wheel into dist/, as CI does
$(VENV_CMD) python -m build

lint: ## Run ruff check and ruff format --check
$(VENV_CMD) ruff check --output-format concise . && ruff format --check .

Expand Down
3 changes: 2 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@ make check-sample # Transcribe the 4-speaker AMI sample; p
make lint # ruff check and format check
make format # ruff format
make typecheck # mypy --strict
lefthook install # Run lint, typecheck and test-fast before every push
make build # sdist and wheel into dist/, as CI does
lefthook install # Run lint, typecheck, test-fast and build before every push
make clean-output # Delete every session's outputs under tmp/output
```

Expand Down
4 changes: 2 additions & 2 deletions lefthook.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Runs what CI runs, minus the package build. Install once per clone: `lefthook install`.
# Runs what CI runs. Install once per clone: `lefthook install`.
pre-push:
jobs:
- name: check
# Git's repo variables break tools run from a linked worktree.
run: unset $(git rev-parse --local-env-vars); make lint typecheck test-fast
run: unset $(git rev-parse --local-env-vars); make lint typecheck test-fast build
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ classifiers = [

[project.optional-dependencies]
dev = [
"build==1.6.1",
"mypy==2.4.0",
"pyrefly==1.4.0",
"pytest==9.1.1",
Expand Down
Loading