Difference between revisions of "Release Checklist"

From Octave
Jump to navigation Jump to search
(→‎Post-Release: Overhaul section.)
Line 39: Line 39:
  
 
== Repeat until all bugs are resolved ==
 
== Repeat until all bugs are resolved ==
 +
:Completion Date first iteration:
 +
 +
=== Review documentation ===
 +
* 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}}.
 +
 +
=== Localization and Internationalization ===
 +
* Update language translation files (*.ts)
 +
* Create issue report on Savannah as a centralized location for uploading files.
 +
* Submit call for translations for GUI strings.
 +
* Push translations provided by translators.
  
 
=== Run lint checker on code base ===
 
=== Run lint checker on code base ===
:Completion Date:
+
* Compiling with <code>-fsanitize=undefined</code>, <code>--enable-address-sanitizer-flags</code> and running <code>make check</code> to check for memory leaks. Other tools <code>cppcheck</code>, etc.  
* Compiling with <code>-fsanitize=undefined</code> and running <code>make check</code>, <code>cppcheck</code>, etc.  
+
** PVS static analyzer results [[PVS static analyzer - 5.0 Release]].
** PVS static analyzer results [[PVS static analyzer - 5.0 Release]]
+
 
 +
=== <code>make check</code> ===
 +
* Verify <code>make check</code> is passing on all buildbot combinations of OS and compilers.
 +
* Start discussion on maintainers@octave.org about which failing tests that must be fixed.
 +
* Identify and fix any tests determined critical in step above.
  
<!----------------------------------------------------------------------------->
+
=== Create new release candidate ===
# Verify 'make check' is passing on all buildbot combinations of OS and compilers
+
* Update {{Path|configure.ac}} with incremented <code>OCTAVE_API_VERSION</code>.
#* Start discussion on octave-maintainers list about which failing tests must be fixed
+
* Update AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE  
#* Identify and fix any tests determined critical in step above
+
* Verify <code>make distcheck</code> passes.
#: Completion Date:
+
* Verify <code>make dist</code> works.
<!----------------------------------------------------------------------------->
+
* hg tag repository with release candidate ID
# Compile and run Octave test suite with --enable-address-sanitizer-flags to check for memory leaks
+
* Create [[Windows Installer]].
#: Completion Date:
+
* Upload release candidate.
<!----------------------------------------------------------------------------->
+
* Add release candidate version to Savannah bug tracker.
# Review documentation
+
* Announce release candidate to Octave-Maintainers, Octave-Help, on web page.
#* Grammar check documentation so that it conforms to Octave standards
 
#* 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
 
#: Completion Date:
 
<!----------------------------------------------------------------------------->
 
# Localization and Internationalization
 
#* Update language translation files (*.ts)
 
#* Create issue report on Savannah as a centralized location for uploading files
 
#* Submit call for translations for GUI strings
 
#* Push translations provided by translators
 
#: Completion Date:
 
<!----------------------------------------------------------------------------->
 
Update shared library and oct file API version numbers
 
#* 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)
 
#: Completion Date:
 
<!----------------------------------------------------------------------------->
 
# Verify build process and create release candidates
 
#* Update configure.ac with new version information
 
#** Update AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE  
 
#* Verify 'make distcheck' passes
 
#* Create release candidate
 
#** 'make dist'
 
#** hg tag repository with release candidate ID
 
#** For Windows, create installer [[Windows Installer]]
 
#** Upload release candidate
 
#** Add release candidate version to Savannah bug tracker  
 
#** Announce release candidate to Octave-Maintainers, Octave-Help, on web page
 
#** Repeat release candidate cycle until clean
 
#: Completion Date:
 
  
 
== Final Release ==
 
== Final Release ==

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

File bug reports

Completion Date:
  • Put out a general call for reports on maintainers@octave.org and help@octave.org mailing-list 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.

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 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


Repeat until all bugs are resolved

Completion Date first iteration:

Review documentation

  • 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.

Localization and Internationalization

  • Update language translation files (*.ts)
  • Create issue report on Savannah as a centralized location for uploading files.
  • Submit call for translations for GUI strings.
  • Push translations provided by translators.

Run lint checker on code base

  • Compiling with -fsanitize=undefined, --enable-address-sanitizer-flags and running make check to check for memory leaks. Other tools cppcheck, etc.

make check

  • Verify make check is passing on all buildbot combinations of OS and compilers.
  • Start discussion on maintainers@octave.org about which failing tests that must be fixed.
  • Identify and fix any tests determined critical in step above.

Create new release candidate

  • Update configure.ac with incremented OCTAVE_API_VERSION.
  • Update AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE
  • Verify make distcheck passes.
  • Verify make dist works.
  • hg tag repository with release candidate ID
  • Create Windows Installer.
  • Upload release candidate.
  • Add release candidate version to Savannah bug tracker.
  • Announce release candidate to Octave-Maintainers, Octave-Help, on web page.

Final Release

Update version information

Completion Date:
  • Update configure.ac (AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE).
  • Update NEWS (final release date).
  • Update CITATION (version, year, URL).
  • Update org.octave.Octave.appdata.xml (version number and release date).
  • Create hg tag in repository with release version number.
  • Merge default onto stable to become the current stable release.
  • 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:
  • 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).
  • 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.