The Wayback Machine - https://web.archive.org/all/20060318182909/http://www.mamboserver.com/index.php?option=com_content&task=view&id=164&Itemid=86
Future of Mambo Development
Written by Team Mambo   

Mambo Core Development Team and the Mambo Steering Committee released a Policy Statement outlining the plans for the future development of the Mambo Open Source Content Management System.

The statement outlines the new team's philosophy and approach and provides details on both short and long term goals. If you are interested in Mambo development, or how Team Mambo is addressing the challenges they face, we encourage you to take the time to read this article.

Bringing ideas to fruition

Establishing stability

The Mambo Core Development Team is almost entirely new to the Mambo code and as a result, brings fresh eyes with new views on the state of the project. The released code is feature rich, but the new team feels a need to review a number of the core mechanisms in order to make them robust enough for further long term development. The code that was under development at the time of the fork was incomplete and not fully tested, so without the knowledge that departed with its developers, is considered to be of limited value.

In this situation, the core team's first priority is to deal with the recorded bugs in 4.5.2.3 in order of significance and to tackle all known security weaknesses. The factors that cause these problems are generally well known and it is essential that the security issues be addressed quickly and effectively.

Historically releases of Mambo tended to involve a very high proportion of the total code and sometimes came with disruptive frequency. Goals for future stability include: efforts to implement development and release control procedures that will reduce the frequency of bugs and remedial releases; and, progressive design, with particular emphasis on encapsulation inside sound and documented interfaces.

While bugs are being fixed and security loopholes eliminated, improvements are being made, mostly in small ways, and the team is gaining familiarity with the code.

On minor housekeeping issues:

  • The core development team has agreed to use only a standard three digit release numbering system, with the first release to be 4.5.3.

  • There will also be efforts to resist feature creep through practices such as last minute addition of functionality. In the case of 4.5.3 no new features are being added apart from the previous work on a simplified user interface, demonstrated in the 4.5.3 beta.

  • However hard we try, some bugs are inevitable. Provided these are non-critical, the team will make regular bug fix releases that can be implemented by Mambo site administrators without particular urgency.

  • Notification procedures are also being implemented for key partners and third party developers in an effort to improve communication and transparency.

Current Mambo Development Projects

Dates are given for guidance only. Reasonable efforts will be made to keep to them, but in the nature of a complex project that relies on volunteer workers, none can be guaranteed.

  • Internationalization is strongly demanded and is considered to be a top priority. Work is currently in progress to decide on the best technical solution. It is expected that decisions will be made on the approach to be adopted by mid November 2005, at which time development will commence. Once standards have been established for data formats, work on translation can commence. This should be under way from the beginning of December 2005.

  • The second priority project is to establish a viable Role Based Access Control system throughout Mambo. The ACL facility presently in Mambo 4.5.2.3 is considered excessively large and complex and is being replaced by a lightweight, flexible system designed in the light of recent thinking on OO RBAC mechanisms. It will provide comprehensive access mechanisms that can be used both within Mambo and by third party developers for their solutions.

  • Priority is also being given to work on templates, although this is presently at an early stage. However, the goal is to provide a highly flexible facility that will combine two important factors. One is to make some reduction in the freedom of templates so as to reduce the likelihood of security issues through template installation. The other is to retain the ease and flexibility of template development that has been one of the critical factors in Mambo's success.

Mambo Development Goals

