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 |
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