Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@eddieajau
Last active December 31, 2015 11:59
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eddieajau/7983112 to your computer and use it in GitHub Desktop.
Save eddieajau/7983112 to your computer and use it in GitHub Desktop.
Joomla Framework Release Strategy

Joomla! Framework Release Strategy

1. Introduction

1.1 Revision History

Version Date Notes
1.0.0 16 December 2013 First version

2. Policy

2.1 Requirements for contributions.

The following is a summary of the minimum requirements that need to be met for code contributions to be considered for the Joomla Framework.

a. Satisfy the Joomla! Coding Standards. Code submitted for merging must comply with the latest Coding Standards.

b. All existing automated tests must pass.

c. Provide automated tests for all new API classes and methods. Any new methods or classes added to the software API must be accompanied by passing Unit Tests to verify their correct behavior. This serves to help guarantee that not only the current code works, but that future changes do not cause an unstable master branch.

d. Provide basic documentation for changes and additions to the code software. Basic documentation must include thorough code Docblocks in the source code and API explanatory text in the README.md file.

Please refer to the CONTRIBUTING.markdown for the latest and any additional requirements.

2.2 Version Strategy

The version identifiers for Joomla Framework follow a three level numerical convention as defined by the Semantic Versioning (2.0.0) specification in the form:

Major.Minor[.patch]

In summary:

a. Major releases indicate a break in backward compatibility.

b. Minor releases indicate the addition of new features or a significant change to existing features.

c. Patch releases indicate that bugs have been fixed.

2.3 Software Milestones

There are four formal milestones in the life-cycle of software development:

a. Alpha. Alpha's indicate that there is new technology in the software ready for testing, but that the software is not feature complete. This type of release is not suitable for production environments.

b. Beta. Beta's are considered feature complete, but not yet stable enough for production environments. The software is intended to be tested thoroughly for regressions, security and stability problems.

c. Release Candidate (RC) Release candidates are considered complete and stable for production environments.

d. General Availability (GA) General availability software is considered stable for porduction environments.

2.4 Support Policy

The most recent minor release, including the first release of a new major series, is supported for a minimum of two (2) years, or until a minor release takes its place, whichever comes first.

2.5 Backward Compatibility

When referrence is made to backward compatibility, this applies to, where applicable:

a. PHP code that is not private.

b. JavaScript functions and objects that are not private.

c. Database schema.

d. XML schema.

e. Language keys

Backward compatibility must be maintained between all minor and patch versions in the same major series. Where backward compatibility is introduced, a new major version of the software must be released.

2.6 Deprecation

Code can be marked for deprecation in any minor or patch release. Deprecated code is always removed in the next major version.

2.7 Security

The team of developers and security experts tasked with implementing the Joomla Project Security Policy is the Joomla Security Strike Team (JSST). The JSST is tasked with investigating and responding to reported core vulnerabilities, executing core code reviews before software releases, providing a public presence regarding security issues, and helping the public to better understand Joomla security issues.

2.7.1 Security Announcements

Joomla is a member of oCERT (along with a number of other security conscious software companies and organisations). Those reporting security issues may do so through oCERT or the JSST directly, but either way the JSST will make reasonable effort to work within the oCERT guidelines.

2.7.2 Public Response

We appreciate the efforts of people finding and reporting bone fide issues but we encourage reporters to hold back information until Joomla releases a patched version of the software. Reporters that do so will be credited on the official vulnerability report.

The project does not disclose proof-of-concept information to demonstrate vulnerabilities and reporters are encouraged to do the same. Where a reporter feels strongly that proof-of-concept instructions should be published, they are encouraged to hold that information for an additional period of at least 4 weeks after the release of the patched version of the software.

The JSST will be available to answer questions and/or validate any Joomla security related articles at the publisher’s request.

2.7.3 Security Releases

Unless the threat level dictates otherwise, security patches will be rolled into the next available "release" of the software subject to oCERT guidelines and best practice.

2.7.4 Vulnerability Threat Levels

There are two main details that contribute to a vulnerability’s priority or "threat level": impact and severity. The following tables provide generic guidelines for how vulnerabilities may be assessed. In practice each vulnerability will be assessed for damage potential and ranked accordingly.

2.7.4.1 Impact
Level Description
Critical “0-day" attacks, and attacks where site control is compromised (allows attacker to take control over site).
High SQL injection attacks, remote file include attacks, and other attack vectors where site data is compromised.
Moderate XSS attacks, write ACL violations (editing or creating of content where not allowed).
Low Read ACL violations (reading of content where not allowed).
2.7.4.2 Severity
Level Description Release Fix
Critical VERY easy to perform. Relies on no outside information (TRUE 0-day attack). As soon as possible
High Moderately easy to perform. May rely on readily available outside information. Per oCERT guidelines
Moderate Not easy to perform. May rely on sensitive information. Per oCERT guidelines
Low Difficult to perform. Relies on sensitive information or requires special circumstances to perform. Per oCERT guidelines
@dbhurley
Copy link

Typo 2.3d, 2.5 reference, and 2.7.2 bona fide

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment