Difference between revisions of "Release Checklist"

From Octave
Jump to navigation Jump to search
(Compare this template page with 5.0.0 Release Checklist.)
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
== 6.1 Release Tasks ==
+
Please use
  
<!----------------------------------------------------------------------------->
+
&lt;strike&gt;&lt;/strike&gt;
# Update gnulib to latest version
+
 
#: Must occur first as it could resolve existing, or create new, bug reports
+
to mark items as done.
#: Done.  You should run bootstrap in the source tree after updating to the new gnulib version.
+
 
#: Completion Date:
+
== Kickoff ==
<!----------------------------------------------------------------------------->
+
 
# File bug reports for all outstanding bugs known, but not reported
+
=== Update gnulib to latest version ===
#* Put out a general call for reports on Octave-Maintainers and Octave-Help list
+
:Completion Date:
#: 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.
<!----------------------------------------------------------------------------->
+
 
# Review patch tracker/bug list for any patches submitted that may be included before release
+
=== Call for bug reports ===
#: Completion Date:
+
:Completion Date:
<!----------------------------------------------------------------------------->
+
* Put out a general call for reports on maintainers@octave.org and help@octave.org for all outstanding unreported known bugs.
# Identify Bugs which '''must''' be fixed prior to release
+
 
#* Review bugs on tracker for possible inclusion in list
+
=== Review submitted patches on Savannah ===
#* Review bugs and update to correct category, such as Patch submitted
+
:Completion Date:
#: Completion Date:
+
* Submitted patches from '''bug tracker''' included.
<!----------------------------------------------------------------------------->
+
* Submitted patches from '''patch tracker''' included.
# Clear all bugs identified as must-fix
+
 
#* See [[6.1 Release Bug Fix List]]
+
=== Review open bugs on Savannah ===
#: Completion Date:
+
:Completion Date:
<!----------------------------------------------------------------------------->
+
* Review bugs and update to correct category, such as "Patch submitted", correct title if necessary.
# GPL License activities
+
* Add "must-fix" items to [[6.1 Release Bug Fix List]].
#* Update Copyright statements for all source controlled files
+
 
#* Update dates in any other locations (launch message, citation, MXE files, etc.)
+
== One time tasks ==
#* Add any new contributors to contributors.in
+
 
#: Completion Date:
+
=== GPL License activities ===
<!----------------------------------------------------------------------------->
+
:Completion Date:
# Style-check code base
+
* Update copyright statements for all source controlled files.
#* This will produce lots of whitespace changes, but no behavior changes
+
* Update dates in any other locations (launch message, citation, MXE files, etc.).
#* Must occur after patches have been added since whitespace changes can prevent patches from applying
+
* Add any new contributors to {{Path|doc/interpreter/contributors.in}} who wish to be mentioned (don't add them without permission).
#* m-file style check. Completion Date:
+
 
#* C++ style check. Completion Date:
+
=== Style-check code base ===
<!----------------------------------------------------------------------------->
+
:Completion Date:
# Run lint checker on code base
+
: 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.
#* Possibilities include compiling with -fsanitize=undefined and running 'make check', cppcheck, etc.
+
* m-file style check
#* PVS static analyzer results [[PVS static analyzer - 5.0 Release]]
+
* C++ style check
#* Compile with -fsanitize=undefined and run 'make check'
+
 
#: Completion Date:
+
=== Review documentation ===
<!----------------------------------------------------------------------------->
+
:Completion Date:
# Verify 'make check' is passing on all buildbot combinations of OS and compilers
+
* Grammar check documentation.
#* Start discussion on octave-maintainers list about which failing tests must be fixed
+
* Spell check documentation.
#* Identify and fix any tests determined critical in step above
+
* Verify no functions missing from manual.
#: Completion Date:
+
* Verify deprecated functions removed from "see also" links.
<!----------------------------------------------------------------------------->
+
* Verify all formats (Info, HTML, PDF) build correctly.
# Compile and run Octave test suite with --enable-address-sanitizer-flags to check for memory leaks
+
* Review {{Path|NEWS}} for any features which should be announced.
#: Completion Date:
+
* Update major version number in "@subtitle Edition XXX" in {{Path|octave.texi}}.
<!----------------------------------------------------------------------------->
+
 
# Review documentation
+
=== Call for translations ===
#* Grammar check documentation so that it conforms to Octave standards
+
:Completion Date:
#* Spell check documentation
+
* Update language translation files (*.ts).
#* Verify no functions missing from manual
+
* Create issue report on Savannah as a centralized location for uploading files.
#* Verify deprecated functions removed from "see also" links
+
* Call for translations for GUI strings on maintainers@octave.org.
#* Verify all formats (Info, HTML, pdf) build correctly
+
 
#* Review NEWS for any features which should be announced
+
== Repeat until all bugs are resolved ==
#* Update major version number in "@subtitle Edition XXX" in octave.texi
+
:Completion Date first iteration:
#: Completion Date:
+
 
<!----------------------------------------------------------------------------->
+
=== Merge submitted patches ===
# Localization and Internationalization
+
* Push translations provided by translators.
#* Update language translation files (*.ts)
+
* Push reviewed patches from Savannah.
#* Create issue report on Savannah as a centralized location for uploading files
+
 
#* Submit call for translations for GUI strings
+
=== <code>make check</code> ===
#* Push translations provided by translators
+
* Verify <code>make check</code> is passing on all [http://buildbot.octave.org:8010/#/waterfall buildbot combinations of OS and compilers].
#: Completion Date:
+
* 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]].
#  Update shared library and oct file API version numbers
+
* Start discussion on maintainers@octave.org about which failing tests that must be fixed and which can be declared '''WON'T FIX'''.
#* Increment oct file API version number (configure.ac:OCTAVE_API_VERSION, increment number and drop "+" suffix)
+
 
