Development:Overview
A lot of people ask how the development of Moodle operates. This page should give you a working overview that should help in understanding a lot of other developer documentation.
(more coming soon)
The key players
- Martin Dougiamas
- Martin is the lead developer of Moodle. Generally he tries to facilitate democracy and meritocracy but occasionally has to make executive decisions on things.
- Moodle HQ
- The mostly-Australian team of developers who are directly funded by the Moodle project to work full-time on core developments. Developers include Martin Dougiamas (moodler), Yu Zhang (lazyfish), Petr Skoda (skodak), Nicolas Connault, Helen Foster (wildgirl) and occasionally Eloy Lafuente (stronk7), Jamie Pratt (jamiesensei).
- Catalyst
- The team of developers working for Moodle clients via Catalyst Ltd in New Zealand, resulting in a lot of core development. Developers include Martin Langhoff, Penny Leach (mjollnir), Matt Clarkson, and Donal McMullan.
- Open University
- The team of developers working on Moodle implementations at Open University in the UK. Developers include Tim Hunt, Sam Marshall, Nick Freear, Thanh Le and Jenny Gray.
There are many other people contributing to Moodle in many ways, these are just the main groups currently working on core development.
Moodle versions
Moodle major releases occur roughly 6 months or more apart, on no fixed schedule. Each major release increments the version number by 0.1. Minor releases (no new features, just fixes) on each stable branch can occur at any time, whenever enough bug fixes have been made to justify them. The full details can be seen in the [Release notes].
The current development version is always on the trunk of CVS (ie HEAD), while stable branches are split off for every major version (eg MOODLE_18_STABLE).
Release cycles
Generally a cycle works like this:
- Rapid Development
- Long period of several months adding code to the HEAD version of Moodle. At the same time, all fixes that don't involve database changes or radical core changes are backported to the last two or three stable branches.
- Head Freeze
- At some point Martin declares a freeze on new work for a short period to stabilise the core. All database changes and radical core changes need to have explicit permission from Martin. This period may be one or two weeks.
- Beta period
- Once things get fairly stable, Martin declares a BETA version and this point is marked on HEAD as MOODLE_XX_BETA (eg MOODLE_19_BETA). Install packages are generated from this for wider testing and feedback via the tracker. The freeze continues. This testing period may be anywhere from 2 to 6 weeks.
- Major release
- When the core code passes all the testing, the MOODLE_XX_BETA flag is moved up as a branchpoint, and a new stable branch named MOODLE_XX_STABLE is created. Packages are created, and the release is announced.
Then it all starts again!