Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

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:

Talktorials

Teaching content

Refine explanations, add exercises, repair broken outputs, and keep notebooks runnable from top to bottom.

Documentation

Structure and context

Improve installation notes, page structure, citations, links, and the scientific framing around each lesson.

Utilities

Library code

Add small helpers that reduce notebook boilerplate without expanding the public API unnecessarily.

Feedback

No code required

Report broken pages, unclear concepts, missing dependencies, or examples that are hard to reproduce.


Workflow

Steps
  1. Fork the repository and create a feature branch.

  2. Make a focused change.

  3. Run the tests and checks locally.

  4. Open a pull request with a clear description.

  5. Include screenshots when the change is visual.

Local checks
uv run pytest
uv run flake8 synedu tests

Or run the bundled target, which chains linting, the fast tests, and the notebook-export consistency check:

make check

When a talktorial changes, regenerate the versioned notebook exports before opening the pull request:

make build-downloads DOWNLOAD_DIR=docs/downloads

Guidelines

The repository root also contains CONTRIBUTING.md with the short-form developer workflow, notebook execution commands, and paper-readiness checklist.