9.1 Release Checklist: Difference between revisions
Jump to navigation
Jump to search
✅
ArunGiridhar (talk | contribs) |
(add notes about pre-releases for 9.x) |
||
(29 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Note|'''Timeline''' (tentative) | {{Note|'''Timeline''' (tentative) | ||
* 2023-11- | * 2023-11-22 🚀 Release Kick-off ⚽ (default branch merged to stable) | ||
* | * 2024-02-07 🛠️ 1st release candidate '''9.0.90''' on https://alpha.gnu.org/gnu/octave/ | ||
* | * 2024-03-14 🏁 Final Release 🎉 '''9.1.0''' on https://ftp.gnu.org/gnu/octave/}} | ||
:Please use <code><strike> </strike></code> to mark items below as done. | :Please use <code><strike> </strike></code> to mark items below as done. | ||
Line 8: | Line 8: | ||
== 🚀 Kick-off ⚽ == | == 🚀 Kick-off ⚽ == | ||
=== 📢 Call for bug reports === | === <strike> 📢 Call for bug reports </strike> === | ||
:Completion Date: | :Completion Date: 2023-11-24 | ||
* Put out a general call for reports on [https://octave.discourse.group/ Octave Discourse] for all outstanding unreported known bugs. | * WON'T DO <strike> Put out a general call for reports on [https://octave.discourse.group/ Octave Discourse] for all outstanding unreported known bugs. </strike> | ||
* Create Savannah tag '''9.0.90''' on bug tracker. | * <strike> Create Savannah tag '''9.0.90''' on bug tracker. </strike> | ||
* Mark items that should be fixed for the release with this tag. | * Mark items that should be fixed for the release with this tag. | ||
* Bug overview at https://octave.space/savannah/ . | * Bug overview at https://octave.space/savannah/ . | ||
=== 📢 Update GUI translation files === | === 📢 Update GUI translation files === | ||
:Completion Date: 2023- | :Completion Date: 2023-12-22 | ||
* Call for updates that might change GUI strings. | * <strike> Call for updates that might change GUI strings. </strike> | ||
* String freeze date: 2023- | * String freeze date: 2023-12-03 | ||
* Update language translation files (*.ts). | * <strike> Update language translation files (*.ts). </strike> | ||
* Create issue report on Savannah as a centralized location for uploading files. bug {{bug| | * <strike> Create issue report on Savannah as a centralized location for uploading files. bug {{bug|64982}} </strike> | ||
* Call for translations for GUI strings on maintainers@octave.org, CC-ing the translators (see [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators list of translators]). [https://lists.gnu.org/archive/html/octave-maintainers/2023-11/msg00004.html message in mailing list archive] | * <strike> Call for translations for GUI strings on maintainers@octave.org, CC-ing the translators (see [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators list of translators]). [https://lists.gnu.org/archive/html/octave-maintainers/2023-11/msg00004.html message in mailing list archive] </strike> | ||
* Collect and push all translated files. | * <strike> Collect and push all translated files. </strike> | ||
=== ⚙️ Update gnulib to latest version === | === <strike> ⚙️ Update gnulib to latest version </strike> === | ||
:Completion Date: 2023-11- | :Completion Date: 2023-11-19 | ||
: Must occur first as it could resolve existing, or create new, bug reports. You should run <code>./bootstrap</code> in the source tree after updating to the new gnulib version. | : <strike> Must occur first as it could resolve existing, or create new, bug reports. You should run <code>./bootstrap</code> in the source tree after updating to the new gnulib version. </strike> | ||
=== ⚖️ GPL License activities === | === ⚖️ GPL License activities === | ||
:Completion Date: | :Completion Date: | ||
* Update copyright statements for all source controlled files. | * <strike> Update copyright statements for all source controlled files. </strike> | ||
* Update dates in any other locations (launch message, | * Update dates in any other locations (launch message, <strike> CITATION </strike>, MXE files, etc.). | ||
* Add any new contributors to {{Path|doc/interpreter/contributors.in}} who wish to be mentioned (don't add them without permission). | * <strike> Add any new contributors to {{Path|doc/interpreter/contributors.in}} who wish to be mentioned (don't add them without permission). </strike> | ||
=== ✅ Style-check code base === | === ✅ Style-check code base === | ||
:Completion Date: 2023-12- | :Completion Date: 2023-12-12 | ||
: 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> | ||
* [[Octave style guide|m-file style check]] | * <strike> [[Octave style guide|m-file style check]] </strike> | ||
* [[C++ style guide|C++ style check]] | * <strike> [[C++ style guide|C++ style check]] </strike> | ||
=== 📖 Review documentation === | === 📖 Review documentation === | ||
:Completion Date: | :Completion Date: | ||
* Grammar check documentation. | * <strike> Grammar check documentation. </strike> | ||
* Spell check documentation. | * <strike> Spell check documentation. </strike> | ||
* Verify no functions missing from manual. | * <strike> Verify no functions missing from manual. </strike> | ||
* Verify deprecated functions removed from "see also" links. | * <strike> Verify deprecated functions removed from "see also" links. </strike> | ||
* Verify all formats (Info, HTML, PDF) build correctly. | * <strike> Verify all formats (Info, HTML, PDF) build correctly. </strike> | ||
* Review {{Path|NEWS}} for any features which should be announced. | * Review {{Path|NEWS}} for any features which should be announced. | ||
* Review {{Path|__unimplemented__.m}} for the latest changes to [[Octave Forge]] packages and new Matlab functions. | * Review {{Path|__unimplemented__.m}} for the latest changes to [[Octave Forge]] packages and new Matlab functions. | ||
* Update {{Path|[https://hg.octave.org/mxe-octave/file/tip/installer-files/README.html installer-files/README.html]}} in MXE Octave with version highlights. | |||
* Update {{Path|[https://hg.octave.org/mxe-octave/file/tip/installer-files/README.html installer-files/README.html]}} in MXE Octave with version highlights. | |||
== 🔃 Repeat until all bugs are resolved == | == 🔃 Repeat until all bugs are resolved == | ||
Line 61: | Line 60: | ||
=== ✅ <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). | * 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). | ||
* Compiling with <code>-fsanitize=undefined</code>, <code>--enable-address-sanitizer-flags</code> to check for memory leaks. Use other tools <code>cppcheck</code>, etc. | * <strike> Compiling with <code>-fsanitize=undefined</code>, <code>--enable-address-sanitizer-flags</code> to check for memory leaks. Use other tools <code>cppcheck</code>, etc. </strike> | ||
** Update PVS static analyzer results [[PVS static analyzer - 5.0 Release]]. | ** <strike> Update PVS static analyzer results [[PVS static analyzer - 5.0 Release]]. </strike> WON'T DO | ||
** Or use any static analyzer, such as Clang's `scan-build make all`. | ** <strike> Or use any static analyzer, such as Clang's `scan-build make all`. </strike> WON'T DO | ||
* Start discussion on | * Start discussion on Discourse about which failing tests that must be fixed and which can be declared '''WON'T FIX''': [https://octave.discourse.group/t/test-suite-results-of-octave-9/5077 Test suite results of Octave 9] | ||
=== 🛠️ Create new release candidate === | === 🛠️ Create new release candidate === | ||
Line 93: | Line 92: | ||
:Completion Date: | :Completion Date: | ||
* Octave mailing-lists | * Octave mailing-lists | ||
* Octave web site (https:// | * <strike>Octave web site (https://github.com/gnu-octave/gnu-octave.github.io)</strike> | ||
** Steps documented in [https:// | ** <strike>Steps documented in [https://github.com/gnu-octave/gnu-octave.github.io/commit/b623a44ffebfc610402caa5318bc44f5e2c8a52d this changeset].</strike> | ||
** Upload documentation (manual HTML + PDF {{Path|octave.org/doc}} and version in {{Path|octave.org/.htaccess}}, Doxygen {{Path|octave.org/doxygen}}) | ** <strike>Upload documentation (manual HTML + PDF {{Path|octave.org/doc}} and version in {{Path|octave.org/.htaccess}}, Doxygen {{Path|octave.org/doxygen}})</strike> | ||
* This wiki | * <strike>This wiki</strike> | ||
** [[Template:Release]] = {{Release}} | ** [[Template:Release]] = {{Release}} | ||
** [[Template:Release Date]] = {{Release Date}} | ** [[Template:Release Date]] = {{Release Date}} | ||
** [[Template:Release Year]] = {{Release Year}} | ** [[Template:Release Year]] = {{Release Year}} | ||
== ☑️ Post-Release == | == <strike> ☑️ Post-Release </strike> == | ||
:Completion Date: | :Completion Date: 2023-11-22 | ||
* Remove all deprecated functions (either tagged with <code>OCTAVE_DEPRECATED</code> in C++ or in the directory <code>scripts/deprecated</code> for m-files) scheduled for deletion on default branch. Check file <code>etc/NEWS.VERSION-2.md</code> for list of features that have been deprecated. | * <strike> Remove all deprecated functions (either tagged with <code>OCTAVE_DEPRECATED</code> in C++ or in the directory <code>scripts/deprecated</code> for m-files) scheduled for deletion on default branch. Check file <code>etc/NEWS.VERSION-2.md</code> for list of features that have been deprecated. | ||
* Create new <code>etc/NEWS.VERSION+1.md</code> file by copying <code>etc/NEWS.VERSION.md</code> and then removing text so that it is a template file with headings only. | * Create new <code>etc/NEWS.VERSION+1.md</code> file by copying <code>etc/NEWS.VERSION.md</code> and then removing text so that it is a template file with headings only. </strike> | ||
* Note: prereleases are not typically done for 9.x releases (only for the initial 9.1). | |||
** <strike>exceptionally, 9.2 had a pre-release b/c of Qt 5 to 6.</strike> | |||
== ℹ️ Versioning hints == | == ℹ️ Versioning hints == |
Latest revision as of 18:18, 28 May 2024
Timeline (tentative)
- 2023-11-22 🚀 Release Kick-off ⚽ (default branch merged to stable)
- 2024-02-07 🛠️ 1st release candidate 9.0.90 on https://alpha.gnu.org/gnu/octave/
- 2024-03-14 🏁 Final Release 🎉 9.1.0 on https://ftp.gnu.org/gnu/octave/
- Please use
<strike> </strike>
to mark items below as done.
🚀 Kick-off ⚽[edit]
📢 Call for bug reports [edit]
- Completion Date: 2023-11-24
- WON'T DO
Put out a general call for reports on Octave Discourse for all outstanding unreported known bugs. Create Savannah tag 9.0.90 on bug tracker.- Mark items that should be fixed for the release with this tag.
- Bug overview at https://octave.space/savannah/ .
📢 Update GUI translation files[edit]
- Completion Date: 2023-12-22
Call for updates that might change GUI strings.- String freeze date: 2023-12-03
Update language translation files (*.ts).Create issue report on Savannah as a centralized location for uploading files. bug #64982Call for translations for GUI strings on maintainers@octave.org, CC-ing the translators (see list of translators). message in mailing list archiveCollect and push all translated files.
⚙️ Update gnulib to latest version [edit]
- Completion Date: 2023-11-19
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.
⚖️ GPL License activities[edit]
- 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[edit]
- Completion Date: 2023-12-12
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[edit]
- Completion Date:
Grammar check documentation.Spell check documentation.Verify no functions missing from manual.Verify deprecated functions removed from "see also" links.Verify all formats (Info, HTML, PDF) build correctly.- Review NEWS for any features which should be announced.
- Review __unimplemented__.m for the latest changes to Octave Forge packages and new Matlab functions.
- Update installer-files/README.html in MXE Octave with version highlights.
🔃 Repeat until all bugs are resolved[edit]
- Completion Date first iteration:
⚠️ Current state at Savannah[edit]
- Bug overview at https://octave.space/savannah/ .
✅ make check
[edit]
- Verify
make check
is passing on all buildbot combinations of OS and compilers and GitHub CI runners. Also check test suite runs on "freshly brewed Octave for Windows" (Kai's buildbots on octave.space). Compiling with-fsanitize=undefined
,--enable-address-sanitizer-flags
to check for memory leaks. Use other toolscppcheck
, etc.Update PVS static analyzer results PVS static analyzer - 5.0 Release.WON'T DOOr use any static analyzer, such as Clang's `scan-build make all`.WON'T DO
- Start discussion on Discourse about which failing tests that must be fixed and which can be declared WON'T FIX: Test suite results of Octave 9
🛠️ Create new release candidate[edit]
- Ensure correct version information.
- Create hg tag in repository with release candidate version number.
- Verify
make distcheck
passes. - Verify
make dist
works. - Create Windows Installer.
- Upload release candidates.
- Check Windows Installer (executable and zip formats) against false positive detection at virustotal.com
- Add release candidate version to Savannah bug tracker.
- Announce release candidate to Octave Discourse.
🏁 Final Release 🎉[edit]
📃 Update version information[edit]
- Completion Date:
- Ensure correct version information.
- Create hg tag in repository with release version number.
- Update NEWS (final release date).
- Update CITATION (version, year, URL).
- Update org.octave.Octave.appdata.xml (version number and release date).
- Update Savannah bug tracker version info.
- Update Savannah bug tracker: OPEN bugs marked as WON'T FIX should be marked as CONFIRMED (or more appropriate) for the final release.
- Remove release candidate versions from Savannah.
📢 Announce final release[edit]
- Completion Date:
- Octave mailing-lists
Octave web site (https://github.com/gnu-octave/gnu-octave.github.io)Steps documented in this changeset.Upload documentation (manual HTML + PDF octave.org/doc and version in octave.org/.htaccess, Doxygen octave.org/doxygen)
This wiki- Template:Release = 9.2.0
- Template:Release Date = June 1, 2024
- Template:Release Year = 2024
☑️ Post-Release [edit]
- Completion Date: 2023-11-22
Remove all deprecated functions (either tagged withOCTAVE_DEPRECATED
in C++ or in the directoryscripts/deprecated
for m-files) scheduled for deletion on default branch. Check fileetc/NEWS.VERSION-2.md
for list of features that have been deprecated.Create newetc/NEWS.VERSION+1.md
file by copyingetc/NEWS.VERSION.md
and then removing text so that it is a template file with headings only.- Note: prereleases are not typically done for 9.x releases (only for the initial 9.1).
exceptionally, 9.2 had a pre-release b/c of Qt 5 to 6.
ℹ️ Versioning hints[edit]
Read
etc/HACKING.md
carefully!!- Update configure.ac:
AC_INIT
OCTAVE_API_VERSION
OCTAVE_MAJOR/MINOR/PATCH_VERSION
OCTAVE_RELEASE_DATE
- Update libtool versioning:
- liboctave/module.mk
%canon_reldir%_%canon_reldir%_current
- libinterp/module.mk
%canon_reldir%_liboctinterp_current
- libgui/module.mk
%canon_reldir%_liboctgui_current
- liboctave/module.mk