Navigating the code development process (part 1 of 2)
While at JAB11 last month, I heard comments from more than a few developers that it could be difficult to get their code accepted into the Joomla! core. So I committed to publishing a JCM article to try and address those concerns. In the first article of this two part series, we will take an overview of how the existing development process works. Developers are encouraged to post their questions and comments below this article throughout the month of June (the earlier the better), so that some of those questions and comments may be used as the basis for next month's concluding article in this series.
ResourcesThe best starting places for learning about how the development process works are the following pages on developer.joomla.org:
Steps in the code development processIn one sense, it is difficult to get code accepted into the Joomla! core, because it takes discipline, hard work, and committment! Here are the general steps for those who would like to contribute code to the core:
- Understand the vision: A theme or vision will be assigned to each upcoming minor release to help people know what kind of ideas may be the best fit for that release. The theme/vision will be discussed at a developer summit held around the time that a new minor release reaches the GA (General Availability) milestone. The theme/vision is designed to help guide the general direction of the next minor release, but it doesn't prevent people from making contributions outside of that theme/vision.
- Come up with your idea: Use the Joomla! Idea Pool to explore existing ideas, share new ones, and connect with other developers who share a passion for your idea.
- Collaborate: People are encouraged to create ad-hoc teams to work on their coding ideas. These teams can form at the Joomla! Idea Pool. Whether you form a team or work as an individual, stay in touch with the larger development community (through mailing lists, IRC channels, issue trackers, and forums) regarding your progress in order to build stronger support for your work.
- Sign the JCA: Signing the Joomla! Contributor Agreement (JCA) enables your code to be included in Joomla! under the GPL license.
- Join the CMS list: Join the Joomla! Development CMS Google Group and share your idea with the group.
- Submit your RFC: A Request for Comments (RFC) is a document submitted for peer review that describes your proposed changes to the Joomla! software platform. You can use the Joomla! Idea Pool to draft an RFC for your idea. RFCs must answer at least one of the following two questions to be seriously considered by the Joomla! Production Leadership Team PLT:
- How can the idea be implemented at a technical level?
- How does the idea make the Joomla platform behave at a functional level?
- PLT evaluation of your RFC: A decision will made by the PLT on sufficiently detailed RFCs regarding whether it will marked as a priority for inclusion in the current development release. The priority for the change will take into account its popularity and the synergy with the current development vision.
- Get a branch: Send an email to the CMS list and request a Subversion branch. Explain the purpose for your branch and whether you want others to help you with your coding. Once someone from PLT responds and creates your branch, keep it up to date with the latest trunk version.
- Coding standards, testing, and documentation: Follow the Joomla! Coding Standards, get your code to pass automated system tests, write automated tests for any new methods or classes, and document your code.