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 [Please do not use this version - vulnerable to Critical Security Threat] | Joomla! 1.0.11
| 29 August 2006 | Security release | Joomla! 1.0.12 | 25 December 2006
| Final stability release of the 1.0.x series | Joomla! 1.0.13 | 21 July 2007 | Security release, improvement of user password encryption | Developer Note Version 1.5+ : register_globals=off emulation | Joomla! 1.5 | Beta 1: 12 October 2006 | Internationalization User Plugins Foundational work towards cross database support FTP Filesystem Layer Overhaul of Joomla! framework Preparation for usability and accessibility extensions Separation of logic and presentation layer | Joomla! 1.5
| Beta 2: 4
May 2007 | Developer documentation (API, Howto's)
Developer feedback and API finetuning Improved caching Improved SEF support Added mootools javascript framework Added accessible 'BEEZ' template | Joomla! 1.5 RC1
| RC 1: July 21 2007 | User documentation Help screens Security and preformance improvements User feedback and finetuning Platform and browser testing
| Joomla! 1.5 RC2
| RC 2: September 1 2007 | User feedback Bug and (probably) security fixing | Joomla! 1.5 RC3
| RC 3: 5 October 2007 | Bug and security fixing, user feedback. Don't use any previous versions. | Joomla! 1.5 RC4
| RC 4: 19 December 2007 | Final bug fixing, security patching | Joomla! 1.5.0
| final: 21-January-2008 | Stable version | The Calendar should be used as a guide only and is subject to change at any time.
Future VersionsThe 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. - New user and access control system
- New javascript framework
- Useability and Accessibility compliance
- Full version control of content
- Multi-Site capabilities
- Update manager
- Virtual Filesystem
- Cross database support
Details The following provides a broad overview of planned items for future versions: InternationalizationMajor areas of internationalization - Translation of static text
- Addition of basic right-to-left (RTL) support
- UTF-8 character encoding
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: - onAuthenticate
- onLogin
- onLogout
- onActivate
- onBlockUser
- onUnblockUser
Cross Database SupportTo 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! FrameworkAs 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 SupportSEF support will be moved into mambots to allow for easier integration of third-party alternatives.
User and Access Control sytem ImprovementsThis 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 ComplianceJoomla! 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 ProjectsDuring 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 IssuesMore 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. DatabaseProblem 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.
TemplatesProblem 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.
|