There is always a great deal of Joomla! development activity underway and communicating with other developers in the community is essential. This site is a resource for anyone looking to build or maintain software based on the Joomla! platform.

This document sets out a number of high-level goals and for each goal lists a number of objectives that support the attainment of that goal. Goals are statements of purpose towards which our efforts are directed. They can be quite generic and do not need to be strictly measurable or tangible. On the other hand, objectives are specific tasks that are made to support the attainment of our goals and should be measurable and tangible.

All of our goals and objectives are made in support of our declared mission:

"To provide a flexible platform for digital publishing and collaboration"

 

Index

Details

Goal 1: Release new Joomla versions smoothly and consistently

Our goal is to release new versions of the Joomla CMS and the Joomla Framework in the most convenient and hassle-free manner possible.

Objective 1.1: Introduce CMS Release Teams

Preparing a new Joomla release is a complex task and requires a great deal of effort that to date has often been shouldered by a single individual. In order to spread the load and also to ensure that more than one person can run through the entire release cycle (increasing the "bus factor"), the PLT will establish a CMS Release Team for each CMS major or minor release, centred around the existing role of Release Leader. 

Objective 1.2: Reduce the time from pull request to code merge

There is often a substantial backlog of pull requests that have been submitted but not yet merged because they are waiting for testers. We need to reduce this backlog and establish a sustainable process for keeping the time from pull request to code merge to a minimum.

Goal 2: Encourage development of new features with a high probability of acceptance

One of the criticisms of our current development strategy is that developers of potential new features are reluctant to commit the substantial amount of time and effort required to design, code, test and document a new feature without some prior assurance that the feature will eventually be accepted into the core distribution. In order to address this issue we would like to institute a more formal set of procedures that will ensure that an appropriate level of communication, peer review and evaluation of a new feature takes place throughout its life-cycle from initial proposal to final merge. New features that follow these procedures will either fall by the wayside at an early stage, or be shepherded towards completion with a high probability of eventual success.

Objective 2.1: Introduce a new feature life-cycle management process

Starting from a Request for Comments (RFC), through the formation of a Production Working Group, to the eventual acceptance of a Pull Request, a new feature will be shepherded from cradle to grave by a new feature life-cycle management process.

Objective 2.2: Reinvigorate the Production Working Groups

The Production Working Groups will be a central feature of a new feature life-cycle management process. A closer relationship with the PLT and a regular reporting schedule are part of the mechanism for ensuring that new features are shepherded into new releases. Another function of the Production Working Groups will be to ensure that new or changed features are accompanied by good test coverage and comprehensive documentation. It is also possible that if we move to a distribution model, each package maintainer team will actually be a Production Working Group within this structure.

In order to strengthen the communication between Production Working Groups and the PLT, each PWG will produce a short but regular report on activity that has taken place in the previous reporting period. The reports will be reviewed at the next PLT internal meeting, before being consolidated and published. The reporting process will also serve to increase the visibility of the Production Working Groups and that should in turn help with recruitment. Note: Reports can now be published on the Volunteers Portal.

Goal 3: Improve product quality

Our goal is to improve the quality of each new release and to improve the quality and amount of the documentation accompanying each new release. Every new feature also introduces new bugs and so we need to increase the amount of testing undertaken prior to each release. This requires a stronger community involvement before a release is announced.

Objective 3.1: Increase the number of bug squash events worldwide

In recent years we have been honing the idea of community bug squash events and it is clear that these are increasingly popular and a great way to get more people into active participation in the project. For 2015 we would like to increase further the number of bug squash events of all kinds worldwide.

Objective 3.2: Create more sprint opportunities

In 2014, the PLT held four in-person code sprints worldwide and achieved considerable success in reaching specific pre-defined objectives using this format. Building on the success of these events, the PLT aims to expand the number of sprint opportunities that will be available during 2015, subject to budget constraints. The PLT will publish a Sprint Policy document that sets out the procedure for proposing and organising a sprint, including budget expectations, documentation of outcomes and the review process.

