10.1 Release Checklist

From Octave
Revision as of 18:58, 31 January 2025 by Rik (talk | contribs) (Create new page)
(diff) ← Older revision | Latest revision (diff) | Newer revision β†’ (diff)
Jump to navigation Jump to search
  1. `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 ` ` to mark items below as done.

    1. πŸš€ Kick-off ⚽ ##

      1. βš™οΈ 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.
      1. βš™οΈ 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.

      1. πŸ“’ 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)`.
      1. πŸ“’ 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.
      1. βš–οΈ 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).
      1. βœ… 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.

      1. πŸ“– 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.
    1. πŸ”ƒ Repeat until all bugs are resolved ##

Completion Date of first iteration:

      1. ⚠️ Current state at Savannah ###

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

      1. βœ… `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.
      1. πŸ› οΈ 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/).
    1. 🏁 Final Release πŸŽ‰ ##

      1. πŸ“ƒ 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.
      1. πŸ“’ 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
      1. β˜‘οΈ 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.