Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

The Different Development Modes

This page is definitely in-progress.

Commit-Then-Review

C-T-R mode (CTR) is short for "Commit-then-Review". This is the standard development mode that we operate in. It means that committers may commit patches to the development tree without the code/rules/etc being reviewed by other committers first. Typically SVN trunk is in C-T-R mode until a new release is approaching. We then either switch trunk to R-T-C mode or use a branch that is in R-T-C mode (see below) for the final development up to release, to stabilise the codebase.

When using a branch for development (e.g., when trunk was being used for 4.0, while development for 3.4.x was done in a 3.4 branch) any fix or change for an issue that applies to both trunk and branch should be committed first to trunk, then to the branch, to ensure that the change is not inadvertently left out of trunk. When trunk is in C-T-R mode and the branch is in R-T-C mode this would require a vote after the commit is applied to trunk but before the commit is applied to the branch.  Note that this workflow is likely to change if the project moves from using svn to git, which more commonly makes use of feature branches for testing followed by a pull release to apply to a master (trunk) branch rather than committing to master first.

Review-Then-Commit

R-T-C mode (RTC) is short for "Review-then-Commit".


Wiki Markup
Non-trivial patches (see below for a definition of what's considered a 'trivial' change) must be reviewed by committers, and need consensus approval before being committed into the development tree. This is done by opening a Bugzilla ticket, setting the Target Milestone to the correct release version of the tree, attaching the suggested patch to the ticket via the web interface, and putting the ticket in "review" status (indicated by adding {{\[review\]}} as a prefix to the ticket summary).


The patch is then voted upon, and if gets a consensus approval and is not vetoed, can be applied to the tree. Votes should generally be permitted to run for at least 24 hours to provide an opportunity for all concerned persons to participate regardless of their geographic locations. "Consensus approval" refers to a vote which has completed with at least three binding +1 votes and no -1 vetos.

...

  • documentation
  • finishing off pre-existing T_ tests
  • changes to rules in the "rules" or "rulesrc" trees
  • non-controversial non-semantic style changes (fixing indentation, adding comments, but not actual code)
  • very simple, non-controversial, and absolutely safe bug fixes (i.e.: removing repetitive my() enclosing sections)

These can be applied without a vote.

...