Much of Mambo consists of plugins – components, modules or mambots – sometimes known collectively as CMTs. (This part of Mambo is also being called the “outer core.”) The plugins are automatically installed as part of the Mambo installation, unlike third party plugins. In order for plugins to be possible, Mambo requires an inner core.

  • A guiding principle for development is to aim at a small, efficient, fast inner core. Code here includes such things as session management, plugin management, core access control mechanisms and database interface layers. One medium term goal is to have more reliable and efficient mechanisms for managing the loading of code on demand. The ability to fully implement this is currently constrained by the lack of availability of PHP5 in the web hosting market, but some steps can be taken.

  • Another principle is reduced reliance on large libraries of code. Pulling in libraries is a quick way to create new functionality. There is no intention to cease consideration of good solutions of this kind. However, many of the libraries currently in use are cumbersome. They create difficulties in maintenance that are greater than for internally developed code, and can often place design constraints on future development.

  • Vital to improved code is the implementation of encapsulated objects that have defined interfaces. The vast majority of Mambo (including third party plugins) ought to be in the form of groups of classes. Globals should be substantially eliminated as should reliance on properties of objects. There needs to be a clear definition of which classes and methods are intended to be available to three classes of use: within the class, within the Mambo core, and generally by anyone. Documentation should match the type of use. Soundly designed classes reduce the dependencies that arise through a lack of clearly defined interfaces, allowing more rapid development and reduced risk of faults.

  • Enhanced security is a significant goal. Basic principles for secure coding are well known and must be consistently applied throughout Mambo. In addition, the team will be looking for ways to increase the security of Mambo systems through features such as code signing and greater database security.

  • Backwards compatibility remains a firm goal, although there will be times when this is sacrificed. It is not an absolute commitment, since design changes are needed and will certainly affect interfaces. However, the aim will be to make efforts to sustain existing interfaces at least long enough to give third party developers adequate notice of deprecated interfaces and sound information about alternatives and how to use them.

Policies for Development

In order to achieve the goals stated above, and other significant goals, the following policies are being adopted by the core development team.

  • Overriding all other considerations, Mambo's development must be user driven, and attention will be given to requirements gathering. Arrangements have been made with the forum moderators to try to capture the numerous ideas and comments that are not always channelled into the wish list area. The Documentation Team has agreed to be responsible for analysing ideas and organising them into a usable form. When considering the user driven character of Mambo, it is useful to take account of the four constituencies that are most relevant: Those who build sites using Mambo (the web developers), those who manage sites on Mambo (the webmasters), those who visit sites using Mambo (the visitors), and those who develop components, modules and other features for Mambo (the 3PDs).

  • It is helpful to adopt a broader concept of “content”. This will help to simplify Mambo for its users, both webmasters and site visitors. Currently, Mambo uses the term “content” only to refer to published articles. However, it is better applied to most kinds of material, such as forum pages or contents of file repositories.
  • Well designed and published interfaces are a core policy. Provided they are soundly designed, published interfaces should be capable of being held constant over a sizeable period, even though the implementation behind the interfaces may have changed considerably. Everyone involved in development, both on the Mambo outer core and on third party products, is entitled to have up to date documentation that relates to reliable and predictable functionality.

  • In the area of interfaces and elsewhere, it is highly desirable that documentation be delivered simultaneously with code. In the case of documents such as user manuals (more than one may be required, allowing for the different kinds of users) it is highly beneficial if the manual is a part of the development and QA process, and they are thus prerequisites for the completion of developments.

  • Maybe it should go without saying, but it is the policy of the development team to create sound and efficient code. The development team will aim to use modern techniques to maintain high quality output.

Hosting Policies

A few simple points will illustrate the current intentions with regard to hosting. A good many practical problems arise with hosting, and efforts will be made to provide better documentation on these.

  • The base requirement for Mambo will be raised to PHP 4.3 and MySQL 4 at the next release after 4.5.3.

  • A general direction of reducing reliance on the file system will be pursued.

  • There will be correspondingly greater use of the database.

Near future development projects

  • There will be continued efforts to establish adherence to current web standards such as XHTML. In addition, a project will be started to deal with questions of accessibility.

  • New capabilities for making Mambo “Search Engine Friendly” will be introduced in an early project.

  • Mambo will be provided with flexible nested folders to any depth, to replace the current two level system of sections and categories.

Longer term projects

  • Database portability is an important goal, but is treated as long term because it is highly likely to break plugins. The development policy has been provisionally established as the building of dedicated Mambo interfaces to established database products. PostgreSQL will be an early implementation because of its high level of ANSI compliance, which will test the flexibility of database use by Mambo and third party programs.

  • Multi-site administration is in great demand from some quarters, and is clearly needed by people running large numbers of sites. It has to be a longer term project because of its complexity and security vulnerabilities.

  • In the long term, the development team expects to see XML become much more central to CMS content. It already has clear advantages for multi-purpose material. However, it is not a short term goal because of the lack of sufficient adequate tools, such as XML editors.
< Prev   Next >


Advertise | Write for us | Contact Us | Privacy