10.1 Release Checklist: Difference between revisions

From Octave
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 10: Line 10:
------------------------------------------------------------
------------------------------------------------------------


### ⚙️ Update stable and default branch to new version numbers ###
=== ⚙️ Update stable and default branch to new version numbers ===


Completion Date:
Completion Date:
Line 20: Line 20:
* Bump version numbers in `configure.ac` on default branch (see
* Bump version numbers in `configure.ac` on default branch (see
   `etc/HACKING.md`).
   `etc/HACKING.md`).
* Create new `etc/NEWS.11.md` file on default branch by copying
* Create new `etc/NEWS.VERSION+1.md` file on default branch by copying
   `etc/NEWS.10.md` and then removing text so that it is a template file
   `etc/NEWS.VERSION.md` and then removing text so that it is a template file
   with headings only.
   with headings only.


### ⚙️ Update gnulib to latest version ###
=== ⚙️ Update gnulib to latest version ===


Completion Date:
Completion Date:
Line 32: Line 32:
gnulib version.
gnulib version.


### 📢 Call for bug reports ###
=== 📢 Call for bug reports ===


Completion Date:
Completion Date:


* Put out a general call for reports on [Octave Discourse](https://octave.discourse.group/) for all outstanding, but unreported, known bugs.
* Put out a general call for reports on [Octave Discourse](https://octave.discourse.group/) for all outstanding, but unreported, known bugs.
* Create Savannah `Release` tag `10.0.90` on bug tracker for 1st release
* Create Savannah `Release` tag `VERSION.0.90` 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 `Planned Release` and `Fixed Release` tags by adding
   `10.1.0 (current stable)` and `11.1.0 (current default)`.
   `VERSION.1.0 (current stable)` and `VERSION+1.1.0 (current default)`.
* Review bug overview at <https://octave.space/savannah/>.
* Review bug overview at <https://octave.space/savannah/>.


### 📢 Update GUI translation files ###
=== 📢 Update GUI translation files ===


Completion Date:
Completion Date:
Line 58: Line 58:
* Collect translation files on Savannah bug report and push to Mercurial.
* Collect translation files on Savannah bug report and push to Mercurial.


### ⚖️ GPL License activities ###
=== ⚖️ GPL License activities ===


Completion Date:
Completion Date:
Line 76: Line 76:
   mentioned (don't add them without permission).
   mentioned (don't add them without permission).


### ✅ Style-check code base ###
=== ✅ Style-check code base ===


Completion Date:
Completion Date:
Line 87: Line 87:
* [C++ style check](https://wiki.octave.org/C%2B%2B_style_guide)
* [C++ style check](https://wiki.octave.org/C%2B%2B_style_guide)


### 📖 Review documentation ###
=== 📖 Review documentation ===


Completion Date:
Completion Date:
Line 98: Line 98:
   links.
   links.
* Verify all formats (Info, HTML, PDF) build correctly.
* Verify all formats (Info, HTML, PDF) build correctly.
* Review `etc/NEWS.10.md` for any features which should be announced.
* Review `etc/NEWS.VERSION.md` for any features which should be announced.
* Review `__unimplemented__.m` for the latest changes to
* Review `__unimplemented__.m` for the latest changes to
   [Octave Forge](https://wiki.octave.org/Octave_Forge) packages and new Matlab
   [Octave Forge](https://wiki.octave.org/Octave_Forge) packages and new Matlab
Line 104: Line 104:
* Update `installer-files/README.html` in MXE Octave with version highlights.
* Update `installer-files/README.html` in MXE Octave with version highlights.


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


------------------------------------------------------------
------------------------------------------------------------
Line 110: Line 110:
Completion Date of first iteration:
Completion Date of first iteration:


### ⚠️ Current state at Savannah ###
=== ⚠️ Current state at Savannah ===


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


### ✅ `make check` ###
=== ✅ `make check` ===


* 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).
* 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).
* Use software tools to check quality of Octave code.
* Use software tools to check quality of Octave code.
   * Check for memory leaks by configuring with
   * Check for memory leaks by configuring with
Line 131: Line 131:
* 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**.
* 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
* Ensure correct version information (see "Release Numbering" in
Line 148: Line 148:
   [Octave Discourse](https://octave.discourse.group/).
   [Octave Discourse](https://octave.discourse.group/).


## 🏁 Final Release 🎉 ##
== 🏁 Final Release 🎉 ==


------------------------------------------------------------
------------------------------------------------------------


### 📃 Update version information ###
=== 📃 Update version information ===


Completion Date:
Completion Date:
Line 161: Line 161:
   * Set the year in `OCTAVE_COPYRIGHT` to the current year.
   * Set the year in `OCTAVE_COPYRIGHT` to the current year.
* Create `hg tag` in repository with release candidate version number
* Create `hg tag` in repository with release candidate version number
   (`release-10-1-0`).
   (`release-VERSION-1-0`).
* Update `etc/NEWS.10.md` (final release date in Summary header).
* Update `etc/NEWS.VERSION.md` (final release date in Summary header).
* Update `CITATION` (version, year, URL) if not already done as part of "GPL
* Update `CITATION` (version, year, URL) if not already done as part of "GPL
   License activities.
   License activities.
Line 168: Line 168:
   date).
   date).
* Upload all tarballs to <https://ftp.gnu.org/gnu/octave/>.
* Upload all tarballs to <https://ftp.gnu.org/gnu/octave/>.
* Update web site files: `NEWS-10.html`, `index.in`, `news.in`, and
* Update web site files: `NEWS-VERSION.html`, `index.in`, `news.in`, and
   `download.in`.
   `download.in`.
* Update <https://wiki.octave.org/Release_History> page.
* Update <https://wiki.octave.org/Release_History> page.
Line 176: Line 176:
* Hide release candidate versions for `Release` field on Savannah.
* Hide release candidate versions for `Release` field on Savannah.


### 📢 Announce final release ###
=== 📢 Announce final release ===


Completion Date:
Completion Date:
Line 191: Line 191:
* Template:Release Year = 2022
* Template:Release Year = 2022


### ☑️ Post-Release ###
=== ☑️ Post-Release ===


Completion Date:
Completion Date:
Line 198: Line 198:
   branch.  These functions are tagged with `OCTAVE_DEPRECATED` in C++ or are
   branch.  These functions are tagged with `OCTAVE_DEPRECATED` in C++ or are
   m-files located in the directory `scripts/deprecated`.  Check file
   m-files located in the directory `scripts/deprecated`.  Check file
   `etc/NEWS.8.md` for list of features that have been deprecated.
   `etc/NEWS.VERSION-2.md` for list of features that have been deprecated.

Revision as of 19:14, 31 January 2025

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

🚀 Kick-off ⚽


⚙️ Update stable and default branch to new version numbers

Completion Date:

  • Merge default onto stable to become the current stable release (see
 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.VERSION+1.md` file on default branch by copying
 `etc/NEWS.VERSION.md` and then removing text so that it is a template file
 with headings only.

⚙️ 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 [Octave Discourse](https://octave.discourse.group/) for all outstanding, but unreported, known bugs.
  • Create Savannah `Release` tag `VERSION.0.90` on bug tracker for 1st release
 candidate.
  • Mark items that should be fixed for the release with this tag.
  • Update Savannah `Planned Release` and `Fixed Release` tags by adding
 `VERSION.1.0 (current stable)` and `VERSION+1.1.0 (current default)`.

📢 Update GUI translation files

Completion Date:

 might change GUI strings.
  • String freeze date:
  • Update language translation files (`*.ts`). See instructions in
 `libgui/languages/build_ts/README.md`.
  • Create bug report on Savannah as a centralized location for uploading files
 and tracking status of translations.

⚖️ GPL License activities

Completion Date:

  • Update copyright statements for all source controlled files.
   Command to update copyright notifications
   `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
   `hg diff | grep ^[-+][^-+] | sed 's/[0-9][0-9][0-9][0-9]-/YYYY-/' | sort -u`
  • Update dates in any other locations (`CITATION`, MXE `README.html` file).
  • 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.

📖 Review documentation

Completion Date:

  • Grammar check documentation (See `doc/interpreter/doccheck/README`).
  • Spell check documentation (`make spellcheck`).
  • Verify no functions missing from manual
 (`make doc/interpreter/undocumented_list`).
  • Verify deprecated functions removed from manual (`*.txi`) and from "see also"
 links.
  • Verify all formats (Info, HTML, PDF) build correctly.
  • Review `etc/NEWS.VERSION.md` for any features which should be announced.
  • 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


Completion Date of first iteration:

⚠️ Current state at Savannah

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

✅ `make check`

 * Check for memory leaks by configuring with
   `--enable-address-sanitizer-flags` and compiling with
   `-g -O0 -fno-optimize-sibling-calls` in `CFLAGS`, `CXXFLAGS`, and
   `LDFLAGS`.
 * Check for bad memory accesses by compiling with
   `-g -O0 -fsanitize=undefined -fno-omit-frame-pointer
   -fno-optimize-sibling-calls` in `CFLAGS`, `CXXFLAGS`, and `LDFLAGS`.
 * 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.

🛠️ Create new release candidate

  • Ensure correct version information (see "Release Numbering" in
 `/etc/HACKING.md`).
  • Create `hg tag` in repository with release candidate version number
 (`rc-MAJOR-MINOR-PATCH`).
 (executable and zip formats) against false positive detection at
 [virustotal.com](https://virustotal.com/).
  • Add release candidate version to Savannah bug tracker.
  • Announce release candidate to
 [Octave Discourse](https://octave.discourse.group/).

🏁 Final Release 🎉


📃 Update version information

Completion Date:

  • Ensure correct version information in `configure.ac` (see "Release Numbering"
 in `/etc/HACKING.md`)
 * Set `OCTAVE_RELEASE_DATE` to the current date.
 * Set the year in `OCTAVE_COPYRIGHT` to the current year.
  • Create `hg tag` in repository with release candidate version number
 (`release-VERSION-1-0`).
  • Update `etc/NEWS.VERSION.md` (final release date in Summary header).
  • Update `CITATION` (version, year, URL) if not already done as part of "GPL
 License activities.
  • Update `etc/icons/org.octave.Octave.appdata.xml` (version number and release
 date).
 `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

Completion Date:

 [changeset](https://hg.octave.org/web-octave/rev/fe59d0118a2b).
  • Upload documentation (manual HTML + PDF `octave.org/doc` and version in
 `octave.org/.htaccess`, Doxygen `octave.org/doxygen`)
  • This wiki
  • Template:Release = 7.3.0
  • Template:Release Date = November 2, 2022
  • Template:Release Year = 2022

☑️ Post-Release

Completion Date:

  • Remove all deprecated functions scheduled for deletion on default
 branch.  These functions are tagged with `OCTAVE_DEPRECATED` in C++ or are
 m-files located in the directory `scripts/deprecated`.  Check file
 `etc/NEWS.VERSION-2.md` for list of features that have been deprecated.