-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New file RELEASE-CHECKLIST.wiki in Wikimedia format.
* etc/RELEASE-CHECKLIST.wiki: New file.
- Loading branch information
Rik
committed
Jan 31, 2025
1 parent
869104d
commit f86ede7
Showing
1 changed file
with
161 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
= 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 <code><strike> </strike></code> 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 <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.VERSION+1.md</code> file on default branch by copying <code>etc/NEWS.VERSION.md</code> 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 <code>./bootstrap</code> 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 [https://octave.discourse.group/ Octave Discourse] for all outstanding, but unreported, known bugs. | ||
* Create Savannah <code>Release</code> tag <code>VERSION.0.90</code> on bug tracker for 1st release candidate. | ||
* Mark items that should be fixed for the release with this tag. | ||
* Update Savannah <code>Planned Release</code> and <code>Fixed Release</code> tags by adding <code>VERSION.1.0 (current stable)</code> and <code>VERSION+1.1.0 (current default)</code>. | ||
* Review bug overview at https://octave.space/savannah/. | ||
=== 📢 Update GUI translation files === | ||
|
||
Completion Date: | ||
|
||
* Call for updates ([https://octave.discourse.group/ Octave Discourse]) that might change GUI strings. | ||
* String freeze date: | ||
* Update language translation files (<code>*.ts</code>). See instructions in <code>libgui/languages/build_ts/README.md</code>. | ||
* Create bug report on Savannah as a centralized location for uploading files and tracking status of translations. | ||
* 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]). | ||
* Collect translation files on Savannah bug report and push to Mercurial. | ||
=== ⚖️ GPL License activities === | ||
|
||
Completion Date: | ||
|
||
<ul> | ||
<li><p>Update copyright statements for all source controlled files.</p> | ||
<p>Command to update copyright notifications</p> | ||
<p><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></p> | ||
<p>Command to check results before checking in</p> | ||
<p><code>hg diff | grep ^[-+][^-+] | sed 's/[0-9][0-9][0-9][0-9]-/YYYY-/' | sort -u</code></p></li> | ||
<li><p>Update dates in any other locations (<code>CITATION</code>, MXE <code>README.html</code> file).</p></li> | ||
<li><p>Add any new contributors to <code>doc/interpreter/contributors.in</code> who wish to be mentioned (don’t add them without permission).</p></li></ul> | ||
|
||
=== ✅ 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. | ||
|
||
* [https://wiki.octave.org/Octave_style_guide m-file style check] | ||
* [https://wiki.octave.org/C%2B%2B_style_guide C++ style check] | ||
=== 📖 Review documentation === | ||
|
||
Completion Date: | ||
|
||
* Grammar check documentation (See <code>doc/interpreter/doccheck/README</code>). | ||
* Spell check documentation (<code>make spellcheck</code>). | ||
* Verify no functions missing from manual (<code>make doc/interpreter/undocumented_list</code>). | ||
* Verify deprecated functions removed from manual (<code>*.txi</code>) and from “see also” links. | ||
* Verify all formats (Info, HTML, PDF) build correctly. | ||
* Review <code>etc/NEWS.VERSION.md</code> for any features which should be announced. | ||
* Review <code>__unimplemented__.m</code> for the latest changes to [https://wiki.octave.org/Octave_Forge Octave Forge] packages and new Matlab functions. | ||
* Update <code>installer-files/README.html</code> 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/. | ||
|
||
=== ✅ <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). | ||
* Use software tools to check quality of Octave code. | ||
** Check for memory leaks by configuring with <code>--enable-address-sanitizer-flags</code> and compiling with <code>-g -O0 -fno-optimize-sibling-calls</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>, and <code>LDFLAGS</code>. | ||
** Check for bad memory accesses by compiling with <code>-g -O0 -fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>, and <code>LDFLAGS</code>. | ||
** Update static code analysis results. | ||
*** For <code>clang</code>, do <code>scan-build make -j<N> all</code> and then <code>scan-view</code>. | ||
*** See [https://wiki.octave.org/PVS_static_analyzer_-_5.0_Release PVS static analyzer - 5.0 Release]. | ||
** Use other tools such as <code>cppcheck</code>, etc. | ||
* 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'''. | ||
=== 🛠️ Create new release candidate === | ||
|
||
* Ensure correct version information (see “Release Numbering” in <code>/etc/HACKING.md</code>). | ||
* Create <code>hg tag</code> in repository with release candidate version number (<code>rc-MAJOR-MINOR-PATCH</code>). | ||
* Verify <code>make dist</code> works. | ||
* Verify <code>make distcheck</code> passes. | ||
* Create [https://wiki.octave.org/Windows_Installer Windows Installer]. | ||
* Upload release candidates to https://alpha.gnu.org/gnu/octave/. | ||
* Check [https://wiki.octave.org/Windows_Installer Windows Installer] (executable and zip formats) against false positive detection at [https://virustotal.com/ virustotal.com]. | ||
* Add release candidate version to Savannah bug tracker. | ||
* Announce release candidate to [https://octave.discourse.group/ Octave Discourse]. | ||
== 🏁 Final Release 🎉 == | ||
|
||
|
||
----- | ||
|
||
=== 📃 Update version information === | ||
|
||
Completion Date: | ||
|
||
* Ensure correct version information in <code>configure.ac</code> (see “Release Numbering” in <code>/etc/HACKING.md</code>) | ||
** Set <code>OCTAVE_RELEASE_DATE</code> to the current date. | ||
** Set the year in <code>OCTAVE_COPYRIGHT</code> to the current year. | ||
* Create <code>hg tag</code> in repository with release candidate version number (<code>release-VERSION-1-0</code>). | ||
* Update <code>etc/NEWS.VERSION.md</code> (final release date in Summary header). | ||
* Update <code>CITATION</code> (version, year, URL) if not already done as part of "GPL License activities. | ||
* Update <code>etc/icons/org.octave.Octave.appdata.xml</code> (version number and release date). | ||
* Upload all tarballs to https://ftp.gnu.org/gnu/octave/. | ||
* Update web site files: <code>NEWS-VERSION.html</code>, <code>index.in</code>, <code>news.in</code>, and <code>download.in</code>. | ||
* Update https://wiki.octave.org/Release_History page. | ||
* Update Savannah bug tracker <code>Release</code> 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 <code>Release</code> field on Savannah. | ||
=== 📢 Announce final release === | ||
|
||
Completion Date: | ||
|
||
* Octave mailing-lists (yes, still) [mailto:[email protected] [email protected]] and [mailto:[email protected] [email protected]]. | ||
* Octave web site (https://hg.octave.org/web-octave) | ||
* Steps documented in this [https://hg.octave.org/web-octave/rev/fe59d0118a2b changeset]. | ||
* Upload documentation (manual HTML + PDF <code>octave.org/doc</code> and version in <code>octave.org/.htaccess</code>, Doxygen <code>octave.org/doxygen</code>) | ||
* 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 <code>OCTAVE_DEPRECATED</code> in C++ or are m-files located in the directory <code>scripts/deprecated</code>. Check file <code>etc/NEWS.VERSION-2.md</code> for list of features that have been deprecated. |