Release Checklist: Difference between revisions

From Octave
Jump to navigation Jump to search
(Created page with "* Work for the next few days on the stable branch until a release is ready, in whatever state it is in within the next few days. The outstanding big bugs are in the GUI, and w...")
 
(29 intermediate revisions by 4 users not shown)
Line 1: Line 1:
* Work for the next few days on the stable branch until a release is ready, in whatever state it is in within the next few days. The outstanding big bugs are in the GUI, and we've agreed that we'll just release with those bugs and the warnings that jwe has put in.
Please use


* Create a new gui-release branch based off current default
<strike></strike>


* Merge classdef into default. Close classdef branch.
to mark items as done.


* New experimental features and development go into the default branch. This will either be a 4.2 or 5.x release.
== Kickoff ==


* Merging order goes like this: stable -> gui-release -> default
=== Update gnulib to latest version ===
:Completion Date:
:Must occur first as it could resolve existing, or create new, bug reports. You should run <code>./bootstrap</code> in the source tree after updating to the new gnulib version.


* After the 3.8 release, we work hard on the gui-release branch and release 4.0 from gui-release. Final merge of gui-release into default and close gui-release. Hopefully we can do this within a few months, say, no more than 4.
=== Call for bug reports ===
:Completion Date:
* Put out a general call for reports on maintainers@octave.org and help@octave.org for all outstanding unreported known bugs.


* Try to focus all efforts on gui-release to the extent that a 3.8.1 release won't even be necessary, but as usual, critical bugs in the 3.8 release get patched on stable and forward-merged into release-gui and fault, just in case we really do need to do 3.8.1
=== Review submitted patches on Savannah ===
:Completion Date:
* Submitted patches from '''bug tracker''' included.
* Submitted patches from '''patch tracker''' included.


[[Category:Development]]
=== Review open bugs on Savannah ===
:Completion Date:
* Review bugs and update to correct category, such as "Patch submitted", correct title if necessary.
* Add "must-fix" items to [[6.1 Release Bug Fix List]].
 
== One time tasks ==
 
