Difference between revisions of "Release Process"

From Audacity Wiki
Jump to: navigation, search
(More done.)
(3.0.3 development.)
Line 28: Line 28:
  
 
== Process (James) ==
 
== Process (James) ==
'''''The {{done}} and {{todo}} tick boxes are for 3.0.2'''''{{note|1=Some of the steps have been reduced here through improved scripts.  For example, there is no longer a need to modify the alpha manual before fetching a final version, as the changes are made as it is downloaded.}}
+
'''''The {{done}} and {{todo}} tick boxes are for 3.0.3'''''{{note|1=Some of the steps have been reduced here through improved scripts.  For example, there is no longer a need to modify the alpha manual before fetching a final version, as the changes are made as it is downloaded.}}
  
 
=== Early Stages ===
 
=== Early Stages ===
* {{done}} Candidates for RM step forward.  
+
* {{todo}} Candidates for RM step forward.  
* {{done}} Team designate a Release Manager.  
+
* {{todo}} Team designate a Release Manager.  
* {{done}} Release Manager announces he/she is RM.
+
* {{todo}} Release Manager announces he/she is RM.
* {{done}} RM announces proposed timeline and proposed scope
+
* {{todo}} RM announces proposed timeline and proposed scope
* {{done}} RM increments the version number in:
+
* {{todo}} RM increments the version number in:
 
** {{done}} src/Audacity.h
 
** {{done}} src/Audacity.h
 
** {{done}} win/build.txt
 
** {{done}} win/build.txt
Line 43: Line 43:
 
** {{done}} Add to Bugzilla "Version" field.
 
** {{done}} Add to Bugzilla "Version" field.
 
** {{done}} If needed, increase Copyright year in source code for src/AboutDialog.cpp
 
** {{done}} If needed, increase Copyright year in source code for src/AboutDialog.cpp
* {{done}} Agreed big/dangerous changes go in, such as new libraries, updating compilers or a switch to 64 bit.  ''This is to allow maximum time for issues with these to be worked out''
+
* {{todo}} Agreed big/dangerous changes go in, such as new libraries, updating compilers or a switch to 64 bit.  ''This is to allow maximum time for issues with these to be worked out''
* {{done}} RM checks codesigning certs, to ensure validity at planned time of use.
+
* {{todo}} RM checks codesigning certs, to ensure validity at planned time of use.
  
  
 
=== Middle Stage===
 
