view etc/RELEASE_CHECKLIST.md @ 31591:d3ddf7be0235 stable

maint: Update RELEASE_CHECKLIST.md. * RELEASE_CHECKLIST.md: Remove task to update EDITION number in octave.texi (now automated). Add instructions for running clang static analyzer.
author Rik <rik@octave.org>
date Tue, 29 Nov 2022 13:15:07 -0800
parents 59ca7d2805f2
children bc24b226891a
line wrap: on
line source

# `VERSION`.1 Release Checklist #

**Timeline** (tentative)

* YYYY-MM-DD 🚀 Release Kick-off ⚽ (default branch merged to stable)
* YYYY-MM-DD 🛠️ 1st release candidate **`VERSION`.0.90** on
  <https://alpha.gnu.org/gnu/octave/>
* YYYY-MM-DD 🏁 Final Release 🎉 **`VERSION`.1.0** on
  <https://ftp.gnu.org/gnu/octave/>

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`).

### ⚙️ 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 unreported known bugs.
* Create Savannah tag `VERSION.0.90` on bug tracker for 1st release candidate.
* Mark items that should be fixed for the release with this tag.
* Bug overview at <https://octave.space/savannah/>.

### 📢 Update GUI translation files ###

Completion Date:

* Call for updates ([Octave Discourse](https://octave.discourse.group/)) that
  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.
* 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 ###

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

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](https://wiki.octave.org/Octave_style_guide)
* [C++ style check](https://wiki.octave.org/C%2B%2B_style_guide)

### 📖 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` ###

* 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.
  * Check for memory leaks by configuring with
    `--enable-address-sanitizer-flags` and compiling with
    `-fsanitize=undefined`, `-fno-omit-frame-pointer` 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.
* 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 ###

* 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`).
* Verify `make dist` works.
* Verify `make distcheck` passes.
* Create [Windows Installer](https://wiki.octave.org/Windows_Installer).
* 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.
* 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).
* Update `etc/icons/org.octave.Octave.appdata.xml` (version number and release
  date).
* Upload all tarballs to <https://ftp.gnu.org/gnu/octave/>.
* Update web site files: `NEWS-VERSION.html`, `index.in`, `news.in`, and
  `download.in`.
* Update <https://wiki.octave.org/Release_History> page.
* Update Savannah bug tracker version info 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 in Savannah.

### 📢 Announce final release ###

Completion Date:

* Octave mailing-lists (yes, still) <help@octave.org> and <info-gnu@gnu.org>.
* Octave web site (<https://hg.octave.org/web-octave>)
* Steps documented in this
  [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 (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.