This repository uses uv, make, and pytest-based validation as the canonical
contributor workflow. If a doc conflicts with this file, treat this file as the
source of truth.
-
Fork and clone the repository:
git clone https://github.com/cincibrainlab/autoclean_pipeline.git cd autoclean_pipeline -
Install the package as an editable uv tool:
uv tool install -e --upgrade . --force -
Install contributor tooling:
make install-dev python3 scripts/uv_tools.py run pre-commit install
We use a Makefile to standardize development workflows and ensure consistency across all contributors. Why use Make? Instead of remembering complex command combinations and tool invocations, developers can use simple, consistent commands like make format or make check. This approach:
- Eliminates dependency conflicts: Uses
uv toolfor isolated tool management - Standardizes workflows: All developers run the same commands
- Simplifies CI replication: Run
make ci-checkto test locally before pushing - Reduces errors: No need to remember tool paths, flags, or correct parameter order
make help
Show all available development targets.
make helpmake check
Run the standard formatting and lint checks together.
make checkmake format
Auto-format Python code with the configured tooling.
make formatmake lint
Run the configured lint checks.
make lintmake test
Run the unit test suite.
make testmake test-cov
Run the tests with coverage output.
make test-covmake ci-check
Run the local CI-equivalent validation flow.
make ci-checkmake clean
Remove common generated caches and temporary files.
make cleanWe use automated tools for code quality. Run before committing:
make format
Auto-format the codebase before review.
make formatmake lint
Run the standard lint checks before review.
make lintmake check
Run formatting and lint checks together.
make checkAlternatively, you can run tools directly:
black src tests scripts
isort src tests scripts
ruff check src tests scripts
mypy src/autocleanConfiguration is in pyproject.toml.
Run the test suite:
make test
Run the main unit test suite.
make testmake test-cov
Run tests with coverage reporting enabled.
make test-covmake test-all
Run the broader test suite including integration coverage.
make test-allOr run pytest directly:
pytest tests/unit -v
pytest tests/integration -v --tb=shortBuild documentation locally:
make docs-setup
Install the local documentation dependencies.
make docs-setupmake docs-build
Build the Sphinx documentation locally.
make docs-buildmake docs-serve
Serve the built documentation locally.
make docs-serveOr build directly:
make -C docs htmlDocumentation navigation:
- main docs tree: docs/INDEX.md
Docs publishing:
.github/workflows/docs.ymlis the canonical GitHub Pages deployment path- pushes to
mainpublishdocs/_build/html - pull requests should validate docs in CI, not by updating a separate
gh-pagesbranch
Frontend workflow:
- the Serve frontend lives under
web/ - run frontend build and test commands from that directory via web/package.json
- frontend changes should pass
cd web && npm testandcd web && npm run build
Validation policy:
- required CI checks cover formatting, linting, unit tests, docs build, package smoke checks, and frontend validation
- heavier or environment-specific testing is maintainer-driven and should not be assumed to run on every public PR
Supported public entrypoints:
autocleaneeg-pipelineautocleaneeg-serveautocleaneeg-tui
Serve command model:
- use
autocleaneeg-servefor the normal daemon lifecycle: foreground start,up,down,restart,status, andshare - use
autocleaneeg-pipeline serve ...for workspace selection, route management, validation, deployment, queue inspection, dispatcher control, and lower-level API/TUI/worker commands
Compatibility notes:
- prefer the public entrypoints above in new docs, examples, and contributor work
- treat older or compatibility-only paths in-tree as implementation details unless a maintainer explicitly documents them for public use
-
Create a feature branch from
main -
Add tests for new functionality
-
Update documentation as needed
-
Ensure linting and tests pass:
make ci-checkRun the local CI-equivalent validation flow before opening the PR.make ci-check
-
Submit a pull request with a clear description
Use the GitHub issue tracker. Include:
- Steps to reproduce
- Expected vs. actual behavior
- Relevant logs or tracebacks
Contributions are licensed under the MIT License. See LICENSE.md for details.