#* Increment libtool versioning (liboctave/module.mk:%canon_reldir%_%canon_reldir%_current, libinterp/module.mk:%canon_reldir%_liboctinterp_current, libgui/module.mk:%canon_reldir%_liboctgui_current)
+
=== Create new release candidate ===
#: Completion Date:
+
* Ensure correct [[#Versioning hints|version information]].
<!----------------------------------------------------------------------------->
+
* Create hg tag in repository with release candidate version number.
# Verify build process and create release candidates
+
* Verify <code>make distcheck</code> passes.
#* Update configure.ac with new version information
+
* Verify <code>make dist</code> works.
#**  Update AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE
+
* Create [[Windows Installer]].
#* Verify 'make distcheck' passes
+
* Upload release candidates.
#* Create release candidate
+
* Add release candidate version to Savannah bug tracker.
#** 'make dist'
+
* Announce release candidate to maintainers@octave.org, help@octave.org mailing-list, on web page.
#** hg tag repository with release candidate ID
+
 
#** For Windows, create installer [[Windows Installer]]
+
== Final Release ==
#** Upload release candidate
+
 
#** Add release candidate version to Savannah bug tracker
+
=== Update version information ===
#** Announce release candidate to Octave-Maintainers, Octave-Help, on web page
+
:Completion Date:
#** Repeat release candidate cycle until clean
+
* Ensure correct [[#Versioning hints|version information]].
#: Completion Date:
+
* Create hg tag in repository with release version number.
<!----------------------------------------------------------------------------->
+
* Update {{Path|NEWS}} (final release date).
# Final Release
+
* Update {{Path|CITATION}} (version, year, URL).
#* Update version information
+
* Update {{Path|org.octave.Octave.appdata.xml}} (version number and release date).
#** Update configure.ac (AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE)
+
* Update Savannah bug tracker version info.
#** Update NEWS (final release date)
+
* Remove release candidate versions from Savannah.
#** Update CITATION (version, year, URL)
+
 
#** Update org.octave.Octave.appdata.xml (version number and release date)
+
=== Announce final release ===
#* hg tag repository with release version number
+
:Completion Date:
#* merge default onto stable to become the current stable release
+
* Octave mailing-lists
#* Savannah bug tracker version info
+
* Octave web site
#** add new release version to bug tracker
+
* This wiki
#** remove release candidate versions from bug tracker
+
 
#* Announce final release on
+
== Post-Release ==
#** Octave mailing lists
+
:Completion Date:
#** Octave web site
+
* Merge default onto stable to become the current stable release.
#** This wiki
+
* Ensure correct [[#Versioning hints|version information]].
#: Completion Date:
+
* 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}}.
# Post-Release
+
* Create new {{Path|NEWS}} file.
#* Update configure.ac (AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION) to next release cycle
+
 
#* Update oct file API version number (configure.ac:OCTAVE_API_VERSION, add "+" suffix)
+
== Versioning hints ==
#* 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
+
{{Note|Read [https://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING.md <code>etc/HACKING.md</code>] carefully!!}}
#* Create new NEWS file
+
 
#: Completion Date:
+
* 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]]
 
[[Category:Releases]]

Revision as of 01: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