Difference between revisions of "Release procedure and checklist"
From Joomla! Documentation
Dextercowley (talk | contribs) (updated instructions for version-specific faqs) |
Dextercowley (talk | contribs) (add build update) |
||
(35 intermediate revisions by 4 users not shown) | |||
Line 3: | Line 3: | ||
[[Category:Development]] | [[Category:Development]] | ||
− | + | 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 == | == Release checklist == | ||
Line 10: | Line 10: | ||
=== Preparation phase === | === Preparation phase === | ||
− | # Communication pre-release: check with | + | # Communication pre-release: check with PLT on timing |
− | + | # Communication pre-release: inform Bug Squad and LT's about timing | |
− | # Communication pre-release: inform Bug Squad and | ||
# Decision: when the above has positive result, set a date and time for release | # Decision: when the above has positive result, set a date and time for release | ||
# Communication pre-release: inform Global Moderators about upcoming release | # Communication pre-release: inform Global Moderators about upcoming release | ||
− | # Communication pre-release: check availability and assign release tasks to | + | # Communication pre-release: check availability and assign release tasks to JBS and PLT members |
− | # | + | # 5 days prior to release: freeze trunk for language changes |
− | # | + | # 2 days prior to release: freeze trunk for all changes, draft release notes to translation teams |
− | # | + | # 1 day prior to release: build packages for testing |
− | # | + | # Day of release: set project flags on Joomlacode, update web pages |
+ | # Announce on forum, announce to LT's | ||
=== Pre-execution phase === | === Pre-execution phase === | ||
Line 26: | Line 26: | ||
# Offer test package to testers: [[Bug Squad]] members, [[Development Team ]] members, translation members | # Offer test package to testers: [[Bug Squad]] members, [[Development Team ]] members, translation members | ||
# 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. | # 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 [http://forum.joomla.org/viewforum.php?f=54 private translation forum]. | ||
=== Execution phase === | === Execution phase === | ||
− | # Change version information. | + | # Check for security fixes. |
+ | # Create release notes document on joomla.org and post copy to translation forum. | ||
+ | # Change version information (libraries/cms/version/version.php) | ||
+ | # Add entry in CHANGELOG.php file | ||
+ | # Update administrator/manifests/files/joomla.xml file for version number and date. | ||
+ | # Check joomla.sql file for version number in #__extensions table for Joomla CMS extension | ||
+ | #* mysql, sqlazure, postgres | ||
+ | # Make sure there is at least one .sql update file in the com_admin/sql/updates/<db> folders (to update the db schema). | ||
+ | # Update the build.php for the new version number. | ||
+ | # Check language/en-GB/en-GB.files_joomla.sys.ini file for version number (not needed for minor update). | ||
# Enable install check. | # Enable install check. | ||
− | # | + | # Tag release in git and commit to local github repo. |
# Package build. | # Package build. | ||
# Offer test package to testers: [[Bug Squad]] members, [[Development Team ]] members, translation members | # Offer test package to testers: [[Bug Squad]] members, [[Development Team ]] members, translation members | ||
# 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. | # 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 joomlacode.org | # 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. | ||
+ | # Update XML file on site for the new version number information. | ||
+ | ## FTP connect to update.joomla.org and Navigate to www/core | ||
+ | ## Change version attribute in list.xml (don't add new line) | ||
+ | ## Add new update element (copy from previous) with new version number and new downloadurl and link to new archive file | ||
+ | ## Test auto update from prior version(s) | ||
+ | # Update Joomla.org Download article | ||
+ | # Publish security notices on developer site. | ||
+ | # Publish release announcement on Joomla.org | ||
+ | # Publish announcement on the forum | ||
+ | # Update Wiki: FAQ, Version history | ||
=== Finalization phase === | === Finalization phase === | ||
− | # | + | # Push release changes from local to remote Github repo |
− | # | + | ## Security fixes (if any) |
− | # | + | ## Version tag |
− | # | + | ## Version changes (SQL files, version.php, joomla.xml) |
− | # Update | + | ## Install checks |
− | # Update | + | # Update Github repo for new version development |
+ | ## Remove install checks | ||
+ | ## Update version in version.php, joomla.xml, SQL files, SQL update files | ||
=== Pages to update === | === Pages to update === | ||
#Global: | #Global: | ||
− | |||
#1.5: | #1.5: | ||
− | #* Create new Wiki article called 'Category:Version 1.5.X FAQ' | + | #* 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: <nowiki>[[Category:Version 1.5 FAQ]]</nowiki>. Include a link to the 'Category:Version 1.5.x FAQ' page in the Release notes. |
− | + | #* Update [http://docs.joomla.org/Joomla_1.5_version_history Version History] | |
− | + | #* Update [http://docs.joomla.org/Joomla!_Codenames Joomla! Codenames] | |
− | #* [http://docs.joomla.org/Joomla_1.5_version_history Version History] | ||
# 1.0: | # 1.0: | ||
#* [http://dev.joomla.org/content/blogcategory/21/86/ Current Status] | #* [http://dev.joomla.org/content/blogcategory/21/86/ Current Status] | ||
Line 61: | Line 83: | ||
#* [http://www.joomla.org/content/category/5/39/95/ MD5 Sums] | #* [http://www.joomla.org/content/category/5/39/95/ MD5 Sums] | ||
− | === | + | === Calculating Release Statistics === |
− | + | ||
+ | # 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. | ||
+ | |||
+ | ===Alternative Method for Stats=== | ||
+ | * 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==== | ||
+ | * 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. |
Revision as of 17:39, 26 April 2013
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 Moderators about upcoming release
- Communication pre-release: check availability and assign release tasks to JBS and PLT members
- 5 days prior to release: freeze trunk for language changes
- 2 days prior to release: freeze trunk for all changes, draft release notes to translation teams
- 1 day prior to release: build packages for testing
- Day of release: set project flags on Joomlacode, update web pages
- Announce on forum, announce to LT's
Pre-execution phase[edit]
- Apply latest translations (need to be delivered by translation work group).
- Create test package.
- Offer test package to testers: Bug Squad members, Development Team members, translation members
- 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.
Execution phase[edit]
- Check for security fixes.
- Create release notes document on joomla.org and post copy to translation forum.
- Change version information (libraries/cms/version/version.php)
- Add entry in CHANGELOG.php file
- Update administrator/manifests/files/joomla.xml file for version number and date.
- Check joomla.sql file for version number in #__extensions table for Joomla CMS extension
- mysql, sqlazure, postgres
- Make sure there is at least one .sql update file in the com_admin/sql/updates/<db> folders (to update the db schema).
- Update the build.php for the new version number.
- Check language/en-GB/en-GB.files_joomla.sys.ini file for version number (not needed for minor update).
- Enable install check.
- Tag release in git and commit to local github repo.
- Package build.
- Offer test package to testers: Bug Squad members, Development Team members, translation members
- 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 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.
- Update XML file on site for the new version number information.
- FTP connect to update.joomla.org and Navigate to www/core
- Change version attribute in list.xml (don't add new line)
- Add new update element (copy from previous) with new version number and new downloadurl and link to new archive file
- Test auto update from prior version(s)
- Update Joomla.org Download article
- Publish security notices on developer site.
- Publish release announcement on Joomla.org
- Publish announcement on the forum
- Update Wiki: FAQ, Version history
Finalization phase[edit]
- Push release changes from local to remote Github repo
- Security fixes (if any)
- Version tag
- Version changes (SQL files, version.php, joomla.xml)
- Install checks
- Update Github repo for new version development
- Remove install checks
- Update version in version.php, joomla.xml, SQL files, SQL update files
Pages to update[edit]
- Global:
- 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
- 1.0:
Calculating Release Statistics[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.
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.