9.1 Release Checklist: Difference between revisions

From Octave
Jump to navigation Jump to search
m (Update dates)
(add notes about pre-releases for 9.x)
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Note|'''Timeline''' (tentative)
{{Note|'''Timeline''' (tentative)
* 2023-11-22 🚀 Release Kick-off âšŊ (default branch merged to stable)
* 2023-11-22 🚀 Release Kick-off âšŊ (default branch merged to stable)
* 2023-12-xx 🛠ī¸ 1st release candidate '''9.0.90''' on https://alpha.gnu.org/gnu/octave/
* 2024-02-07 🛠ī¸ 1st release candidate '''9.0.90''' on https://alpha.gnu.org/gnu/octave/
* 2023-12-xx 🏁 Final Release 🎉 '''9.1.0''' on https://ftp.gnu.org/gnu/octave/}}
* 2024-03-14 🏁 Final Release 🎉 '''9.1.0''' on https://ftp.gnu.org/gnu/octave/}}


:Please use <code>&lt;strike&gt; &lt;/strike&gt;</code> to mark items below as done.
:Please use <code>&lt;strike&gt; &lt;/strike&gt;</code> to mark items below as done.
Line 8: Line 8:
== 🚀 Kick-off âšŊ ==
== 🚀 Kick-off âšŊ ==


=== đŸ“ĸ Call for bug reports ===
=== <strike> đŸ“ĸ Call for bug reports </strike> ===
:Completion Date:
:Completion Date: 2023-11-24
* Put out a general call for reports on [https://octave.discourse.group/ Octave Discourse] for all outstanding unreported known bugs.
* WON'T DO <strike> Put out a general call for reports on [https://octave.discourse.group/ Octave Discourse] for all outstanding unreported known bugs. </strike>
* <strike> Create Savannah tag '''9.0.90''' on bug tracker. </strike>
* <strike> Create Savannah tag '''9.0.90''' on bug tracker. </strike>
* Mark items that should be fixed for the release with this tag.
* Mark items that should be fixed for the release with this tag.
Line 16: Line 16:


=== đŸ“ĸ Update GUI translation files ===
=== đŸ“ĸ Update GUI translation files ===
:Completion Date:  
:Completion Date: 2023-12-22
* Call for updates that might change GUI strings.
* <strike> Call for updates that might change GUI strings. </strike>
* String freeze date:  
* String freeze date: 2023-12-03
* Update language translation files (*.ts).  
* <strike> Update language translation files (*.ts). </strike>
* Create issue report on Savannah as a centralized location for uploading files. bug {{bug|63404}}
* <strike> Create issue report on Savannah as a centralized location for uploading files. bug {{bug|64982}} </strike>
* Call for translations for GUI strings on maintainers@octave.org, CC-ing the translators (see [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators list of translators]). [https://lists.gnu.org/archive/html/octave-maintainers/2023-11/msg00004.html message in mailing list archive]
* <strike> Call for translations for GUI strings on maintainers@octave.org, CC-ing the translators (see [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators list of translators]). [https://lists.gnu.org/archive/html/octave-maintainers/2023-11/msg00004.html message in mailing list archive] </strike>
* Collect and push all translated files.
* <strike> Collect and push all translated files. </strike>


=== <strike> ⚙ī¸ Update gnulib to latest version </strike> ===
=== <strike> ⚙ī¸ Update gnulib to latest version </strike> ===
Line 29: Line 29:


=== ⚖ī¸ GPL License activities ===
=== ⚖ī¸ GPL License activities ===
:Completion Date: 2023-12-13
:Completion Date:  
* Update copyright statements for all source controlled files.  
* <strike> Update copyright statements for all source controlled files. </strike>
* Update dates in any other locations (launch message, citation, MXE files, etc.).  
* Update dates in any other locations (launch message, <strike> CITATION </strike>, MXE files, etc.).  
* Add any new contributors to {{Path|doc/interpreter/contributors.in}} who wish to be mentioned (don't add them without permission).  
* <strike> Add any new contributors to {{Path|doc/interpreter/contributors.in}} who wish to be mentioned (don't add them without permission). </strike>


=== ✅ Style-check code base ===
=== ✅ Style-check code base ===
:Completion Date: 2023-12-6
:Completion Date: 2023-12-12
: 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.  
: <strike> 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. </strike>
* [[Octave style guide|m-file style check]]  
* <strike> [[Octave style guide|m-file style check]] </strike>
* [[C++ style guide|C++ style check]]  
* <strike> [[C++ style guide|C++ style check]] </strike>


=== 📖 Review documentation ===
=== 📖 Review documentation ===
:Completion Date: 2023-12-14
:Completion Date:  
* Grammar check documentation.  
* <strike> Grammar check documentation. </strike>
* Spell check documentation.  
* <strike> Spell check documentation. </strike>
* Verify no functions missing from manual.  
* <strike> Verify no functions missing from manual. </strike>
* Verify deprecated functions removed from "see also" links.  
* <strike> Verify deprecated functions removed from "see also" links. </strike>
* Verify all formats (Info, HTML, PDF) build correctly.  
* <strike> Verify all formats (Info, HTML, PDF) build correctly. </strike>
* Review {{Path|NEWS}} for any features which should be announced.  
* Review {{Path|NEWS}} for any features which should be announced.  
* Review {{Path|__unimplemented__.m}} for the latest changes to [[Octave Forge]] packages and new Matlab functions.  
* Review {{Path|__unimplemented__.m}} for the latest changes to [[Octave Forge]] packages and new Matlab functions.  
* Update major version number in "@subtitle Edition XXX" in {{Path|octave.texi}}.
* Update {{Path|[https://hg.octave.org/mxe-octave/file/tip/installer-files/README.html installer-files/README.html]}} in MXE Octave with version highlights.
* Update {{Path|[https://hg.octave.org/mxe-octave/file/tip/installer-files/README.html installer-files/README.html]}} in MXE Octave with version highlights.  


== 🔃 Repeat until all bugs are resolved ==
== 🔃 Repeat until all bugs are resolved ==
Line 61: Line 60:
=== ✅ <code>make check</code> ===
=== ✅ <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] and [https://github.com/gnu-octave/octave/actions GitHub CI runners]. Also check [https://github.com/gnu-octave/octave-buildbot/actions test suite runs on "freshly brewed Octave for Windows"] (Kai's buildbots on octave.space).
* Verify <code>make check</code> is passing on all [http://buildbot.octave.org:8010/#/waterfall buildbot combinations of OS and compilers] and [https://github.com/gnu-octave/octave/actions GitHub CI runners]. Also check [https://github.com/gnu-octave/octave-buildbot/actions test suite runs on "freshly brewed Octave for Windows"] (Kai's buildbots on octave.space).
* Compiling with <code>-fsanitize=undefined</code>, <code>--enable-address-sanitizer-flags</code> to check for memory leaks. Use other tools <code>cppcheck</code>, etc.  
* <strike> Compiling with <code>-fsanitize=undefined</code>, <code>--enable-address-sanitizer-flags</code> to check for memory leaks. Use other tools <code>cppcheck</code>, etc. </strike>
** Update PVS static analyzer results [[PVS static analyzer - 5.0 Release]].
** <strike> Update PVS static analyzer results [[PVS static analyzer - 5.0 Release]]. </strike> WON'T DO
** Or use any static analyzer, such as Clang's `scan-build make all`.
** <strike> Or use any static analyzer, such as Clang's `scan-build make all`. </strike> WON'T DO
* Start discussion on maintainers@octave.org about which failing tests that must be fixed and which can be declared '''WON'T FIX'''.
* Start discussion on Discourse about which failing tests that must be fixed and which can be declared '''WON'T FIX''': [https://octave.discourse.group/t/test-suite-results-of-octave-9/5077 Test suite results of Octave 9]


=== 🛠ī¸ Create new release candidate ===
=== 🛠ī¸ Create new release candidate ===
Line 93: Line 92:
:Completion Date:
:Completion Date:
* Octave mailing-lists
* Octave mailing-lists
* Octave web site (https://hg.octave.org/web-octave)
* <strike>Octave web site (https://github.com/gnu-octave/gnu-octave.github.io)</strike>
** Steps documented in [https://hg.octave.org/web-octave/rev/fe59d0118a2b this changeset].
** <strike>Steps documented in [https://github.com/gnu-octave/gnu-octave.github.io/commit/b623a44ffebfc610402caa5318bc44f5e2c8a52d this changeset].</strike>
** Upload documentation (manual HTML + PDF {{Path|octave.org/doc}} and version in {{Path|octave.org/.htaccess}}, Doxygen {{Path|octave.org/doxygen}})
** <strike>Upload documentation (manual HTML + PDF {{Path|octave.org/doc}} and version in {{Path|octave.org/.htaccess}}, Doxygen {{Path|octave.org/doxygen}})</strike>
* This wiki
* <strike>This wiki</strike>
** [[Template:Release]] = {{Release}}
** [[Template:Release]] = {{Release}}
** [[Template:Release Date]] = {{Release Date}}
** [[Template:Release Date]] = {{Release Date}}
** [[Template:Release Year]] = {{Release Year}}
** [[Template:Release Year]] = {{Release Year}}


== ☑ī¸ Post-Release ==
== <strike> ☑ī¸ Post-Release </strike> ==
:Completion Date:
:Completion Date: 2023-11-22
* Remove all deprecated functions (either tagged with <code>OCTAVE_DEPRECATED</code> in C++ or in the directory <code>scripts/deprecated</code> for m-files) scheduled for deletion on default branch. Check file <code>etc/NEWS.VERSION-2.md</code> for list of features that have been deprecated.  
* <strike> Remove all deprecated functions (either tagged with <code>OCTAVE_DEPRECATED</code> in C++ or in the directory <code>scripts/deprecated</code> for m-files) scheduled for deletion on default branch. Check file <code>etc/NEWS.VERSION-2.md</code> for list of features that have been deprecated.  
* Create new <code>etc/NEWS.VERSION+1.md</code> file by copying <code>etc/NEWS.VERSION.md</code> and then removing text so that it is a template file with headings only.  
* Create new <code>etc/NEWS.VERSION+1.md</code> file by copying <code>etc/NEWS.VERSION.md</code> and then removing text so that it is a template file with headings only. </strike>
* Note: prereleases are not typically done for 9.x releases (only for the initial 9.1).
** <strike>exceptionally, 9.2 had a pre-release b/c of Qt 5 to 6.</strike>


== ℹī¸ Versioning hints ==
== ℹī¸ Versioning hints ==

Latest revision as of 18:18, 28 May 2024

Info icon.svg
Timeline (tentative)
Please use <strike> </strike> to mark items below as done.

🚀 Kick-off âšŊ[edit]

đŸ“ĸ Call for bug reports [edit]

Completion Date: 2023-11-24
  • WON'T DO Put out a general call for reports on Octave Discourse for all outstanding unreported known bugs.
  • Create Savannah tag 9.0.90 on bug tracker.
  • Mark items that should be fixed for the release with this tag.
  • Bug overview at https://octave.space/savannah/ .

đŸ“ĸ Update GUI translation files[edit]

Completion Date: 2023-12-22
  • Call for updates that might change GUI strings.
  • String freeze date: 2023-12-03
  • Update language translation files (*.ts).
  • Create issue report on Savannah as a centralized location for uploading files. bug #64982
  • Call for translations for GUI strings on maintainers@octave.org, CC-ing the translators (see list of translators). message in mailing list archive
  • Collect and push all translated files.

⚙ī¸ Update gnulib to latest version [edit]

Completion Date: 2023-11-19
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.

⚖ī¸ GPL License activities[edit]

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[edit]

Completion Date: 2023-12-12
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.

📖 Review documentation[edit]

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.
  • Review __unimplemented__.m for the latest changes to Octave Forge packages and new Matlab functions.
  • Update installer-files/README.html in MXE Octave with version highlights.

🔃 Repeat until all bugs are resolved[edit]

Completion Date first iteration:

⚠ī¸ Current state at Savannah[edit]

✅ make check[edit]

🛠ī¸ Create new release candidate[edit]

  • 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.
  • Check Windows Installer (executable and zip formats) against false positive detection at virustotal.com
  • Add release candidate version to Savannah bug tracker.
  • Announce release candidate to Octave Discourse.

🏁 Final Release 🎉[edit]

📃 Update version information[edit]

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.
  • Update Savannah bug tracker: OPEN bugs marked as WON'T FIX should be marked as CONFIRMED (or more appropriate) for the final release.
  • Remove release candidate versions from Savannah.

đŸ“ĸ Announce final release[edit]

Completion Date:

☑ī¸ Post-Release [edit]

Completion Date: 2023-11-22
  • Remove all deprecated functions (either tagged with OCTAVE_DEPRECATED in C++ or in the directory scripts/deprecated for m-files) scheduled for deletion on default branch. Check file etc/NEWS.VERSION-2.md for list of features that have been deprecated.
  • Create new etc/NEWS.VERSION+1.md file by copying etc/NEWS.VERSION.md and then removing text so that it is a template file with headings only.
  • Note: prereleases are not typically done for 9.x releases (only for the initial 9.1).
    • exceptionally, 9.2 had a pre-release b/c of Qt 5 to 6.

ℹī¸ Versioning hints[edit]

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