Further information: https://docs.joomla.org/Code_sprints

Objective 3.3: Increase the scope and coverage of testing in the CMS

Whilst the Framework has good test coverage the CMS lags behind and needs to catch up. During 2014 we had a test code sprint that was aimed at improving our test suite and the knowledge of how to write good tests. Our objective during 2015 is to apply that knowledge to increase the range, coverage and quality of our test suite. We may also do more focussed test sprints.

Objective 3.4: Improve the scope and coverage of documentation

Documentation is a weakness in all open source projects. Much was achieved during 2014 and we would like to continue the process of incremental improvements in 2015.

Objective 3.5: Improve and extend coding standards

During 2014 we began enforcing coding standards for all code commits to the CMS (the Framework was already enforcing coding standards) and we held a Code Style Sprint which brought the CMS codebase into compliance with the standards. For 2015 we need to resolve some discrepancies in the coding standards rules, extend the coding standards to cover more file types (for example, layouts are currently excluded) and update the standards to support Code Sniffer 2.0.

Objective 3.6: Enforce pre-commit documentation compliance

A minimal level of documentation coverage has been achieved in the Framework without deterring contributions and we would like to match that success in the CMS too. This is more difficult because we need to consider user documentation for multiple audiences as well as developer documentation. Some measure of compulsion will be necessary to achieve this so we will be enforcing minimal standards for documentation of new features in future. Much of this will be handled within the Production Working Groups.

Objective 3.7: Increase pre-release testing

Despite the gallant work of the Bug Squad it is apparent that we need to continue increasing the number of people testing pre-release versions of the code in different configurations, with different third-party extensions installed and on different platforms.

Goal 4: Improve internationalisation and localisation of the CMS

Internationalisation and localisation support is one of the great strengths of the Joomla CMS and we will continue to develop and strengthen support in this area.

Objective 4.1: Improve translation team processes

