10.1 Release Checklist: Difference between revisions

m
no edit summary
m (Mark item done)
mNo edit summary
 
(16 intermediate revisions by the same user not shown)
Line 3: Line 3:
* 2025-02-07 🚀 Release Kick-off ⚽ (default branch merged to stable)
* 2025-02-07 🚀 Release Kick-off ⚽ (default branch merged to stable)
* 2025-03-15 🛠️ 1st release candidate '''10.0.90''' on https://alpha.gnu.org/gnu/octave/
* 2025-03-15 🛠️ 1st release candidate '''10.0.90''' on https://alpha.gnu.org/gnu/octave/
* 2025-04-01 🏁 Final Release 🎉 '''10.1.0''' on https://ftp.gnu.org/gnu/octave/}}
* 2025-03-28 🏁 Final Release 🎉 '''10.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 23: Line 23:


<strike> '''Must occur first''' as it could resolve existing, or create new, bug reports. The simple update command is <code>gnulib-tool --add-import</code> followed by running <code>./bootstrap</code> in the source tree. </strike>
<strike> '''Must occur first''' as it could resolve existing, or create new, bug reports. The simple update command is <code>gnulib-tool --add-import</code> followed by running <code>./bootstrap</code> in the source tree. </strike>
=== ⚙️ <strike> Update Autoconf macros to latest version </strike> ===
Completion Date: 2025-03-23
<strike> The following Autoconf macros are under version control in the <code>m4</code> directory.  The contents should be verified against the repository at https://github.com/autoconf-archive/autoconf-archive/tree/master/m4.
    ax_blas.m4
    ax_compare_version.m4
    ax_cxx_compile_stdcxx.m4
    ax_lapack.m4
    ax_openmp.m4
    ax_pthread.m4
The <code>pkg.m4</code> macro should be verified against the repository at https://github.com/pkgconf/pkgconf/blob/master/pkg.m4. </strike>


=== 📢 <strike> Call for bug reports </strike> ===
=== 📢 <strike> Call for bug reports </strike> ===
Line 34: Line 49:
* Review bug overview at https://octave.space/savannah/.
* Review bug overview at https://octave.space/savannah/.


=== 📢 Update GUI translation files ===
=== 📢 <strike> Update GUI translation files </strike> ===


Completion Date:
Completion Date: 2025-02-22


* WON'T DO <strike> Call for updates ([https://octave.discourse.group/ Octave Discourse]) that might change GUI strings. </strike>
* WON'T DO <strike> Call for updates ([https://octave.discourse.group/ Octave Discourse]) that might change GUI strings. </strike>
Line 43: Line 58:
* Create bug report on Savannah as a centralized location for uploading files and tracking status of translations.
* Create bug report on Savannah as a centralized location for uploading files and tracking status of translations.
* Call for translations of GUI strings on [https://octave.discourse.group/c/maintainers/7 Octave Discourse Maintainers], CC-ing the translators (see [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators list of translators]). </strike>
* Call for translations of GUI strings on [https://octave.discourse.group/c/maintainers/7 Octave Discourse Maintainers], CC-ing the translators (see [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators list of translators]). </strike>
* Collect translation files on Savannah bug report and push to Mercurial.
* <strike> Collect translation files on Savannah bug report and push to Mercurial. </strike>


=== ⚖️ GPL License activities ===
=== ⚖️ <strike> GPL License activities </strike> ===


Completion Date:
Completion Date: 2025-02-09


* <strike> Update copyright statements for all source controlled files.
* <strike> Update copyright statements for all source controlled files.
Line 61: Line 76:
** <code>octave.texi, liboctave.texi, refcard.tex</code> </strike>
** <code>octave.texi, liboctave.texi, refcard.tex</code> </strike>


* Add any new contributors to <code>doc/interpreter/contributors.in</code> who wish to be mentioned (don’t add them without permission).
* <strike> Add any new contributors to <code>doc/interpreter/contributors.in</code> who wish to be mentioned (don’t add them without permission). </strike>


=== ✅ Style-check code base ===
=== ✅ <strike> Style-check code base </strike> ===


Completion Date:
Completion Date: 2025-02-26


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>


* <strike> [https://wiki.octave.org/Octave_style_guide m-file style check] </strike>
* <strike> [https://wiki.octave.org/Octave_style_guide m-file style check] </strike>
* [https://wiki.octave.org/C%2B%2B_style_guide C++ style check]
* <strike> [https://wiki.octave.org/C%2B%2B_style_guide C++ style check] </strike>


=== 📖 Review documentation ===
=== 📖 <strike> Review documentation </strike> ===


Completion Date:
Completion Date: 2026-02-025


* <strike> Grammar check documentation (See <code>doc/interpreter/doccheck/README</code>). </strike>
* <strike> Grammar check documentation (See <code>doc/interpreter/doccheck/README</code>). </strike>
* <strike> Spell check documentation (<code>make spellcheck</code>). </strike>
* <strike> Spell check documentation (<code>make spellcheck</code>). </strike>
* Verify no functions missing from manual (<code>make doc/interpreter/undocumented_list</code>).
* <strike> Verify no functions missing from manual (<code>make doc/interpreter/undocumented_list</code>). </strike>
* <strike> Verify deprecated functions removed from manual (<code>*.txi</code>) and from “see also” links. </strike>
* <strike> Verify deprecated functions removed from manual (<code>*.txi</code>) and from “see also” links. </strike>
* <strike> Verify all formats (Info, HTML, PDF) build correctly. </strike>
* <strike> Verify all formats (Info, HTML, PDF) build correctly. </strike>
* Review <code>etc/NEWS.10.md</code> for any features which should be announced.
* <strike> Review <code>etc/NEWS.10.md</code> for any features which should be announced. </strike>
* WON'T DO <strike> Review <code>__unimplemented__.m</code> for the latest changes to [https://wiki.octave.org/Octave_Forge Octave Forge] packages and new Matlab functions. </strike>
* WON'T DO <strike> Review <code>__unimplemented__.m</code> for the latest changes to [https://wiki.octave.org/Octave_Forge Octave Forge] packages and new Matlab functions. </strike>
* Update <code>installer-files/README.html</code> in MXE Octave with version highlights.
* <strike> Update <code>installer-files/README.html</code> in MXE Octave with version highlights. </strike>


== 🔃 Repeat until all bugs are resolved ==
== 🔃 Repeat until all bugs are resolved ==




Completion Date of first iteration:
Completion Date of first iteration: 2025-03-06


=== ⚠️ Current state at Savannah ===
=== ⚠️ Current state at Savannah ===
Line 96: Line 111:
=== ✅ <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).
* <strike> 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). </strike>
* Use software tools to check quality of Octave code.
* <strike> Use software tools to check quality of Octave code.
** Check for memory leaks by configuring with <code>--enable-address-sanitizer-flags --disable-visibility-flags --disable-docs --disable-java</code> and compiling with <code>-g -O0</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>.
** Check for memory leaks by configuring with <code>--enable-address-sanitizer-flags --disable-visibility-flags --disable-docs --disable-java</code> and compiling with <code>-g -O0</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>.
** Check for bad memory accesses by configuring with <code>--disable-visibility-flags --disable-docs --disable-java</code> and compiling with <code>-g -O0 -fsanitize=undefined -fno-omit-frame-pointer</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>, and linking with <code>-fsanitize=undefined -fno-omit-frame-pointer</code> in <code>LDFLAGS</code>.
** Check for bad memory accesses by configuring with <code>--disable-visibility-flags --disable-docs --disable-java</code> and compiling with <code>-g -O0 -fsanitize=undefined -fno-omit-frame-pointer</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>, and linking with <code>-fsanitize=undefined -fno-omit-frame-pointer</code> in <code>LDFLAGS</code>. </strike>
** Update static code analysis results.
** WON'T DO <strike> Update static code analysis results.
*** For <code>clang</code>, do <code>scan-build make -j&lt;N&gt; all</code> and then <code>scan-view</code>.
*** For <code>clang</code>, do <code>scan-build make -j&lt;N&gt; all</code> and then <code>scan-view</code>.
*** See [https://wiki.octave.org/PVS_static_analyzer_-_5.0_Release PVS static analyzer - 5.0 Release].
*** See [https://wiki.octave.org/PVS_static_analyzer_-_5.0_Release PVS static analyzer - 5.0 Release]. </strike>
** Use other tools such as <code>cppcheck</code>, etc.
** WON'T DO <strike> Use other tools such as <code>cppcheck</code>, etc. </strike>
* Start discussion on [https://octave.discourse.group/c/maintainers/8 Octave Discourse Maintainers] about which failing tests that must be fixed and which can be declared '''WON’T FIX'''.
* <strike> Start discussion on [https://octave.discourse.group/c/maintainers/8 Octave Discourse Maintainers] about which failing tests that must be fixed and which can be declared '''WON’T FIX'''. </strike>


=== 🛠️ Create new release candidate ===
=== 🛠️ Create new release candidate ===


* Ensure correct version information (see “Release Numbering” in <code>/etc/HACKING.md</code>).
* <strike> Ensure correct version information (see “Release Numbering” in <code>/etc/HACKING.md</code>).
* Create <code>hg tag</code> in repository with release candidate version number (<code>rc-MAJOR-MINOR-PATCH</code>).
* Create <code>hg tag</code> in repository with release candidate version number (<code>rc-MAJOR-MINOR-PATCH</code>).
* Verify <code>make dist</code> works.
* Verify <code>make dist</code> works.
* Verify <code>make distcheck</code> passes.
* Verify <code>make distcheck</code> passes. </strike>
* Create [https://wiki.octave.org/Windows_Installer Windows Installer].
* <strike> Create [https://wiki.octave.org/Windows_Installer Windows Installer].
* Upload release candidates to https://alpha.gnu.org/gnu/octave/.
* Upload release candidates to https://alpha.gnu.org/gnu/octave/.
* Check [https://wiki.octave.org/Windows_Installer Windows Installer] (executable and zip formats) against false positive detection at [https://virustotal.com/ virustotal.com].
* Check [https://wiki.octave.org/Windows_Installer Windows Installer] (executable and zip formats) against false positive detection at [https://virustotal.com/ virustotal.com].
* Add release candidate version to Savannah bug tracker.
* Add release candidate version to Savannah bug tracker.
* Announce release candidate to [https://octave.discourse.group/ Octave Discourse].
* Announce release candidate to [https://octave.discourse.group/ Octave Discourse]. </strike>


== 🏁 Final Release 🎉 ==
== 🏁 Final Release 🎉 ==
Line 124: Line 139:
Completion Date:
Completion Date:


* Ensure correct version information in <code>configure.ac</code> (see “Release Numbering” in <code>/etc/HACKING.md</code>)
* <strike> Ensure correct version information in <code>configure.ac</code> (see “Release Numbering” in <code>/etc/HACKING.md</code>)
** Set <code>OCTAVE_RELEASE_DATE</code> to the current date.
** Set <code>OCTAVE_RELEASE_DATE</code> to the current date.
** Set the year in <code>OCTAVE_COPYRIGHT</code> to the current year.
** Set the year in <code>OCTAVE_COPYRIGHT</code> to the current year.
Line 130: Line 145:
* Update <code>etc/NEWS.10.md</code> (final release date in Summary header).
* Update <code>etc/NEWS.10.md</code> (final release date in Summary header).
* Update <code>CITATION</code> (version, year, URL) if not already done as part of &quot;GPL License activities.
* Update <code>CITATION</code> (version, year, URL) if not already done as part of &quot;GPL License activities.
* Update <code>etc/icons/org.octave.Octave.appdata.xml</code> (version number and release date).
* Update <code>etc/icons/org.octave.Octave.appdata.xml</code> (version number and release date). </strike>
* Upload all tarballs to https://ftp.gnu.org/gnu/octave/.
* Upload all tarballs to https://ftp.gnu.org/gnu/octave/.
* Update web site files: <code>NEWS-10.html</code>, <code>index.in</code>, <code>news.in</code>, and <code>download.in</code>.
* Update web site files: <code>NEWS-10.html</code>, <code>index.in</code>, <code>news.in</code>, and <code>download.in</code>.
* Update https://wiki.octave.org/Release_History page.
* <strike> Update https://wiki.octave.org/Release_History page.
* Update Savannah bug tracker <code>Release</code> field to have new release number.
* Update Savannah bug tracker <code>Release</code> field to have new release number.
* Update Savannah bug tracker: '''OPEN''' bugs marked as '''WON’T FIX''' should be marked as '''CONFIRMED''' (or more appropriate) for the final release.
* Update Savannah bug tracker: '''OPEN''' bugs marked as '''WON’T FIX''' should be marked as '''CONFIRMED''' (or more appropriate) for the final release.
* Hide release candidate versions for <code>Release</code> field on Savannah.
* Hide release candidate versions for <code>Release</code> field on Savannah. </strike>


=== 📢 Announce final release ===
=== 📢 Announce final release ===
1,174

edits