Actions

Release procedure and checklist

From Joomla! Documentation

Revision as of 23:01, 1 June 2009 by AmyStephen (Talk | contribs)


There is a general checklist when a version of Joomla! is released. Keep in mind that a major release differs a lot from a Minor Release or even a Maintenance Release. The checklist here describes the steps that need to be done for (at least) Maintenance Release and Minor Release.

Contents

Release checklist

It depends on the Development Cycle when the checklist is triggered. A release can be done during every stage of the Development Cycle, it does not matter if you release a beta or a stable version, this is a general checklist that can be used when releasing a new version of Joomla! The checklist starts when it's decided to release a version:

Preparation phase

  1. Communication pre-release: check with all Working Group Coordinators for status
  2. Communication pre-release: check with Lead Developers for status
  3. Communication pre-release: inform Bug Squad and Development Team of upcoming release
  4. Decision: when the above has positive result, set a date and time for release
  5. Communication pre-release: inform Global Moderators about upcoming release
  6. Communication pre-release: check availability and assign release tasks to Core and work-group members.
  7. Close trunk on predefined date and time (Development Coordinator, also sends an e-mail to development list).
  8. Image for front page download module, has to be modified for the release.
  9. Contact foundation work group for creation of Front page announcement.
  10. Determine release name

Pre-execution phase

  1. Apply latest translations (need to be delivered by translation work group).
  2. Create test package.
  3. Offer test package to testers: Bug Squad members, Development Team members, translation members
  4. If problems are found during this stage, go back to fix the problem. Use the Joomla! Maintenance Procedures and repeat until tests are performed successfully.

Execution phase

  1. Change version information.
  2. Enable install check.
  3. Add entry in CHANGELOG.php file
  4. Package build.
  5. Offer test package to testers: Bug Squad members, Development Team members, translation members
  6. If problems are found during this stage, go back to fix the problem. Use the Joomla! Maintenance Procedures and repeat until tests are performed successfully.
  7. Add package to joomlacode.org
  8. Publish announcement on joomla.org and the forum, change download module image and link
  9. Make static copy of front page with announcement to be used if server load becomes critical.

Finalization phase

  1. Tag SVN.
  2. Un-freeze the trunk, send e-mail to work groups and mailing lists (Development Team and Bug Squad).
  3. Undo install check.
  4. Change content on joomla.org and dev.joomla.org (see pages to update)
  5. Update MD5 checksum information
  6. Update nightly builds to reflect new release

Pages to update

  1. Global:
  2. 1.5:
    • Create new Wiki article called 'Category:Version 1.5.X FAQ'. Add an overall note for the release in the body of the article using the previous version as a Guide. Insert the following into the article: [[Category:Version 1.5 FAQ]]. Include a link to the 'Category:Version 1.5.x FAQ' page in the Release notes.
    • Update Version History
    • Update Joomla! Codenames
  3. 1.0:

Calculating the Release Statistics

  1. Extract *all* issues from Tracker into spreadsheet. Make note of the date of the last release and the number of active issues at the time of the last release.
  2. Set a filter on the "Closed Date" column to be "after" "the day of the last release".
    • Calculate "Closed" count by aggregating status values for Closed, Duplicate Report, Known Issue, Not a bug, Not Joomla! Core, Unable to Confirm.
    • Calculate "Fixed in SVN" count by aggregating status values for Open and Information Required. (Note: this value is presented two times in the report.)
  3. Set a filter on the "Closed Date" column to be blanks:
    • Calculate "Open" count by aggregating status values for "Open" and "Information Required."
    • Calculate "Confirmed" count by aggregating status values for "Confirmed" and "In Progress."
    • Calculate "Pending" count by aggregating status values for "Pending" and "Ready to Commit."
  4. Calculate the "New Active Issues" by aggregating the "Open", "Confirmed" and "Pending" counts.
  5. Calculate the "net increase/decrease" by subtracting the "Last Release Active Issues" from the "New Active Issues."
  6. Count the "number of commits" by reviewing the CHANGELOG.php file and counting the documented commits.