I'd like to expand on the work flow that will be used to assess
community contributions to the Joomla CMS using the Joomla Feature
Tracker (JFT - http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&tracker_id=8549).
The Joomla Feature tracker has a number of statii to help the
community and the leadership work with contributions. The statii
follow a very similar progression to what is used for the Joomla Bug
Squad. Let's have a look at them but if you have any questions, don't
hesitate to ask. By all means use this mailing list for an features
you submit to the JFT (but keep it to one thread per issue please).
JFT STATII
* Open
The Open status is one of the two places a new idea or feature can
enter the process. This status means that someone has an idea for a
feature and would like to talk about it with other people. You don't
have to be a developer to submit an idea for a feature on the tracker
(and it's possible the feature may not involve coding at all in some
cases). When an idea or feature gets to the point of having some code
written that can be applied to the Joomla source code, then we move to
the Pending status.
* Pending
The Pending status is the other place a new feature can start its
journey. This status simply means that there is a idea for a new
feature or fix and there is some code that can be tested. Code can be
submitted in many ways but ultimately it needs to end up in a "patch"
format, or more experienced developers may be working in a branch (for
SVN) or fork (for Git or Mecurial). When a feature reaches the
Pending status, the intention is that people interested in the feature
will help test that the code works and does not break and unit or
system, tests, and that the feature itself makes sense to include.
When the individual or group of people working on the feature thinks
it's "ready", they will change the status to "Ready for review".
It's worth noting that if you are submitting a feature with more than
"a few lines of code", you should sign the Joomla Contributor
Agreement (see http://developer.joomla.org/getting-started.html).
* Ready for Review
The Ready for Review status is a holding pen for features that are
considered complete and appropriate to add to the core Joomla code.
At this point, members of the Production Leadership Team (PLT) will
review the idea behind the feature and also the submitted code. From
here, the feature could go one of a number of ways. The feature could
be rejected on the basis that it's not something that's appropriate
for the core Joomla code. The feature could be appropriate but still
need some more work, in which case it would be moved back to the
Pending status until issues that the PLT might have raised have been
addressed. Finally, the feature could be ready to be included into
the code Joomla code and, if this is the case, it will be moved to the
Accepted status.
* Accepted
The Accepted status means that the PLT has approved the feature to be
included in the next version of Joomla, but has not yet been added to
the core code. The code could be merged with the core at any time,
but it will usually take place during the designated "merge period" in
the last two months of the release cycle.
Note that the order in which accepted features are merged is up to the
PLT and this can sometimes cause other accepted features to break.
Developers just need to be aware that they may need to fix their
features depending on the order in which they are applied.
* Implemented in Trunk
When an accepted feature has been added to the core Joomla code, the
issue on the tracker is moved to the Implemented in Trunk status.
* Not Accepted
This is a status that will be given to features that have not been accepted.
* Closed
This is a status given to tracker issues that don't really fit into
any other category.
ADDING FEATURES TO THE JOOMLA PLATFORM
Many of you should now be aware that the Joomla Platform and the
Joomla CMS now follow separate development paths. For developers that
want to add new features to the Joomla Platform, you are encouraged
use the contribution tools provided by Github (using pull requests,
etc). This makes it easier to assess, track and process features. In
the short term we'll accept features for the platform via the JFT but
start tooling up on DVCS sooner rather than later.
You'll need to get an account on github.com and the Joomla platform
code is located at https://github.com/joomla/joomla-platform
Note that features for the platform will come with a higher
expectation for unit tests to be included with your code submissions,
especially where tests exists already for the package you are
altering. Documentation is also highly desirable. Also note that the
platform is intended to be released every 3 months (not 6 months like
the CMS). Features for the platform do not necessarily have to be
"used" by the core Joomla CMS - they can be of use to other
applications of the framework (command line apps, daemons, etc) or of
use of custom extension developers of the CMS (eg, putting in image
manipulation libraries).
JOOMLA 1.7 FEATURES
I've put all features (I think), into the correct statii on the JFT as
of today. Note that anything in Pending simply means that there is a
patch to test - it does not imply any sort of approval. There are
about two dozen issues marked Pending but I would say all of them will
need adjusting follow the merge with the platform that is currently
taking place. Also, custom extension developers should keep an eye on
the "Accepted" status just in case they impact you extensions.
Well, that's about it. If you have any questions, please ask,
otherwise have a look at what's in the JFT and see what you think.
Regards,
Andrew Eddie
http://learn.theartofjoomla.com - training videos for Joomla 1.6 developers