Actions

Developer Area/Release Instructions/Old Major Release: Difference between revisions

From Mahara Wiki

< Developer Area‎ | Release Instructions
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
(🟡 See [[Developer Area/Release Instructions/Pre-release investigation and tasks|Pre-release investigation and tasks]] and [[Developer Area/Release Instructions/Release day|Release day]])
Here are the things to do before and after running through the usual [[Developer Area/Release Instructions|release instructions]] when preparing a new major release.
Here are the things to do before and after running through the usual [[Developer Area/Release Instructions|release instructions]] when preparing a new major release.


= BEFORE the release =
=BEFORE the release=


== Release candidate ==
==Release candidate==


Major releases should be preceded by at least one [[Developer Area/Release Instructions/Release Candidate|release candidate]].
Major releases should be preceded by at least one [[Developer Area/Release Instructions/Release Candidate|release candidate]].


== Creating the new stable branch ==
==Creating the new stable branch==


The new stable branch '''should''' be created off the _DEV branch as part of the ./release.php script - so make sure that happens in the local /tmp/ clone of mahara and that the release cleanup script pushes things to the right branch.
The new stable branch '''should''' be created off the _DEV branch as part of the ./release.php script - so make sure that happens in the local /tmp/ clone of mahara and that the release cleanup script pushes things to the right branch.


== Update the Readme file ==
==Update the Readme file==


Review the readme file and update it to reflect any changes, in particular around versions of PHP, Postgres, and MySQL / MariaDB supported and the minimum browser requirements. These need to be stated clearly.
Review the README.md file and update it to reflect any changes, in particular around versions of PHP, Postgres, and MySQL / MariaDB supported and the minimum browser requirements. These need to be stated clearly.


For PHP versions, the minimum '''and''' maximum supported version needs to be listed to avoid confusion as PHP does release versions more frequently.
For PHP versions, the minimum '''and''' maximum supported version needs to be listed to avoid confusion as PHP does release versions more frequently.
Also update the copyright message to make sure it  extends to the current year.


