Joomla! Roadmap

Last Updated ( Monday, 03 July 2006 )

Introduction

Joomla! is a powerful, award winning content management system (CMS) and is one of the most popular open source software projects.

This document seeks to explain the version numbering schema used by Joomla! and to provide a roadmap that outlines in broad terms the development path of Joomla! for the foreseeable future, incorporating both new technologies and long sought after features.

Version Convention

Joomla! release versioning follows a numerical convention comprised of three numbers: Major, Minor and Maintenance.  The version is presented in the major.minor[.maintenance] format.

Major Release Number (X.1.1)

An increment of the major number generally indicates a major rework or rewrite of the code base.

May be completely incompatible with prior major releases.

Minor Release Number (1.X.1)

An increment of the minor number usually indicates a significant change to functionality or architecture.

Moderate to high level of backward compatibility with previous minor increments.

Maintenance Release Number (1.1.X)

An increment of the maintenance number usually indicates bug fixing within the minor release and possibly small enhancements and limited new features.

Fully backward compatible with previous maintenance increments.

Structure

Each full release of Joomla! exists in its own branch of the source tree where it is maintained independently of the trunk. For the purposes of the source tree each major or minor version number increment represents a new full release.

Full Releases are subject to both Alpha and Beta test periods. There is no set time period for these test periods but the Beta will not be less than three (3) calendar weeks. This is to provide adequate compatibility testing by third party developers.

Maintenance Releases are released on an as-needed basis.  These releases will be subject to in-house quality control only and be made available for immediate use. The frequency of Maintenance Releases will decrease as the codebase matures. Maintenance Releases aim to improve the quality of stable releases that have been deployed by users and administrators, yielding a better return on investment because you do not have to wait for a full release for a bug to be fixed.

Calendar

Version Date Comments
Joomla! 1.0.0
 
15 Sep 2005 First Joomla! Stable release
Rebranding of Mambo 4.5.2.3
Bug fixes and security patches, several core additions [Please do not use this version - vulnerable to Critical Security Threat]
Joomla! 1.0.1
 
21 Sep 2005 Stability release [Please do not use this version - vulnerable to Critical Security Threat]
Joomla! 1.0.2
 
2 Oct 2005 Stability release [Please do not use this version - vulnerable to Critical Security Threat]
Joomla! 1.0.3
 
14 Oct 2005 Security release [Please do not use this version - vulnerable to Critical Security Threat]
Joomla! 1.0.4
 
21 Nov 2005
 
Security release
 
Joomla! 1.0.5
 
24 Dec 2005 Stability release
Joomla! 1.0.6
 
15 Jan 2006 Security release [Please do not use this version - instead use 1.0.7]
 
Joomla! 1.0.7
 
15 Jan 2006 Critical Fix Release [Fixed 1 critical bug in 1.0.6]
 
Joomla! 1.0.8
 
26 Feb 2006
 
Security release
Joomla! 1.0.9
 
5 June 2006 Stability Release
 
Joomla! 1.0.10 26 June 2006 Security release
Joomla! 1.0.11
 
TBA Bug and/or Security fixes - if required
 
Developer Note

Version 1.5+ : register_globals=off emulation
 

Joomla! 1.5
 
Beta TBA Internationalization

User Plugins

Foundational work towards cross database support

FTP Filesystem Layer

Overhaul of Joomla! framework

Preparation for usability and accessibility extensions

Improved caching

Separation of logic and presentation layer
 

The Calendar should be used as a guide only and is subject to change at any time.

Future Versions

The amount of change that our codebase has undergone in the 1.5 development cycle has created a situation where we need to reflect and re-evalutate how we continue developing Joomla!  Until 1.5 is stable and we can properly address the goals for future versions we will have here a list of features that we intend to incorporate into future versions.  The list is non-exhaustive and in no particular order.

Details

The following provides a broad overview of planned items for future versions:

Internationalization

Major areas of internationalization

User Plugins

The addition of user plugins allows for alternative user authentication methods as well as improved bridging support for other applications.  Some of the new events to be handled by user plugins include:

Cross Database Support

To achieve cross database support, a database abstraction library will be implemented. Core scripting will also be improved to prepare for compatibility with other platforms.  The first step towards this goal will be compatability with MySQL 5.0 which is tentatively slated for Joomla! 1.5

FTP Filesystem Layer

To overcome permissions problems on many systems, an FTP filesystem layer will be integrated into the Joomla! framework.  This integration willl allow for an FTP based installation mode as well as other filesystem operations.

Overhaul of Joomla! Framework

As the Joomla! project progresses, the need for a well defined, flexible and scalable framework becomes more and more necessary. Framework functionality needs to be separated from the core extensions and put into moved into a standalone API.  This separation will give third party developers a much more robust development environment for rapid extension development.

Improved SEF Support

SEF support will be moved into mambots to allow for easier integration of third-party alternatives.

User and Access Control sytem Improvements

This allows for the ability to add and edit the user groups system. It also allows for administrators to alter the access permissions based on function though the user interface. For example, you will be able to define which group(s) can install components or template, and so on.
Also, we will allow for controlling permissions at the object level in a more detailed way. For example, you will be able to select sections and categories that are viewable only to certain groups.

WCAG Compliance

Joomla! is committed to improving its compliance with web accessibility standards to increase access to users with disabilities. Compliance with WCAG A also means nearly all requirements of 508 compliance will be met.

This is achieved through the continuing process of completely separating the presentation layer (the HTML output) from the business logic. At the moment, the focus is on Front-End WCAG compliance. Priority 2 and 3 will be addressed once Priority 1 requirements have been met.

Summer of Code Projects

During 2005, we had the pleasure of mentoring several projects from some very talented students. These projects will be progressively implemented in Joomla! The projects include:

Virtual File System Support

Using a common API to access files, ftp sources, etc.

Update Handler

Much like the update handlers in popular applications like Firefox with the ability to check a server for new updates, etc.

Content Version Control

A robust system for providing true version controlled content to meet many legislative and organisational requirements.

Caching and Performance Improvements

The performance of Joomla! is continually under review through the use of multi-level caching layers as well as memory efficient object construction.

Compatibility Issues

More information will be provided about the following issues closer to the release of the affected version:

register_globals emulation

Problem

Currently Joomla! emulates the PHP state for register_globals=on. This means that any variable passed through a URL or a form post will be initialised by PHP and made global. Unfortunately, where the programmer has not correctly sanitised input variables, this condition can be used to leverage security vulnerabilities in the code and leave your site open to attack.

What you need to know

From version 1.5 onwards, the state of register_globals=off will be emulated. While this does not stop all forms of attack, it does prevent some common forms due to poor programming style.

Database

Problem

Some reserved words exist as field names at present.

[eg. #__content : fulltext, #__components : option, etc.]

What you need to know

In order to improve the ability of Joomla! to be cross-database capable we will be renaming them.  This may affect some existing third-party extensions that are based on the content table (we don't envisage any issues with the field name in the components table at this stage).

Joomla!'s database connector must be used to ensure portability across different database plaforms in the future.

Templates

Problem

Because of the extensive rationalisation of xhtml output to comply with Useability and Accessibility standards, templates at some point in the future will likely not be compatible with those produced for early versions of Joomla!.

What you need to know

Compatibility issues will be experienced in the templating system when we make these changes as some non-backward compatible changes will take place to allow for Useability and Accessibility compliance.

 

Copyright 2006