Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Overview: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
Line 1: Line 1:
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.
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)
(This page is under early construction)


==The key players==
==The key players==

Revision as of 08:14, 24 September 2007

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.

(This page is under early construction)

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!

Quality control

Coding Standards

XMLDB

XHTML

Forms

Access

Other core libraries

Plugins

Development processes

Major Development

Make a proposal

Create a specification in Moodle Docs

Seek and absorb community feedback

Set up tasks in the Moodle Tracker

Use CVS and link commits to Tracker

Comment on milestones in forums and tracker

Respond to bug reports

Minor Development

Create a new issue in the tracker

Attach a patch

Promote the patch

How can you become a Moodle developer?