Skip to content

Contributing

Welcome! This page is a quick orientation for contributors. The full and authoritative guidelines live in the repository's CONTRIBUTING.md; please skim it before opening a pull request.

Quick start

git clone https://github.com/wybthon/wybthon.git
cd wybthon
uv sync --group dev --group docs

uv creates .venv and installs the framework, the dev tooling, and the docs site dependencies. Prefix commands with uv run to use that environment, for example uv run pytest -q or uv run mkdocs serve.

Where to make changes

Want to change... Look here
Framework code src/wybthon/
Demo apps Standalone repos under the wybthon organization, e.g. demo-template
Documentation site docs/
Tests tests/
Lint / format / typing config pyproject.toml

Coding standards

  • Source code targets Python 3.14 with type hints throughout.
  • Docstrings use the Google style documented in the docs style guide. The Ruff pydocstyle ruleset enforces this.
  • Format with uv run ruff format . and lint with uv run ruff check . before pushing.
  • Run uv run mypy and uv run pytest -q to verify types and tests. CI requires 80% coverage.
  • ./scripts/check.sh runs everything CI's unit job runs, in the same order.

Updating documentation

  • Author new pages under docs/ and add them to mkdocs.yml.
  • Build the site locally with mkdocs serve (or mkdocs build --strict to fail on warnings the way CI does).
  • Cross-reference Python symbols with [label][wybthon.symbol] syntax; see the style guide for details.

Filing a pull request

  1. Open an issue first for non-trivial changes so we can align on the approach.
  2. Keep PRs focused: one logical change per PR makes review easier.
  3. Add or update tests when changing behavior.
  4. Update the relevant docs page(s) so the framework stays self-explanatory.

Next steps