=== Middle Stage===
* {{done}} ''Lots of development happens here.''
+
* {{todo}} ''Lots of development happens here.''
* {{done}} ''Lots of bug fixing happens here.''
+
* {{todo}} ''Lots of bug fixing happens here.''
  
 
{{note|1=The RM has considerable latitude as to exactly what 'String Freeze' and 'Code Freeze' mean.
 
{{note|1=The RM has considerable latitude as to exactly what 'String Freeze' and 'Code Freeze' mean.
Line 60: Line 60:
 
=== String Freeze ===
 
=== String Freeze ===
  
* {{done}} Proposed string freeze data announced.
+
* {{todo}} Proposed string freeze data announced.
* {{done}} Active work on strings to get them ready for translation.   
+
* {{todo}} Active work on strings to get them ready for translation.   
* {{done}} Last minute tweaks to parameters, error messages and features where names/strings will be affected.
+
* {{todo}} Last minute tweaks to parameters, error messages and features where names/strings will be affected.
* {{done}} Last minute changes to manual.
+
* {{todo}} Last minute changes to manual.
** {{done}} Spot tests on alpha manual.  ''(in the past, we've been caught by mediawiki upgrades breaking the script)''
+
** {{todo}} Spot tests on alpha manual.  ''(in the past, we've been caught by mediawiki upgrades breaking the script)''
* {{done}} '''String Freeze announced.'''  ''(one or two week's duration)''.
+
* {{todo}} '''String Freeze announced.'''  ''(one or two week's duration)''.
* {{done}} Translators given .pot files to work on.   
+
* {{todo}} Translators given .pot files to work on.   
* {{done}} Translations updated in Audacity.
+
* {{todo}} Translations updated in Audacity.
* {{done}} End of translation announced.
+
* {{todo}} End of translation announced.
* {{done}} Write http://wiki.audacityteam.org/wiki/Release_Notes_3.0.2 - a brief user-friendly overview of 3.0.2 (checksums will come later)
+
* {{todo}} Write http://wiki.audacityteam.org/wiki/Release_Notes_3.0.3 - a brief user-friendly overview of 3.0.2 (checksums will come later)
* <s>{{done}} Write http://wiki.audacityteam.org/wiki/Release_Notes_3.0.2/Issues - a dynamic complete list of known issues OR fixed issues.</s>
+
* <s>{{todo}} Write http://wiki.audacityteam.org/wiki/Release_Notes_3.0.3/Issues - a dynamic complete list of known issues OR fixed issues.</s>
** {{done}} Final tweaks to the above, taking account of last minute P1s and P2s.
+
** {{todo}} Final tweaks to the above, taking account of last minute P1s and P2s.
* {{done}} RM updates README.txt, creating new "Changes in version" text and moving the old text to the top of CHANGELOG.TXT.  
+
* {{todo}} RM updates README.txt, creating new "Changes in version" text and moving the old text to the top of CHANGELOG.TXT.  
* {{done}} Sanity check installer on Win
+
* {{todo}} Sanity check installer on Win
* {{done}} Sanity check .dmg on Mac.
+
* {{todo}} Sanity check .dmg on Mac.
* {{done}} Sanity check tarball on Linux
+
* {{todo}} Sanity check tarball on Linux
* {{done}} '''Code Freeze''' announced.
+
* {{todo}} '''Code Freeze''' announced.
  
  
 
=== RCs ===
 
=== RCs ===
  
* {{done}} Check with manual team that there are no P1s in manual.
+
* {{todo}} Check with manual team that there are no P1s in manual.
* {{done}} RM Reviews all P2s
+
* {{todo}} RM Reviews all P2s
* {{done}} RM Prepares release announcement on WordPress website  ''(but do not make live)''
+
* {{todo}} RM Prepares release announcement on WordPress website  ''(but do not make live)''
* {{done}} '''Freeze manual'''
+
* {{todo}} '''Freeze manual'''
* {{done}} Fetch a copy of the manual.
+
* {{todo}} Fetch a copy of the manual.
* {{done}} In Audacity.h, set '''AUDACITY_BUILD_LEVEL to 2'''.
+
* {{todo}} In Audacity.h, set '''AUDACITY_BUILD_LEVEL to 2'''.
* {{done}} Make RCs (e.g. RC1) and place on FossHub audacity-devel ''(or drop box if unavailable)'' [x=02]
+
* {{todo}} Make RCs (e.g. RC1) and place on FossHub audacity-devel ''(or drop box if unavailable)'' [x=01]
** {{done}} RCx Win exe
+
** {{todo}} RCx Win exe
** {{done}} RCx Win zip
+
** {{todo}} RCx Win zip
** {{done}} RCx Mac dmg
+
** {{todo}} RCx Mac dmg
** {{done}} RCx Linux tarball
+
** {{todo}} RCx Linux tarball
** {{done}} RCx Manual zip
+
** {{todo}} RCx Manual zip
* {{done}} Generate the checksums and post at [[Release Notes 3.0.2]]
+
* {{todo}} Generate the checksums and post at [[Release Notes 3.0.2]]
* {{done}} Post the links to the RCs on audacity-devel and the Forum.  
+
* {{todo}} Post the links to the RCs on audacity-devel and the Forum.  
  
 
{{note|1=We may need to repeat with RC2, RC3, if showstoppers are found.}}{{note|1='''Gale's notes on testing:'''
 
{{note|1=We may need to repeat with RC2, RC3, if showstoppers are found.}}{{note|1='''Gale's notes on testing:'''
Line 104: Line 104:
 
=== Release ===
 
=== Release ===
  
* {{done}} Push the updated copy of the manual to [https://github.com/audacity/audacity-manual https://github.com/audacity/audacity-manual]
+
* {{todo}} Push the updated copy of the manual to [https://github.com/audacity/audacity-manual https://github.com/audacity/audacity-manual]
* {{done}} RM: Post final builds/installers (including manual.zip) to FossHub.
+
* {{todo}} RM: Post final builds/installers (including manual.zip) to FossHub.
* {{done}} RM: Post final builds/installers (including manual.zip) to GitHub.
+
* {{todo}} RM: Post final builds/installers (including manual.zip) to GitHub.
* {{done}} Tag the release in GitHub.
+
* {{todo}} Tag the release in GitHub.
* {{done}} Check whether any of the version numbers mentioned in 'Early Stages' can already be updated for the next version.
+
* {{todo}} Check whether any of the version numbers mentioned in 'Early Stages' can already be updated for the next version.
* {{done}} In Audacity.h, '''set AUDACITY_BUILD_LEVEL to 0'''.
+
* {{todo}} In Audacity.h, '''set AUDACITY_BUILD_LEVEL to 0'''.
* {{done}} '''Lift Code Freeze, String Freeze and Manual Freeze. '''
+
* {{todo}} '''Lift Code Freeze, String Freeze and Manual Freeze. '''
* {{done}} In Bugzilla add the new alpha version to the "Version" field.
+
* {{todo}} In Bugzilla add the new alpha version to the "Version" field.
* {{done}} In Bugzilla update the message of the day to state the new version.
+
* {{todo}} In Bugzilla update the message of the day to state the new version.
  
 
'''Release is complete!'''
 
'''Release is complete!'''
Line 119: Line 119:
  
 
=== Website Changes ===
 
=== Website Changes ===
* {{done}} New release announcement on WordPress made live.
+
* {{todo}} New release announcement on WordPress made live.
* {{done}} Add link to the new post at http://www.audacityteam.org/about/news/
+
* {{todo}} Add link to the new post at http://www.audacityteam.org/about/news/
* {{done}} Update mentions of SHA checksums (for installers, .zips, source code, and manual):
+
* {{todo}} Update mentions of SHA checksums (for installers, .zips, source code, and manual):
* {{done}} Update mentions of program versions, copyright dates, (for installers, .zips, source code, and manual) at:
+
* {{todo}} Update mentions of program versions, copyright dates, (for installers, .zips, source code, and manual) at:
 
** {{todo}} http://www.audacityteam.org/about/citations-screenshots-and-permissions/
 
** {{todo}} http://www.audacityteam.org/about/citations-screenshots-and-permissions/
 
** {{todo}} http://www.audacityteam.org/copyright/
 
** {{todo}} http://www.audacityteam.org/copyright/
** {{done}} http://www.audacityteam.org/download/online-safety-when-downloading/
+
** {{todo}} http://www.audacityteam.org/download/online-safety-when-downloading/
** {{done}} http://www.audacityteam.org/download/windows/
+
** {{todo}} http://www.audacityteam.org/download/windows/
** {{done}} http://www.audacityteam.org/download/mac/
+
** {{todo}} http://www.audacityteam.org/download/mac/
** {{done}} http://www.audacityteam.org/download/source/
+
** {{todo}} http://www.audacityteam.org/download/source/
** {{done}} The version number on the front page (via theme edits).
+
** {{todo}} The version number on the front page (via theme edits).
** {{done}} The version numbers on download pages (via widget edits).
+
** {{todo}} The version numbers on download pages (via widget edits).
 
* <s>{{todo}} Ask '''James''' to update [[Version Checking Scriptlet|version checker script]] at WordPress website.</s>
 
* <s>{{todo}} Ask '''James''' to update [[Version Checking Scriptlet|version checker script]] at WordPress website.</s>
 
** The above is struck out, since we no longer have the scriptlet plug-in on our site.
 
** The above is struck out, since we no longer have the scriptlet plug-in on our site.
Line 137: Line 137:
  
 
=== Wiki ===
 
=== Wiki ===
* {{done}} Update the Audacity Versions page at https://wiki.audacityteam.org/wiki/Audacity_Versions  
+
* {{todo}} Update the Audacity Versions page at https://wiki.audacityteam.org/wiki/Audacity_Versions  
  
 
=== Social Media etc===
 
=== Social Media etc===
* {{done}} '''RM:''' Announce the release to audacity-devel mailing list, [https://sourceforge.net/news/?group_id=6235 SourceForge]
+
* {{todo}} '''RM:''' Announce the release to audacity-devel mailing list, [https://sourceforge.net/news/?group_id=6235 SourceForge]
* {{done}} '''Peter:''' Announce to Facebook (and top pin?)
+
* {{todo}} '''Peter:''' Announce to Facebook (and top pin?)
* {{done}} '''Peter:''' Update Audacity Wikipedia page
+
* {{todo}} '''Peter:''' Update Audacity Wikipedia page
 
* {{todo}} '''Steve:''' Make the Forum announcement.
 
* {{todo}} '''Steve:''' Make the Forum announcement.
 
* {{todo}} '''Steve:''' Update on KVR
 
* {{todo}} '''Steve:''' Update on KVR
  
 
[[Category:For Developers]][[Category:Quality]]
 
[[Category:For Developers]][[Category:Quality]]

Revision as of 11:27, 27 April 2021

This page summarises our release process. It also (now) serves as a checklist.

Release Manager

  • Each release has a designated Release Manager (RM), one of the Audacity Team. The Release Manager
    • Manages the whole process, announcing dates, managing freezes, etc.
    • Makes stop/go decisions on the release, and other decisions responding to release issues.
    • RM will probably use a page on wiki such as Next Release for more detailed tracking of what is going into the release, and the schedule.
RM is God
This phrase is a slightly tongue in cheek reference to the fact that the RM decides what is in and what is out for each release. This is a mechanism to reduce argument when there are differences in opinion. The RM is of course expected to be reasonable, and would not have been trusted with the role if they were thought not to be.

Policies

  • P1s, including P1s in the manual, block release. P2s are 'Release Manager decides'.
  • New files provided for download always need a new name, so a "hotfix" to an installer will have a new name.
  • Release Manager can override policies, even releasing with a known P1 bug (though they are very unlikely to do that).

How Tos

The final section of many of the 'Building On' pages have instructions for building release versions.

Other tables etc...

Process (James)

The Done.png and ToDo.png tick boxes are for 3.0.3

Some of the steps have been reduced here through improved scripts. For example, there is no longer a need to modify the alpha manual before fetching a final version, as the changes are made as it is downloaded.

Early Stages

  • ToDo.png Candidates for RM step forward.
  • ToDo.png Team designate a Release Manager.
  • ToDo.png Release Manager announces he/she is RM.
  • ToDo.png RM announces proposed timeline and proposed scope
  • ToDo.png RM increments the version number in:
    • Done.png src/Audacity.h
    • Done.png win/build.txt
    • Done.png audacity.dox
    • Done.png Alpha Manual front page.
    • Done.png Bugzilla front page.
    • Done.png Add to Bugzilla "Version" field.
    • Done.png If needed, increase Copyright year in source code for src/AboutDialog.cpp
  • ToDo.png Agreed big/dangerous changes go in, such as new libraries, updating compilers or a switch to 64 bit. This is to allow maximum time for issues with these to be worked out
  • ToDo.png RM checks codesigning certs, to ensure validity at planned time of use.


Middle Stage

  • ToDo.png Lots of development happens here.
  • ToDo.png Lots of bug fixing happens here.


The RM has considerable latitude as to exactly what 'String Freeze' and 'Code Freeze' mean.
  • In String Freeze changes which will affect translation should not be made.
    • A consequence is that many features that might need tweaked text as they develop should not be modified during 'String Freeze'.
    • P1 and P2 fixes are OK in 'String Freeze', and RM may welcome any bug fixes.
  • Code Freeze is generally stricter, and generally all changes must be pre-approved.

String Freeze

  • ToDo.png Proposed string freeze data announced.
  • ToDo.png Active work on strings to get them ready for translation.
  • ToDo.png Last minute tweaks to parameters, error messages and features where names/strings will be affected.
  • ToDo.png Last minute changes to manual.
    • ToDo.png Spot tests on alpha manual. (in the past, we've been caught by mediawiki upgrades breaking the script)
  • ToDo.png String Freeze announced. (one or two week's duration).
  • ToDo.png Translators given .pot files to work on.
  • ToDo.png Translations updated in Audacity.
  • ToDo.png End of translation announced.
  • ToDo.png Write http://wiki.audacityteam.org/wiki/Release_Notes_3.0.3 - a brief user-friendly overview of 3.0.2 (checksums will come later)
  • ToDo.png Write http://wiki.audacityteam.org/wiki/Release_Notes_3.0.3/Issues - a dynamic complete list of known issues OR fixed issues.
    • ToDo.png Final tweaks to the above, taking account of last minute P1s and P2s.
  • ToDo.png RM updates README.txt, creating new "Changes in version" text and moving the old text to the top of CHANGELOG.TXT.
  • ToDo.png Sanity check installer on Win
  • ToDo.png Sanity check .dmg on Mac.
  • ToDo.png Sanity check tarball on Linux
  • ToDo.png Code Freeze announced.


RCs

  • ToDo.png Check with manual team that there are no P1s in manual.
  • ToDo.png RM Reviews all P2s
  • ToDo.png RM Prepares release announcement on WordPress website (but do not make live)
  • ToDo.png Freeze manual
  • ToDo.png Fetch a copy of the manual.
  • ToDo.png In Audacity.h, set AUDACITY_BUILD_LEVEL to 2.
  • ToDo.png Make RCs (e.g. RC1) and place on FossHub audacity-devel (or drop box if unavailable) [x=01]
    • ToDo.png RCx Win exe
    • ToDo.png RCx Win zip
    • ToDo.png RCx Mac dmg
    • ToDo.png RCx Linux tarball
    • ToDo.png RCx Manual zip
  • ToDo.png Generate the checksums and post at Release Notes 3.0.2
  • ToDo.png Post the links to the RCs on audacity-devel and the Forum.


We may need to repeat with RC2, RC3, if showstoppers are found.
Gale's notes on testing:
  • Ensure that installers are tested as well as the zips.
    • Test installers installing over an existing install.
    • Test on non-developer machines (in case it relies on features found only on developer machines).

Release

  • ToDo.png Push the updated copy of the manual to https://github.com/audacity/audacity-manual
  • ToDo.png RM: Post final builds/installers (including manual.zip) to FossHub.
  • ToDo.png RM: Post final builds/installers (including manual.zip) to GitHub.
  • ToDo.png Tag the release in GitHub.
  • ToDo.png Check whether any of the version numbers mentioned in 'Early Stages' can already be updated for the next version.
  • ToDo.png In Audacity.h, set AUDACITY_BUILD_LEVEL to 0.
  • ToDo.png Lift Code Freeze, String Freeze and Manual Freeze.
  • ToDo.png In Bugzilla add the new alpha version to the "Version" field.
  • ToDo.png In Bugzilla update the message of the day to state the new version.

Release is complete!

Release Announcements

Website Changes

Wiki

Social Media etc

  • ToDo.png RM: Announce the release to audacity-devel mailing list, SourceForge
  • ToDo.png Peter: Announce to Facebook (and top pin?)
  • ToDo.png Peter: Update Audacity Wikipedia page
  • ToDo.png Steve: Make the Forum announcement.
  • ToDo.png Steve: Update on KVR