Usage#
Development#
The project uses uv for Python dependency management and direnv for automatic environment activation.
Make Targets#
Run make help for the full list:
init Install pre-commit hooks
lint Lint codebase with pre-commit
type Type-check Python scripts with mypy
test Run tests with pytest and coverage
xdoc Run xdoctest on scripts
check Run all checks (lint + type + test + cov)
docs Build Sphinx documentation
bump Bump version, update changelog, and tag release
test-emacs Run Emacs smoke tests
upgrade-emacs Full upgrade: update + smoke tests
thaw-emacs Restore straight.el repos to match lockfile
clean Remove temporary and cache files
Commit Conventions#
Follow Conventional Commits. Scopes reflect the configuration domain:
feat(emacs): add consult-ripgrep binding
fix(git): correct delta pager config
chore(deps): update uv.lock
Testing#
make test # Python script tests
make test-emacs # Emacs smoke tests (~70 checks)
make xdoc # Run doctests
make check # lint + type + test + coverage
CI / Automation#
Workflow |
Trigger |
Purpose |
|---|---|---|
|
push, PR |
pre-commit lint, pytest, auto-merge |
|
dispatch, push |
Emacs smoke tests / package update + PR |
|
weekly, dispatch |
Apply cookiecutter template updates |
|
weekly, dispatch |
|
|
tag push |
Publish release |