Also ensure changes here are reflected on the [[System_Administrator's_Guide/Requirements#Software|Software requirements]] page.
Also ensure changes here are reflected on the [[System_Administrator's_Guide/Requirements#Software|Software requirements]] page.


== Write the Change log & Release notes ==
==Write the Change log & Release notes==


You'll need to write up the Change Log beforehand at least because it gets included in the release's ZIP file. It should include any information about backwards compatibility breaking.
You'll need to write up the Change Log beforehand at least because it gets included in the release's ZIP file. It should include any information about backwards compatibility breaking.


=== Example for release notes ===
===Example for release notes===
Mahara 21.04.0 Release Notes
Mahara 21.04.0 Release Notes


https://launchpad.net/mahara/+milestone/21.04.0
https://launchpad.net/mahara/+milestone/21.04.0


=== Example for changelog ===
===Example for changelog===
<pre>
<pre>
Bug 1900786: combined exports: timing issues causing leap2a to be put into the wrong directory
Bug 1900786: combined exports: timing issues causing leap2a to be put into the wrong directory
Line 38: Line 42:
</pre>
</pre>


= AFTER the release =
=AFTER the release=


== Bump the stable_version on mahara.org ==
==Bump the stable_version on mahara.org==


This should now be done automatically via the htdocs/admin/cli/create_version.php script which is controlled by cron and will update once a day.
This should now be done automatically via the htdocs/admin/cli/create_version.php script which is controlled by cron and will update once a day.
Line 69: Line 73:
Note: Deploying the change to testing site will not show change - only deploy to production will
Note: Deploying the change to testing site will not show change - only deploy to production will


== Generate the git stats ==
==Generate the git stats==


The git contributor stats go in the release announcement on the Mahara News forum.  
The git contributor stats go in the release announcement on the Mahara News forum.  
* Grab our version of <tt>gitdm</tt> from the [https://git.mahara.org/scripts/mahara-scripts mahara-scripts repo]:
 
*Grab our version of <tt>gitdm</tt> from the [https://git.mahara.org/scripts/mahara-scripts mahara-scripts repo]:


  git clone [email protected]:scripts/mahara-scripts.git
  git clone [email protected]:scripts/mahara-scripts.git
<br>
<br>
The master and latest _STABLE branch run in parallel during RC time. This means we need to:
Find out the name of the current release branch, eg 21.10_DEV and the previous branch's first release tag, eg 21.04.0_RELEASE
# Find the last commit by name before the previous .0 release
# Copy it's commit ID
# Replace [commit ID] below with the correct value
<br>
You can find the commit before the previous .0 release using the release tag:
git log [release number].0_RELEASE
 
Or the fancy way (this will give you the IDs of the last and second-to-last commits):
git rev-list -n 2 [release number].0_RELEASE
<br>
Here is how to generate the stats at the end:<br>
Here is how to generate the stats at the end:<br>


  cd ~/path/to/mahara.git (your local mahara repo)
  cd ~/path/to/mahara.git (your local mahara repo)
  git log -p -M --no-merges [commit ID]..21.04_STABLE > ~/mahara.log
  git log -p -M --no-merges 21.04.0_RELEASE..21.10_DEV > ~/mahara.log
  cd ~/code/mahara-scripts/gitdm/
  cd ~/code/mahara-scripts/gitdm/
  cat ~/mahara.log | ./gitdm -c mahara.config -u -s -z -o results -h results.html
  cat ~/mahara.log | ./gitdm -c mahara.config -u -s -z -o results -h results.html
To do:
To do:
* Have a look at the <tt>results</tt> text file to ensure that developers are only listed once (otherwise add them to the <tt>mahara.aliases</tt> file).
* Make sure that there is no "(unknown)" company by making sure that all of the necessary mappings are in <tt>mahara.domain-map</tt>.
* If there are "(unknown)" company results, look through the generated text file "database.dump" to locate the unmapped individuals/emails.


== Launchpad series ==
*Have a look at the <tt>results</tt> text file to ensure that developers are only listed once (otherwise add them to the <tt>mahara.aliases</tt> file).
*Make sure that there is no "(unknown)" company by making sure that all of the necessary mappings are in <tt>mahara.domain-map</tt>.
*If there are "(unknown)" company results, look through the generated text file "database.dump" to locate the unmapped individuals/emails.
 
==Launchpad series==


When releasing 1.4, we did the following:
When having done a .0 release, we need to update the status of our series in Launchpad:


* Changed the status of [https://launchpad.net/mahara/1.5 1.5] to '''"Active development"''' and the description to '''"Future release of Mahara"'''
*Change the status of the future / trunk series to '''"Active development"''' and the description to '''"Release of Mahara X.Y, scheduled for April/October YYYY"'''
* Changed the status of [https://launchpad.net/mahara/1.4 1.4] to '''"Current stable release"''' and the description to '''"Stable release of Mahara"'''
*Changed the status of the series just released to '''"Current stable release"'''
* Changed the status of [https://launchpad.net/mahara/1.3 1.3] to '''"Supported"''' and the description to '''"Old stable release of Mahara"'''
*Changed the status of the series of all the supported series to '''"Supported"'''
* Changed the status of [https://launchpad.net/mahara/1.2 1.2] to '''"Obsolete"''' and the description to '''"Old stable release of Mahara (no longer supported)"'''
*Changed the status of the series that has just fallen out of support to '''"Obsolete"'''


Make sure to update both the [https://launchpad.net/mahara Mahara] and [https://launchpad.net/mahara-lang Mahara-Lang] projects.
Make sure to update both the [https://launchpad.net/mahara Mahara] and [https://launchpad.net/mahara-lang Mahara-Lang] projects.


== Mahara manual ==
==Mahara manual==


When releasing a major version, the Mahara manual also needs some attention.
When releasing a major version, the Mahara manual also needs some attention.


* Remove the version that is now out of support from the quick links to older manuals.
*Remove the version that is now out of support from the quick links to older manuals.
* Mention on the now unsupported manual that it is unsupported.
*Mention on the now unsupported manual that it is unsupported.
* Change the sentence on the index page of the new release to include the release date and add a link to the release announcement.
*Change the sentence on the index page of the new release to include the release date and add a link to the release announcement.
* Change the redirect in the index.html of the manual-builder package (Catalyst only).
*Change the redirect in the index.html of the manual-builder package (Catalyst only).


== Announcements ==
==Announcements==


There are a few places where the release should be announced:
There are a few places where the release should be announced:


* Release notes posted in the News forum (copy the format from the release notes for the previous release).
*Release notes posted in the News forum (copy the format from the release notes for the previous release).
* Identi.ca post which will also immediately post to Twitter.
*Identi.ca post which will also immediately post to Twitter.
* Any other places where you want to announce the release.
*Any other places where you want to announce the release.

Latest revision as of 01:10, 7 Mayıs 2022

(🟡 See Pre-release investigation and tasks and Release day)

Here are the things to do before and after running through the usual release instructions when preparing a new major release.

BEFORE the release

Release candidate

Major releases should be preceded by at least one release candidate.

Creating the new stable branch

The new stable branch should be created off the _DEV branch as part of the ./release.php script - so make sure that happens in the local /tmp/ clone of mahara and that the release cleanup script pushes things to the right branch.

Update the Readme file

Review the README.md file and update it to reflect any changes, in particular around versions of PHP, Postgres, and MySQL / MariaDB supported and the minimum browser requirements. These need to be stated clearly.

For PHP versions, the minimum and maximum supported version needs to be listed to avoid confusion as PHP does release versions more frequently.

Also update the copyright message to make sure it extends to the current year.

Also ensure changes here are reflected on the Software requirements page.

Write the Change log & Release notes

You'll need to write up the Change Log beforehand at least because it gets included in the release's ZIP file. It should include any information about backwards compatibility breaking.

Example for release notes

Mahara 21.04.0 Release Notes

https://launchpad.net/mahara/+milestone/21.04.0

Example for changelog

Bug 1900786: combined exports: timing issues causing leap2a to be put into the wrong directory
Bug 1902146: SmartEvidence framework Institution "All" option cannot be saved in non-English
Bug 1902679: Add confirmation step for deleting an external app
Bug 1903205: Only show Account migrate link if migration is possible
Bug 1903620: Access list needs to retain the sorted list of people
Bug 1904352: Adding a navigation block to a collection can cause loss of data

AFTER the release

Bump the stable_version on mahara.org

This should now be done automatically via the htdocs/admin/cli/create_version.php script which is controlled by cron and will update once a day.

If during major upgrade you can't wait for the cron you can log into the server and run the CLI script manually, eg

sudo -u www-data php create_version.php

If that is failing you can always do it the old way - see below

OLD INFO - should not need to do this any more

This is what sets the right download link in the header. And also sets the 'Latest version' info on the Mahara Administration dashboard for "Site information"

To do this you need to do 2 things:

1) Edit the htdocs/local/upgrade.php file and add a upgrade block, eg:

 if ($oldversion < 2018102500) {
    set_config('mahara_stable_version', '18.10');
 }

2) Edit the htdocs/local/version.php file and change the version and release variables, eg:

 $config->version = 2018102500;
 $config->release = '18.10.0';

Note: Deploying the change to testing site will not show change - only deploy to production will

Generate the git stats

The git contributor stats go in the release announcement on the Mahara News forum.

git clone [email protected]:scripts/mahara-scripts.git


Find out the name of the current release branch, eg 21.10_DEV and the previous branch's first release tag, eg 21.04.0_RELEASE Here is how to generate the stats at the end:

cd ~/path/to/mahara.git (your local mahara repo)
git log -p -M --no-merges 21.04.0_RELEASE..21.10_DEV > ~/mahara.log
cd ~/code/mahara-scripts/gitdm/
cat ~/mahara.log | ./gitdm -c mahara.config -u -s -z -o results -h results.html

To do:

  • Have a look at the results text file to ensure that developers are only listed once (otherwise add them to the mahara.aliases file).
  • Make sure that there is no "(unknown)" company by making sure that all of the necessary mappings are in mahara.domain-map.
  • If there are "(unknown)" company results, look through the generated text file "database.dump" to locate the unmapped individuals/emails.

Launchpad series

When having done a .0 release, we need to update the status of our series in Launchpad:

  • Change the status of the future / trunk series to "Active development" and the description to "Release of Mahara X.Y, scheduled for April/October YYYY"
  • Changed the status of the series just released to "Current stable release"
  • Changed the status of the series of all the supported series to "Supported"
  • Changed the status of the series that has just fallen out of support to "Obsolete"

Make sure to update both the Mahara and Mahara-Lang projects.

Mahara manual

When releasing a major version, the Mahara manual also needs some attention.

  • Remove the version that is now out of support from the quick links to older manuals.
  • Mention on the now unsupported manual that it is unsupported.
  • Change the sentence on the index page of the new release to include the release date and add a link to the release announcement.
  • Change the redirect in the index.html of the manual-builder package (Catalyst only).

Announcements

There are a few places where the release should be announced:

  • Release notes posted in the News forum (copy the format from the release notes for the previous release).
  • Identi.ca post which will also immediately post to Twitter.
  • Any other places where you want to announce the release.