In agreement with the Translation Team, dedicate resources to improving processes and tools to automate the creation of translation packages and the uploading of them to the Joomla Languages Server (http://update.joomla.org/language/translationlist.xml

See also: https://github.com/joomla-projects/translate-joomla

Objective 4.2: Develop and release com_localise

Considerable work has already been done to develop the com_localise component to assist translation teams in managing the creation and maintenance of translation packages. This work will continue next year with the objective of having a fully working product released during 2015.

Objective 4.3: Improve the user interface for multi-language websites

Building and maintaining a multi-language website can be difficult because important steps must be carried out in a specific order. We will encourage improvements to the user interface that will make it easier to set up and maintain a multi-language website.

Goal 5: Start planning for the next major version of the CMS

It is unclear what the next major version of the CMS will look like. During 2015 we will try to clarify our vision for the next major version and possibly beyond.

Objective 5.1: Define and document the vision for the next major version

Collaborative discussion will take place to define the goals and objectives of the next major version of the CMS.

Goal 6: Increase adoption of the Joomla Framework

This is part of our stated three-year vision statement for the project as a whole, adopted in 2013. For 2015 the PLT has included the following objectives to support this vision.

Objective 6.1: Participate in Google Summer of Code 2015

Previous participation in the GSoC program has been highly successful and several important contributions have been added to the core distribution as a result. We would very much like to continue that success in 2015.

Objective 6.2: Increase attendance and speaking engagements

In 2015 the PLT would like to continue increasing the number of people from our community, not just PLT members, making formal presentations at non-Joomla technical events and sharing the benefits and uses of the Joomla Framework. We would also like to increase the number of non-Joomla events which are attended while also continuing to support the growing Joomla events list.

Objective 6.3: More sample code and examples of best practice

In order to make it easier to get started and easier to be successful with real-world Framework applications, we need to make more sample code and examples of best practice available.

Objective 6.4: Continue marketing of the Framework

Although word-of-mouth is a very effective way of increasing the adoption of the Framework in a range of situations, we also need to back that up with comprehensive marketing if we are to increase adoption rates significantly.

Objective 6.5: Review CLA workflow and update if required

CLA = Contributor License Agreement. Include documentation in CLA workflow if required. Make sure that CLA workflow is not deterring contributors. Consider automating the process of signing the CLA with tools such as https://www.clahub.com/

Goal 7: Increase adoption of the Joomla CMS

This is part of our stated three-year vision statement for the project as a whole, adopted in 2013. For 2015 the PLT has included the following objectives to support this vision.

Objective 7.1: Participate in Google Summer of Code 2015

Previous participation in the GSoC program has been highly successful and several important contributions have been added to the core distribution as a result. We would very much like to continue that success in 2015.

Objective 7.2: Increase attendance and speaking engagements

In 2015 the PLT would like to continue increasing the number of people from our community, not just PLT members, making formal presentations at non-Joomla technical events and sharing the benefits and uses of the Joomla CMS. We would also like to increase the number of non-Joomla events which are attended while also continuing to support the growing Joomla events list.

Objective 7.3: More sample code and examples of best practice

Show proper use of the API. For example, proper use of JHtml.

Objective 7.4: Continue marketing of the Joomla CMS

Although word-of-mouth is a very effective way of increasing the adoption of Joomla in a range of situations, we also need to back that up with comprehensive marketing if we are to increase adoption rates significantly.

Objective 7.5: Review CLA workflow and update if required

CLA = Contributor License Agreement. Include documentation in CLA workflow if required. Make sure that CLA workflow is not deterring contributors. Consider automating the process of signing the CLA with tools such as https://www.clahub.com/

Goal 8: Understand our users better

In order to make good decisions regarding the future development of our products, we need to understand our users requirements and in order to do that we need to gather relevant information about our users.

Objective 8.1: Gather anonymous usage information

For the 3.x branch, enhance the stats plugin started by Don Gilbert and merge it into core with a post-install message allowing users to enable the plugin. It cannot be an option in the installer due to third party install applications nor can it be an opt-out plugin due to legal and privacy concerns. In conjunction, deploy the server to collect and display the data. The server needs to be hardened to make spoofing false data extremely difficult.

Plugin code: https://github.com/dongilbert/jstats-plugin

Server code: https://github.com/dongilbert/jstats-server

Objective 8.2: Gather more detailed download information

Subject to agreement, during 2014 we will include a simple form that will be presented as part of the download process, to gather basic anonymous information about the user.

Objective 8.3: Gather more information from GitHub

Gather more information from Github regarding developer interactions.

Objective 8.4: Poll users on relevant topics

Gather more user information by polling users on topics that are relevant to the continuing development of the CMS.

Goal 9: Increase front-enders use of Joomla

It’s known that front-enders have some issues with Joomla that haven’t been addressed for some time. We need to give them the tools they need to do their work in the best way they can.

Objective 9.1: Release Joomla 3.5 with improvements for front-enders

Focus one release in specific frontend areas like:

  • Same override method for everything.
  • Decouple Joomla from Mootools and Bootstrap 2.
  • Improve frontend debug tools.
  • Evaluate modern build systems.
  • Accessibility improvements.

Goal 10: Improve transparency of the PLT

Reporting what we are doing to the community is an important task for a Leadership team, even more in an open source project that relies on the work from volunteers.

Objective 10.1: Opening the Production WG List

We are planning to open the PWG list to allow more involvement from community members in the discussion process.

Objective 10.2: Improve diversity of the production process.

With opening our list not for just leadership members, but we hoping for others to participate as well.

Goal 11: Building a safe environment for all people to contribute to the project

Contributing to the Joomla! Codebase and Joomla should be something that people can do without fear. All contributions have a value and we are encouraging people to speak out there mind and share ideas.