We have finished most parts of the Development Coordinator Summit over the last few days. We have had some pretty intense days of discussing our agenda, that covered the following topics:
- Development Vision
- Healthy Development Team
- Operational and Organisational Structure
This mail is a summary of the outcome of these topics. When you read it is important to understand that we only covered the highlights and have set direction and focus for Joomla development. It will take time, and considerable effort from everyone involved in the project to achieve our goals, but we are excited. It's impossible to share every detail but the following presents a summary of each major topic.
1. Development Vision
- Release early and often. In the spirit of Eric Raymond we support this approach. We want to shorten development cycles, and have more regular releases.
- Maintenance releases are handled by the bug squad. Bug squad does a very good job, we would like to continue with that.
- Minor releases are handled by the development team but with a change to being vision based and time-boxed (similar to some other projects, eg Ubuntu). We would like to see teams of people focus on specific topics, and work from there to a beta version. From there on the bug squad will take over an make sure the release is of top quality.
- Major release are handled initially by a team that is assigned to specifically to this release.
- Long term support of at least 3 years in length selected releases will be added (1.5 will fall into category).
- Move more to a contribution based approach rather than a feature based approach (or a hybrid depending on the case).
- Looking a ways to assemble distributions out with different extension manifests (for example a "Lite" version).
- Looking at Apt get/apt search paradigm, currently targeted at with the package management.
- Mission+vision+time-box = release (minor). What we mean with that is that we set a mission/vision for the next (minor) release, try to set a time-box and then go for it.
- Major releases will probably require migration paths but minor releases will have upgrades paths.
- The framework libraries will be separated into their own repository and will be independent of the CMS. The idea is that the CMS will choose a particular version of the Framework for any particular release, but development on new features in the Framework can continue without affecting the CMS.
2. Healthy Development Team
The key to producing software in a volunteer driven project is having a healthy development team. Traditionally the Joomla project has been semi-open (positive approach), but the model we use has some specific problems to move ahead. In the past there has been effort to lower some barriers, the bug squad was the first stage of opening up. The summary of what we discussed is as follows:
- The "Development" WG becomes a small group or managers and people with commit access who focus on the quality of the code that will ultimately be distributed.
- We are considering how to set up a research group, experimenting with new Joomla technology.
- The second stage for lowering the barriers is to find a way to make it possible for everyone to submit feature patches. Coupled with that will be improving style and best practice guidelines.
- Development lists will be opened up to the public. The existing Dev list will be archived and three new lists will be created: one for general development related questions, one for people wanting to work on the CMS side of development (the extensions that make up Joomla) and one for the people wanting to work on Joomla Framework development.
- Offering opportunity for the community to contribute at any level.
3. Operational/Organisation Structure
We had a lot of discussion about what a "development team" needs in order to function well. We discussed this a lot and will be talking to both the Joomla Core Team and OSM over the next few months about where we see improvements can be made.
We discussed 1.6 a "lot". What we resolve was that there would be a single "alpha" stage. The following is a list of what we resolved would form the alpha, and if not finished, would prevent the alpha from being released. These features are:
- The Access Control system needs to at least emulate what is in 1.5, allow adding of new groups and access levels, and allow you to set new "view" rules for at least articles.
- Implement a new JForm
- Implement and standardise several new triggers
- Implement new controller dispatchers
- Implement a JContent class that will be used by onPrepareContent plugins and views
- Upgrade to Mootools 1.2
- Finish the new extension updater work
After we release the alpha, each beta release will be time-boxed (we hope that not more than four are required). The following is a list of the features highly desired for the final distribution. Each features need to be "ready" in order to be included in each beta release. Some of these features will make it in the alpha, but will not prevent the alpha being release if they are not ready. Overall though, we will need significant help from the Joomla development community to pull all these features together:
- Implement unlimited depth categories (but not multi-mapping)
- Refactor the user management system and make it more extensible (eg, allow customer user fields)
- Implement a comments system (including pings and trackbacks)
- Implement queue redirects (allows you to, for example, return to the previous page you were on after you edit something)
- Refactor parameters and make them more extensible (for example, plugins could allow you to add additional custom parameters to articles)
- Finish MVC-ing the Administrator components (we need lots of help here)
- Implement Captcha helpers for any form
- Implement systems whereby external authentication systems, such as LDAP, can map to our new Joomla user groups
- Reimplement the ability to select multiple categories for some views in com_content (was in 1.0, got dropped in 1.5 for some unknown reason)
- Implement a database driven installation log
- Refactor JError
- Examine the PDF generation system in detail and see if we can make it work properly (otherwise we will look at dropping it if we can't make it work well)
- Localise the Invalid Token messages
- Drop the Polls component because the quality of that extension is pretty bad and there are much better third-part alternatives available
- Convert all layouts to symmantic and XHTML Strict
- Convert of ini-based "params" fields to use JSON instead of INI format (huge technical and performance improvements). Note, the language files will remain in INI format.
It has taken an intense but productive four days in hot and humid Australia. It will take us considerable time to explore all the topics. We plan to produce a series of blogs to cover the topics in more detail. Something obvious to us is that this project has grown bigger then we have ever anticipated.
So, without further adieu, the first thing we have done is open up the development lists. This list will go into archive mode on February 1st. We already have created 3 new lists and ask everyone to register there, below the names of the groups and the URL's where you can find them. An official announcement on this major change will be done as soon as possible.
- Joomla general development (new). The list handles general topics about Joomla development, specifically targeting at our development community and can be found at http://groups.google.com/group/joomla-dev-general.
- Joomla CMS development (new). This list handles the development of the Joomla content management. We focus on the core development here, specific questions about extension development should go into general development. This list can be found at http://groups.google.com/group/joomla-dev-cms.
- Joomla Framework development (new). The framework development is discussed here. The core libraries, or new development on this particular area of the Joomla solution go here. This group has a strong link with all that is going to be worked on in the group that will be working on research, group can be found at http://groups.google.com/group/joomla-dev-framework.
- Joomla bug squad (existing).
Andrew Eddie, Anthony Ferrara, Louis Landry, Sam Moffatt, Wilco Jansen