Release procedure and checklist
From Joomla! Documentation
Revision as of 15:51, 3 June 2016 by Mbabker (talk | contribs) (→Release checklist: Update URL references)
Revision as of 15:51, 3 June 2016 by Mbabker (talk | contribs) (→Release checklist: Update URL references)
This 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.
Release checklist[edit]
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[edit]
- Communication pre-release: check with PLT on timing
- Communication pre-release: inform Bug Squad and LT's about timing
- Decision: when the above has positive result, set a date and time for release
- [Communication pre-release: inform Global Forum Moderators about upcoming release]
- Communication pre-release: check availability and assign release tasks to JBS and PLT members
- Minimum 14 days prior to a minor release: freeze trunk for language changes
- Minimum 7 days prior to a patch release: freeze trunk for language changes
- Minimum 3 days prior to release: freeze trunk for all changes, draft release notes to translation teams, package release candidate for testing
- Day of release: add the new release on Joomlacode and upload the files, update web pages
- Announce on forum, announce to LT's
- Update specific web pages with current version data
- Contact caped crusader for updating Joomla related sites
- Update the sites
Pre-release phase[edit]
- Apply latest installation translations (need to be delivered by translation work group Thomas Hunziker).
- Create pre-release package for testing.
- Offer pre-package to testers: Bug Squad members, Development Team members, translation members, and JTesters
- 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.
- Draft the release notes on Joomla.org and post draft to the private translation forum.
- Obtain any CVE numbers needed.
- Draft security notices as needed and leave unpublished on Joomla! Developer Network.
Release phase[edit]
- Check with JSST for security fixes. *
- Create release notes document on joomla.org.
- Run the bump.php script
- Check language/en-GB/en-GB.files_joomla.sys.ini file for version number (not needed for minor update).
- Commit and tag release locally
- Package build by running build/build.php
- Packages are now in the build/tmp folder
- Push to GitHub
- 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.
- Add package to GitHub
- This must be done after the version has been tagged and the tag pushed to GitHub due to how the Releases system works
- After pushing the tag, edit the release and attach all of the release packages to the release.
- Copy the description from a previous release and update for the new release.
- Update XML file on update.joomla.org site for the new version number information.
- FTP connect to update1.joomla.org and Navigate to www/core
- All releases
- Change version attribute in list.xml (don't add new line except when incrementing major/minor version numbers)
- LTS Release
- Change the update elements for the series with the new version number and new downloadurl and link to new archive file to extension.xml
- STS Release
- Navigate to www/core/sts
- Change version attribute in list_sts.xml (don't add new line except when incrementing major/minor version numbers)
- Change the update elements for the series with the new version number, new downloadurl and link to new archive file to extension_sts.xml, and the infourl linking to the release announcement
- Test auto update from prior version(s) (make sure XML files have been copied to the CDN on update.joomla.org first)
- All releases
- Navigate to www/core/test
- Change version attribute in list_test.xml (don't add new line except when incrementing major/minor version numbers)
- LTS
- Upload patch package to this folder
- Change the update elements for the series with the new version number, new downloadurl and link to new archive file to extension_sts.xml, and the infourl linking to the release announcement
- STS
- Navigate to www/core/teststs
- Upload patch package to this folder
- Change the update elements for the series with the new version number, new downloadurl and link to new archive file to extension_sts.xml, and the infourl linking to the release announcement
- All releases
- Update Joomla.org Download article *
- Publish security articles on developer site. *
- Publish release announcement on Joomla.org
- Publish announcement on the forum [Peter Martin]
- Update Wiki: FAQ, Version history [Mat]
- Post to leadership in Glip
- Create the Web Platform Installer packs and submit them *
- Add package to joomlacode.org
- Before the release is public, set the JoomlaCode package flags as follows: Visible=No, Public=No, Require Login=Yes.
- Set the Release flags as follows: Visible=Yes, Released=Yes.
- Once package is released, change the Package flags to Visible=Yes, Public=Yes, Require Login=No.
- Change the prior version package to Visible=No but leave the prior version release flags as they are.
Note: Items with an asterisk can be skipped for non-stable releases
Post-release & Finalization phase[edit]
- Update GitHub repo for new version development
- Update version in libraries/cms/version/version.php, administrator/manifests/files/joomla.xml
- Delete old release branch after confirming all commits are merged to series development head and there are no open pull requests
- Close security issues in security tracker
Pages to update[edit]
- Global:
Sites to update[edit]
- PLT Owned sites
- Developer Site
- Downloads Portal
- Help Screen Proxy
- API Site
- Regenerate API docs for the new release via Jenkins
Calculating Release Statistics[edit]
Using JoomlaCode and CHANGELOG[edit]
- 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.
- 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.)
- 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."
- Calculate the "New Active Issues" by aggregating the "Open", "Confirmed" and "Pending" counts.
- Calculate the "net increase/decrease" by subtracting the "Last Release Active Issues" from the "New Active Issues."
- Count the "number of commits" by reviewing the CHANGELOG.php file and counting the documented commits.
Using GitHub[edit]
- Go to https://github.com/joomla/joomla-cms/compare/<version>...master where <version> is the previous release, this is GitHub's comparison view and will give stats from the previous release tag to the currently published master
- From this page, you can compile the number of commits, contributors, and files changed during the release period
Download Statistics[edit]
- Go to http://joomlacode.org/gf/project/joomla/frs/?action=FrsReport
- In the filter bar, set the start date to the date of the previous release and the end date to the day before the new release
- The "Downloads By Package" chart is the total number of downloads for each release (i.e. 2.5.16 and 3.2.0) and includes an "Other" piece for all older version downloads
- The "Downloads By Release" chart separates the packages by new install and updates
Alternative Method for Stats[edit]
- Fixed in SVN: Create query with close date > date of prior release and status = Fixed in SVN.
- Commits: Count from CHANGELOG.php as indicated above.
- New Reports: Run query with all status codes and open date > date of prior release.
- Increase / decrease in active issues: See note below
- Closed: Run query with closed date > date of prior release and status code one of Closed, Duplicate Report, Known Issue, Not a bug, Not Joomla! Core, Unable to Confirm.
- Open at time of release: query of all issues with status = Open or Information Required
- Confirmed at time of release: query of all issues with status = Confirmed or In Progress
- Pending at time of release: query of all issues with status = Pending or Ready to Commit
Increase/Decrease in Active Issues[edit]
- Total active issues now = Open at time of release + Confirmed at time of release + Pending at time of release
- This number minus the total active as of prior release is the net increase or decrease
As a check, make sure the following formula works:
- Prior release total active issues + New Reports - (Closed + Fixed in SVN) should equal the Total Active Issues now.