This Idea came up at this years Moodle Hochschultreffen in Rosenheim (Link to Forum-Post).
- Define a JSON Schema and YAML/JSON format that fully describes a Moodle codebase: core version/source plus plugins and their sources (moodle.org, moodle-marketplace, git, url/zip, ...).
- Based on this schema, we build a minimal, CI‑ready reference implementation (e.g. using Python/Ansible/Docker) that validates the config, fetches Moodle core, and places plugins into the correct directories. The goal is a reusable “Moodle as Code” model and one working example pipeline that others can adapt to their own tooling and environments.
Use cases
- Unify a common problem that all of us solve quite differently, yet similar. Make deployment easier and better for everyone.
- Furthermore such a schema could eventually be re-used in something similar like WordPress/Env:
.moodle-env.jsonin plugin folder would allow a small npm tool to automatically spin up a dev container as defined, which making contributing to moodle plugins easier.