Contributions to the notebooks, documentation, and Python helpers are welcome.
Open an issue Browse pull requests Set up locally
Where to start¶
Possible contributions include:
Teaching content
Refine explanations, add exercises, repair broken outputs, and keep notebooks runnable from top to bottom.
Structure and context
Improve installation notes, page structure, citations, links, and the scientific framing around each lesson.
Library code
Add small helpers that reduce notebook boilerplate without expanding the public API unnecessarily.
No code required
Report broken pages, unclear concepts, missing dependencies, or examples that are hard to reproduce.
Workflow¶
Fork the repository and create a feature branch.
Make a focused change.
Run the tests and checks locally.
Open a pull request with a clear description.
Include screenshots when the change is visual.
uv run pytest
uv run flake8 synedu testsOr run the bundled target, which chains linting, the fast tests, and the notebook-export consistency check:
make checkWhen a talktorial changes, regenerate the versioned notebook exports before opening the pull request:
make build-downloads DOWNLOAD_DIR=docs/downloadsGuidelines¶
Keep notebooks runnable from top to bottom.
Prefer small, composable functions in library code.
Move reusable logic into
syneduinstead of duplicating it in notebooks.Keep helper utilities lightweight and teaching-focused.
Describe how the change affects teaching or reproducibility.
The repository root also contains CONTRIBUTING.md with the short-form
developer workflow, notebook execution commands, and paper-readiness checklist.