Development Working Group
From Joomla! Documentation
Revision as of 15:25, 5 August 2008 by Willebil
This article or section is incomplete, which means it may be lacking information. You are welcome to assist in its completion by editing it as well. If this article or section
"..To develop a cutting edge, state of the art Web Content Management application framework..."
The main responsibility of the Development Working Group is taking care of the development of the Joomla! application framework and the Joomla! Content Management System (CMS). Besides the development of the Joomla! codebase the development working group defines the Joomla! roadmap strategy, creating (architectural) designs for major and minor versions and of course take care of bug and security fixes in maintenance versions.
The development working group holds two teams: the Development Team and the so called Bug Squad. Both teams have a separate responsibility but together they form the development force for the Joomla! project.
Joomla! is as every other open-source project based upon the fundaments of collaborative and is a community-driven project. This means that the software, the documentation, the ever growing number of available the extensions, support (forum, mailing, lists newsletters, user groups are collaboratively produced by users and developers all over the world.
In this section of the documentation wiki we have tried to describe all relevant aspects to Joomla! development. OUr effort strives to be as complete as we can be, but we don't rule out that information you are looking for is not (yet) documented. We encourage everyone to help completing the documentation effort and maximize the community effect within the Joomla! project.
- 1 Joomla! development goals
- 2 How to contribute to Joomla! development
- 3 Coding standards
- 4 Writing secure Joomla! code
- 5 Joomla! maintenance
- 6 Unit testing within Joomla!
- 7 What does a Joomla! development environment look like
- 8 Debugging your Joomla! code
- 9 Subversion (SVN)
- 10 Joomla! organization
- 11 Joomla! planning process and procedures
- 12 Miscellaneous
Joomla! development goals
How to contribute to Joomla! development
Writing secure Joomla! code
Unit testing within Joomla!
The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result, it affords several benefits. Unit tests find problems early in the development cycle.
In computer programming, unit testing is a method of testing that verifies the individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method, which may belong to a base/super class, abstract class or derived/child class.
Ideally, each test case is independent from the others; Double objects like stubs, mock or fake objects as well as test harnesses can be used to assist testing a module in isolation. Unit testing is typically done by software developers to ensure that the code they have written meets software requirements and behaves as the developer intended.
Ground work on the implementation of unit testing has been done by Enno Klasing during the Summer of Code 2007 project and has been perfected by Alan Langford from the Joomla! Development Team. The way Unit Testing is implemented within the Joomla! project has been documented in the Unit Testing chapter.
What does a Joomla! development environment look like
Debugging your Joomla! code
- An explanation on how the Development Team is organized.
- An explanation on how the Bug Squad is organized.
Joomla! planning process and procedures
- Description on the Development Strategy of Joomla!
- A description of how the Joomla! Maintenance Procedures are organized
- Release procedure and checklist
- Team member administration
This is "old" content and needs to be moved to the final location in this wiki, work in progress...