10.1 Release Checklist: Difference between revisions

m
no edit summary
mNo edit summary
mNo edit summary
 
(47 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Note|'''Timeline''' (tentative)


* 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-28 🏁 Final Release πŸŽ‰ '''10.1.0''' on https://ftp.gnu.org/gnu/octave/}}


**Timeline** (tentative)
Please use <code>&lt;strike&gt; &lt;/strike&gt;</code> to mark items below as done.


* YYYY-MM-DD πŸš€ Release Kick-off ⚽ (default branch merged to stable)
== πŸš€ Kick-off ⚽ ==
* YYYY-MM-DD πŸ› οΈ 1st release candidate **10.0.90** on
  <https://alpha.gnu.org/gnu/octave/>
* YYYY-MM-DD 🏁 Final Release πŸŽ‰ **10.1.0** on
  <https://ftp.gnu.org/gnu/octave/>


Please use `<strike> </strike>` to mark items below as done.
=== βš™οΈ <strike> Update stable and default branch to new version numbers </strike> ===


## πŸš€ Kick-off ⚽ ##
Completion Date: 2025-02-07


------------------------------------------------------------
* <strike> Merge default onto stable to become the current stable release (see instructions in <code>etc/HACKING.md</code>).
* Bump version numbers in <code>configure.ac</code> on stable branch (see <code>etc/HACKING.md</code>).
* Bump version numbers in <code>configure.ac</code> on default branch (see <code>etc/HACKING.md</code>).
* Create new <code>etc/NEWS.11.md</code> file on default branch by copying <code>etc/NEWS.10.md</code> and then removing text so that it is a template file with headings only. </strike>


### βš™οΈ Update stable and default branch to new version numbers ###
=== βš™οΈ <strike> Update gnulib to latest version </strike> ===


Completion Date:
Completion Date: 2025-02-08
 
<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> ===


* Merge default onto stable to become the current stable release (see
Completion Date: 2025-03-23
  instructions in `etc/HACKING.md`).
* Bump version numbers in `configure.ac` on stable branch (see
  `etc/HACKING.md`).
* Bump version numbers in `configure.ac` on default branch (see
  `etc/HACKING.md`).
* Create new `etc/NEWS.11.md` file on default branch by copying
  `etc/NEWS.10.md` and then removing text so that it is a template file
  with headings only.


### βš™οΈ Update gnulib to latest version ###
<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.


Completion Date:
    ax_blas.m4
    ax_compare_version.m4
    ax_cxx_compile_stdcxx.m4
    ax_lapack.m4
    ax_openmp.m4
    ax_pthread.m4


**Must occur first** as it could resolve existing, or create new, bug reports.
The <code>pkg.m4</code> macro should be verified against the repository at https://github.com/pkgconf/pkgconf/blob/master/pkg.m4. </strike>
You should run `./bootstrap` in the source tree after updating to the new
gnulib version.


### πŸ“’ Call for bug reports ###
=== πŸ“’ <strike> Call for bug reports </strike> ===


Completion Date:
Completion Date: 2025-02-07


* Put out a general call for reports on [Octave Discourse](https://octave.discourse.group/) for all outstanding, but unreported, known bugs.
* WON'T DO <strike> Put out a general call for reports on [https://octave.discourse.group/ Octave Discourse] for all outstanding, but unreported, known bugs. </strike>
* Create Savannah `Release` tag `10.0.90` on bug tracker for 1st release
* <strike> Create Savannah <code>Release</code> tag <code>10.0.90</code> on bug tracker for 1st release candidate.
  candidate.
* Mark items that should be fixed for the release with this tag.
* Mark items that should be fixed for the release with this tag.
* Update Savannah `Planned Release` and `Fixed Release` tags by adding
* Update Savannah <code>Planned Release</code> and <code>Fixed Release</code> tags by adding <code>10.1.0 (current stable)</code> and <code>11.1.0 (current default)</code>. </strike>
  `10.1.0 (current stable)` and `11.1.0 (current default)`.
* 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


* Call for updates ([Octave Discourse](https://octave.discourse.group/)) that
* WON'T DO <strike> Call for updates ([https://octave.discourse.group/ Octave Discourse]) that might change GUI strings. </strike>
  might change GUI strings.
* String freeze date: 2025-02-07
* String freeze date:
* <strike> Update language translation files (<code>*.ts</code>). See instructions in <code>libgui/languages/build_ts/README.md</code>.
* Update language translation files (`*.ts`). See instructions in
* Create bug report on Savannah as a centralized location for uploading files and tracking status of translations.
  `libgui/languages/build_ts/README.md`.
* 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>
* Create bug report on Savannah as a centralized location for uploading files
* <strike> Collect translation files on Savannah bug report and push to Mercurial. </strike>
  and tracking status of translations.
* Call for translations of GUI strings on [Octave Discourse Maintainers](https://octave.discourse.group/c/maintainers/7), CC-ing the translators (see [list of translators](https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators)).
* Collect translation files on Savannah bug report and push to Mercurial.


### βš–οΈ GPL License activities ###
=== βš–οΈ <strike> GPL License activities </strike> ===


Completion Date:
Completion Date: 2025-02-09


* Update copyright statements for all source controlled files.
* <strike> Update copyright statements for all source controlled files.


    Command to update copyright notifications
:Command to update copyright notifications
:<code>hg locate | xargs sed -i 's/Copyright (C) \([0-9][0-9][0-9][0-9]\)-2023 The Octave Project Developers/Copyright (C) \1-2024 The Octave Project Developers/; s/Copyright (C) 2023 The Octave Project Developers/Copyright (C) 2023-2024 The Octave Project Developers/'</code>


    `hg locate | xargs sed -i 's/Copyright (C) \([0-9][0-9][0-9][0-9]\)-2023 The Octave Project Developers/Copyright (C) \1-2024 The Octave Project Developers/; s/Copyright (C) 2023 The Octave Project Developers/Copyright (C) 2023-2024 The Octave Project Developers/'`
:Command to check results before checking in
:<code>hg diff | grep ^[-+][^-+] | sed 's/[0-9][0-9][0-9][0-9]-/YYYY-/' | sort -u</code>


    Command to check results before checking in
* Update dates in any other locations
** MXE <code>README.html</code> file
** <code>octave.texi, liboctave.texi, refcard.tex</code> </strike>


    `hg diff | grep ^[-+][^-+] | sed 's/[0-9][0-9][0-9][0-9]-/YYYY-/' | sort -u`
* <strike> Add any new contributors to <code>doc/interpreter/contributors.in</code> who wish to be mentioned (don’t add them without permission). </strike>


* Update dates in any other locations (`CITATION`, MXE `README.html` file).
=== βœ… <strike> Style-check code base </strike> ===
* 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: 2025-02-26


Completion Date:
<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>


This will produce lots of whitespace changes, but no behavior changes. **Must
* <strike> [https://wiki.octave.org/Octave_style_guide m-file style check] </strike>
occur after patches have been added**, since whitespace changes can prevent
* <strike> [https://wiki.octave.org/C%2B%2B_style_guide C++ style check] </strike>
patches from applying.


* [m-file style check](https://wiki.octave.org/Octave_style_guide)
=== πŸ“– <strike> Review documentation </strike> ===
* [C++ style check](https://wiki.octave.org/C%2B%2B_style_guide)


### πŸ“– Review documentation ###
Completion Date: 2026-02-025
 
Completion Date:


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


## πŸ”ƒ 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 ===


Bug overview at <https://octave.space/savannah/>.
Bug overview at https://octave.space/savannah/.


### βœ… `make check` ###
=== βœ… <code>make check</code> ===


* Verify `make check` is passing on all [buildbot combinations of OS and compilers](http://buildbot.octave.org:8010/#/waterfall) and [GitHub CI runners](https://github.com/gnu-octave/octave/actions). Also check [test suite runs on "freshly brewed Octave for Windows"](https://github.com/gnu-octave/octave-buildbot/actions) (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
** 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>.
    `--enable-address-sanitizer-flags` and compiling with
** 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>
    `-g -O0 -fno-optimize-sibling-calls` in `CFLAGS`, `CXXFLAGS`, and
** WON'T DO <strike> Update static code analysis results.
    `LDFLAGS`.
*** For <code>clang</code>, do <code>scan-build make -j&lt;N&gt; all</code> and then <code>scan-view</code>.
  * Check for bad memory accesses by compiling with
*** See [https://wiki.octave.org/PVS_static_analyzer_-_5.0_Release PVS static analyzer - 5.0 Release]. </strike>
    `-g -O0 -fsanitize=undefined -fno-omit-frame-pointer
** WON'T DO <strike> Use other tools such as <code>cppcheck</code>, etc. </strike>
    -fno-optimize-sibling-calls` in `CFLAGS`, `CXXFLAGS`, and `LDFLAGS`.
* <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>
  * Update static code analysis results.
      * For `clang`, do `scan-build make -j<N> all` and then `scan-view`.
      * See [PVS static analyzer - 5.0 Release](https://wiki.octave.org/PVS_static_analyzer_-_5.0_Release).
  * Use other tools such as `cppcheck`, etc.
* Start discussion on [Octave Discourse Maintainers](https://octave.discourse.group/c/maintainers/8) about which failing tests that must be fixed and which can be declared **WON'T FIX**.


### πŸ› οΈ Create new release candidate ###
=== πŸ› οΈ Create new release candidate ===


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


------------------------------------------------------------
== 🏁 Final Release πŸŽ‰ ==


### πŸ“ƒ Update version information ###
=== πŸ“ƒ Update version information ===


Completion Date:
Completion Date:


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


### πŸ“’ Announce final release ###
=== πŸ“’ Announce final release ===


Completion Date:
Completion Date:


* Octave mailing-lists (yes, still) <help@octave.org> and <info-gnu@gnu.org>.
* Octave mailing-lists (yes, still) [mailto:help@octave.org help@octave.org] and [mailto:info-gnu@gnu.org info-gnu@gnu.org].
* Octave web site (<https://hg.octave.org/web-octave>)
* Octave web site (https://hg.octave.org/web-octave)
* Steps documented in this
* Steps documented in this [https://hg.octave.org/web-octave/rev/fe59d0118a2b changeset].
  [changeset](https://hg.octave.org/web-octave/rev/fe59d0118a2b).
* Upload documentation (manual HTML + PDF <code>octave.org/doc</code> and version in <code>octave.org/.htaccess</code>, Doxygen <code>octave.org/doxygen</code>)
* Upload documentation (manual HTML + PDF `octave.org/doc` and version in
  `octave.org/.htaccess`, Doxygen `octave.org/doxygen`)
* This wiki
* This wiki
* Template:Release = 7.3.0
* [[Template:Release]] = {{Template:Release}}
* Template:Release Date = November 2, 2022
* [[Template:Release Date]] = {{Template:Release Date}}
* Template:Release Year = 2022
* [[Template:Release Year]] = {{Template:Release Year}}


### β˜‘οΈ Post-Release ###
=== <strike> β˜‘οΈ Post-Release </strike> ===


Completion Date:
Completion Date: 2025-02-08
 
* <strike> Remove all deprecated functions scheduled for deletion on default branch. These functions are tagged with <code>OCTAVE_DEPRECATED</code> in C++ or are m-files located in the directory <code>scripts/deprecated</code>. Check file <code>etc/NEWS.9.md</code> for list of features that have been deprecated. </strike>


* Remove all deprecated functions scheduled for deletion on default
[[Category:Releases]]
  branch.  These functions are tagged with `OCTAVE_DEPRECATED` in C++ or are
  m-files located in the directory `scripts/deprecated`.  Check file
  `etc/NEWS.8.md` for list of features that have been deprecated.
1,174

edits