=== GPL License activities ===
:Completion Date:
* Update copyright statements for all source controlled files.
* Update dates in any other locations (launch message, citation, MXE files, etc.).
* Add any new contributors to {{Path|doc/interpreter/contributors.in}} who wish to be mentioned (don't add them without permission).
 
=== Style-check code base ===
:Completion Date:
: This will produce lots of whitespace changes, but no behavior changes. '''Must occur after patches have been added''', since whitespace changes can prevent patches from applying.
* m-file style check
* C++ style check
 
=== Review documentation ===
:Completion Date:
* Grammar check documentation.
* Spell check documentation.
* Verify no functions missing from manual.
* Verify deprecated functions removed from "see also" links.
* Verify all formats (Info, HTML, PDF) build correctly.
* Review {{Path|NEWS}} for any features which should be announced.
* Update major version number in "@subtitle Edition XXX" in {{Path|octave.texi}}.
 
=== Call for translations ===
:Completion Date:
* Update language translation files (*.ts).
* Create issue report on Savannah as a centralized location for uploading files.
* Call for translations for GUI strings on maintainers@octave.org.
 
== Repeat until all bugs are resolved ==
:Completion Date first iteration:
 
=== Merge submitted patches ===
* Push translations provided by translators.
* Push reviewed patches from Savannah.
 
=== <code>make check</code> ===
* Verify <code>make check</code> is passing on all [http://buildbot.octave.org:8010/#/waterfall buildbot combinations of OS and compilers].
* Compiling with <code>-fsanitize=undefined</code>, <code>--enable-address-sanitizer-flags</code> to check for memory leaks. Use other tools <code>cppcheck</code>, etc.
** Update PVS static analyzer results [[PVS static analyzer - 5.0 Release]].
* Start discussion on maintainers@octave.org about which failing tests that must be fixed and which can be declared '''WON'T FIX'''.
 
=== Create new release candidate ===
* Ensure correct [[#Versioning hints|version information]].
* Create hg tag in repository with release candidate version number.
* Verify <code>make distcheck</code> passes.
* Verify <code>make dist</code> works.
* Create [[Windows Installer]].
* Upload release candidates.
* Add release candidate version to Savannah bug tracker.
* Announce release candidate to maintainers@octave.org, help@octave.org mailing-list, on web page.
 
== Final Release ==
 
=== Update version information ===
:Completion Date:
* Ensure correct [[#Versioning hints|version information]].
* Create hg tag in repository with release version number.
* Update {{Path|NEWS}} (final release date).
* Update {{Path|CITATION}} (version, year, URL).
* Update {{Path|org.octave.Octave.appdata.xml}} (version number and release date).
* Update Savannah bug tracker version info.
* Remove release candidate versions from Savannah.
 
=== Announce final release ===
:Completion Date:
* Octave mailing-lists
* Octave web site
* This wiki
 
== Post-Release ==
:Completion Date:
* Merge default onto stable to become the current stable release.
* Ensure correct [[#Versioning hints|version information]].
* Remove all deprecated functions (either <code>OCTAVE_DEPRECATED</code> in C++ or scripts/deprecated for m-files) scheduled for deletion in "default" branch.
* Move {{Path|NEWS}} file to backup in {{Path|etc/NEWS.X}}.
* Create new {{Path|NEWS}} file.
 
== Versioning hints ==
 
{{Note|Read [https://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING.md <code>etc/HACKING.md</code>] carefully!!}}
 
* Update {{Path|configure.ac}}:
** <code>AC_INIT</code>
** <code>OCTAVE_API_VERSION</code>
** <code>OCTAVE_MAJOR/MINOR/PATCH_VERSION</code>
** <code>OCTAVE_RELEASE_DATE</code>
* Update libtool versioning:
** {{Path|liboctave/module.mk}} <code>%canon_reldir%_%canon_reldir%_current</code>
** {{Path|libinterp/module.mk}} <code>%canon_reldir%_liboctinterp_current</code>
** {{Path|libgui/module.mk}} <code>%canon_reldir%_liboctgui_current</code>
 
[[Category:Releases]]

Revision as of 08:49, 10 December 2019

Please use

<strike></strike>

to mark items as done.

Kickoff

Update gnulib to latest version

Completion Date:
Must occur first as it could resolve existing, or create new, bug reports. You should run ./bootstrap in the source tree after updating to the new gnulib version.

Call for bug reports

Completion Date:
  • Put out a general call for reports on maintainers@octave.org and help@octave.org for all outstanding unreported known bugs.

Review submitted patches on Savannah

Completion Date:
  • Submitted patches from bug tracker included.
  • Submitted patches from patch tracker included.

Review open bugs on Savannah

Completion Date:
  • Review bugs and update to correct category, such as "Patch submitted", correct title if necessary.
  • Add "must-fix" items to 6.1 Release Bug Fix List.

One time tasks

GPL License activities

Completion Date:
  • Update copyright statements for all source controlled files.
  • Update dates in any other locations (launch message, citation, MXE files, etc.).
  • Add any new contributors to doc/interpreter/contributors.in who wish to be mentioned (don't add them without permission).

Style-check code base

Completion Date:
This will produce lots of whitespace changes, but no behavior changes. Must occur after patches have been added, since whitespace changes can prevent patches from applying.
  • m-file style check
  • C++ style check

Review documentation

Completion Date:
  • Grammar check documentation.
  • Spell check documentation.
  • Verify no functions missing from manual.
  • Verify deprecated functions removed from "see also" links.
  • Verify all formats (Info, HTML, PDF) build correctly.
  • Review NEWS for any features which should be announced.
  • Update major version number in "@subtitle Edition XXX" in octave.texi.

Call for translations

Completion Date:
  • Update language translation files (*.ts).
  • Create issue report on Savannah as a centralized location for uploading files.
  • Call for translations for GUI strings on maintainers@octave.org.

Repeat until all bugs are resolved

Completion Date first iteration:

Merge submitted patches

  • Push translations provided by translators.
  • Push reviewed patches from Savannah.

make check

  • Verify make check is passing on all buildbot combinations of OS and compilers.
  • Compiling with -fsanitize=undefined, --enable-address-sanitizer-flags to check for memory leaks. Use other tools cppcheck, etc.
  • Start discussion on maintainers@octave.org about which failing tests that must be fixed and which can be declared WON'T FIX.

Create new release candidate

  • Ensure correct version information.
  • Create hg tag in repository with release candidate version number.
  • Verify make distcheck passes.
  • Verify make dist works.
  • Create Windows Installer.
  • Upload release candidates.
  • Add release candidate version to Savannah bug tracker.
  • Announce release candidate to maintainers@octave.org, help@octave.org mailing-list, on web page.

Final Release

Update version information

Completion Date:
  • Ensure correct version information.
  • Create hg tag in repository with release version number.
  • Update NEWS (final release date).
  • Update CITATION (version, year, URL).
  • Update org.octave.Octave.appdata.xml (version number and release date).
  • Update Savannah bug tracker version info.
  • Remove release candidate versions from Savannah.

Announce final release

Completion Date:
  • Octave mailing-lists
  • Octave web site
  • This wiki

Post-Release

Completion Date:
  • Merge default onto stable to become the current stable release.
  • Ensure correct version information.
  • Remove all deprecated functions (either OCTAVE_DEPRECATED in C++ or scripts/deprecated for m-files) scheduled for deletion in "default" branch.
  • Move NEWS file to backup in etc/NEWS.X.
  • Create new NEWS file.

Versioning hints

Info icon.svg
Read etc/HACKING.md carefully!!
  • Update configure.ac:
    • AC_INIT
    • OCTAVE_API_VERSION
    • OCTAVE_MAJOR/MINOR/PATCH_VERSION
    • OCTAVE_RELEASE_DATE
  • Update libtool versioning:
    • liboctave/module.mk %canon_reldir%_%canon_reldir%_current
    • libinterp/module.mk %canon_reldir%_liboctinterp_current
    • libgui/module.mk %canon_reldir%_liboctgui_current