Sketch out anything in the Wiki and prepare for making it
something people can look at.
Put it on the proposals page: http://docs.codehaus.org/display/MAVEN/All+Proposals
Put the proposal up for a vote to see if people agree. All these
can be vetoed as it's a technical decisions.
You're good to go,so you can start the process of implementing
your changes.
Create a feature/change branch and start working on your code.
Putting a link to your work in progress in the Wiki. The goal is to
never destabilize the main line be that the trunk of version branch.
Ok, so the new features start on trunk but the new feature is a
branch of trunk. The point being feature additions don't destabilize
the trunk. The series of branches associated with issues also
provides a clear path of what happened, branches named with something
like MNG-123-AndMaybeSomeQuickDescription make it easy to know what
it is and to look up the issue. For dead simple fixes things can go
into the trunk but anything requiring more then a few hours of work
should go into a feature branch of trunk. When it's merged back into
trunk, if it's possible it is then merged back into any version
branches (like 2.0.x).
You now document the new features or changes that you have
implemented and detail and compatibility issues. You must have at
least one other core committer review your changes to be deemed
as complete.
You move your proposal to the approved proposals section of the
Wiki and it becomes a record of the evolution of Maven.