Thanks for considering a contribution to the template repo itself. This document is for people who want to improve the scaffold (CI workflows, examples, dev tooling, docs) that downstream plugin authors will inherit.
If you arrived here after clicking "Use this template" on GitHub: this file does not apply to your new plugin repo. Follow the README's Use this template section, which includes a step that removes this file along with the other template-only community files.
By participating in this project, you agree to abide by the Code of Conduct.
- Python 3.10 or higher
- uv for dependency management
toxfor running checks (installed via the dev extras)
- Fork the repository and clone your fork:
git clone https://github.com/<your-username>/mloda-plugin-template.git
cd mloda-plugin-template- Create the virtualenv and install dependencies:
uv venv
source .venv/bin/activate
uv sync --all-extras- Verify your setup by running the full check suite:
toxtox is the gate. It runs:
pytestfor testsruff format --check --line-length 120for formattingruff checkfor lintingmypy --strict --ignore-missing-importsfor type checkingbandit -c pyproject.toml -r -qfor security
All of these must pass before a PR is mergeable. A separate tox -e security environment runs pip-audit for CVE scanning of installed dependencies.
- Type hints: use modern forms (
list[str],dict[str, int],X | None). - Line length: 120.
- Tests: every new feature or bug fix must come with tests; follow the patterns in
tests/andplaceholder/.../tests/. - Commits: use Conventional Commits (
feat:,fix:,chore:,docs:,test:,refactor:,style:,ci:,build:,perf:). semantic-release uses standard rules:feat:triggers a minor bump, all others trigger a patch (see.releaserc.yaml). - No
Co-Authored-Bylines or other AI agent mentions in commit messages or PR descriptions.
- Create a feature branch from
main:
git checkout -b fix/short-description- Make your changes; run
toxlocally and confirm it passes. - Commit using Conventional Commits format.
- Push to your fork and open a pull request targeting
main. - CI runs the full tox suite. All checks must pass before merge.
Use the issue form at .github/ISSUE_TEMPLATE/issue.yml. It asks for a one-sentence summary, reproduction or motivation, optional code pointers, and an optional definition of done. See the Issue Creation section in AGENTS.md for more guidance.
This repo is the scaffold for new mloda plugins, not a plugin itself. If you want to:
- Build a new plugin: click "Use this template" on GitHub, then follow docs/getting-started.md and the README's Use this template section. The full plugin development walkthrough lives in mloda-registry/docs/guides/.
- Contribute to the core framework: see mloda.
- Contribute to community plugins: see mloda-registry.
By contributing, you agree that your contributions will be licensed under the Apache License, Version 2.0.