1,134
edits
mNo edit summary |
|||
Line 1: | Line 1: | ||
{{Note|'''Timeline''' (tentative) | {{Note|'''Timeline''' (tentative) | ||
* YYYY-MM-DD 🚀 Release Kick-off ⚽ (default branch merged to stable) | * YYYY-MM-DD 🚀 Release Kick-off ⚽ (default branch merged to stable) | ||
* YYYY-MM-DD 🛠️ 1st release candidate | * YYYY-MM-DD 🛠️ 1st release candidate '''10.0.90''' on https://alpha.gnu.org/gnu/octave/ | ||
* YYYY-MM-DD 🏁 Final Release 🎉 | * YYYY-MM-DD 🏁 Final Release 🎉 '''10.1.0''' on https://ftp.gnu.org/gnu/octave/}} | ||
Please use <code><strike> </strike></code> to mark items below as done. | |||
== 🚀 Kick-off ⚽ == | == 🚀 Kick-off ⚽ == | ||
=== ⚙️ Update stable and default branch to new version numbers === | === ⚙️ Update stable and default branch to new version numbers === | ||
Line 14: | Line 13: | ||
Completion Date: | Completion Date: | ||
* Merge default onto stable to become the current stable release (see instructions in | * Merge default onto stable to become the current stable release (see instructions in <code>etc/HACKING.md</code>). | ||
* Bump version numbers in | * Bump version numbers in <code>configure.ac</code> on stable branch (see <code>etc/HACKING.md</code>). | ||
* Bump version numbers in | * Bump version numbers in <code>configure.ac</code> on default branch (see <code>etc/HACKING.md</code>). | ||
* Create new | * Create new <code>etc/NEWS.11.md</code> file on default branch by copying <code>etc/NEWS.10.md</code> and then removing text so that it is a template file with headings only. | ||
=== ⚙️ Update gnulib to latest version === | === ⚙️ Update gnulib to latest version === | ||
Line 23: | Line 22: | ||
Completion Date: | 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 === | === 📢 Call for bug reports === | ||
Line 29: | Line 28: | ||
Completion Date: | Completion Date: | ||
* Put out a general call for reports on [ | * Put out a general call for reports on [https://octave.discourse.group/ Octave Discourse] for all outstanding, but unreported, known bugs. | ||
* Create Savannah | * Create Savannah <code>Release</code> tag <code>10.0.90</code> on bug tracker for 1st release 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 | * Update Savannah <code>Planned Release</code> and <code>Fixed Release</code> tags by adding <code>10.1.0 (current stable)</code> and <code>11.1.0 (current default)</code>. | ||
* Review bug overview at https://octave.space/savannah/. | |||
* Review bug overview at | |||
=== 📢 Update GUI translation files === | === 📢 Update GUI translation files === | ||
Line 41: | Line 38: | ||
Completion Date: | Completion Date: | ||
* Call for updates ([ | * Call for updates ([https://octave.discourse.group/ Octave Discourse]) that might change GUI strings. | ||
* String freeze date: | * String freeze date: | ||
* Update language translation files ( | * 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. | |||
* Create bug report on Savannah as a centralized location for uploading files | * 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]). | ||
* Call for translations of GUI strings on [ | |||
* Collect translation files on Savannah bug report and push to Mercurial. | * Collect translation files on Savannah bug report and push to Mercurial. | ||
Line 55: | Line 49: | ||
Completion Date: | 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 === | === ✅ Style-check code base === | ||
Line 73: | Line 62: | ||
Completion Date: | Completion Date: | ||
This will produce lots of whitespace changes, but no behavior changes. | 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. | ||
occur after patches have been added | |||
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 === | === 📖 Review documentation === | ||
Line 84: | Line 71: | ||
Completion Date: | Completion Date: | ||
* Grammar check documentation (See | * Grammar check documentation (See <code>doc/interpreter/doccheck/README</code>). | ||
* Spell check documentation ( | * Spell check documentation (<code>make spellcheck</code>). | ||
* Verify no functions missing from manual | * 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 deprecated functions removed from manual ( | |||
* Verify all formats (Info, HTML, PDF) build correctly. | * Verify all formats (Info, HTML, PDF) build correctly. | ||
* Review | * Review <code>etc/NEWS.10.md</code> for any features which should be announced. | ||
* Review | * 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. | |||
* Update | |||
== 🔃 Repeat until all bugs are resolved == | == 🔃 Repeat until all bugs are resolved == | ||
Completion Date of first iteration: | Completion Date of first iteration: | ||
Line 105: | Line 87: | ||
=== ⚠️ Current state at Savannah === | === ⚠️ Current state at Savannah === | ||
Bug overview at | Bug overview at https://octave.space/savannah/. | ||
=== ✅ | === ✅ <code>make check</code> === | ||
* Verify | * 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. | * 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'''. | |||
* Start discussion on [ | |||
=== 🛠️ Create new release candidate === | === 🛠️ Create new release candidate === | ||
* Ensure correct version information (see | * 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>). | |||
* Create | * Verify <code>make dist</code> works. | ||
* Verify <code>make distcheck</code> passes. | |||
* Verify | * Create [https://wiki.octave.org/Windows_Installer Windows Installer]. | ||
* Verify | * Upload release candidates to https://alpha.gnu.org/gnu/octave/. | ||
* Create [ | * Check [https://wiki.octave.org/Windows_Installer Windows Installer] (executable and zip formats) against false positive detection at [https://virustotal.com/ virustotal.com]. | ||
* Upload release candidates to | |||
* Check [ | |||
* Add release candidate version to Savannah bug tracker. | * Add release candidate version to Savannah bug tracker. | ||
* Announce release candidate to | * Announce release candidate to [https://octave.discourse.group/ Octave Discourse]. | ||
== 🏁 Final Release 🎉 == | == 🏁 Final Release 🎉 == | ||
=== 📃 Update version information === | === 📃 Update version information === | ||
Line 149: | Line 119: | ||
Completion Date: | Completion Date: | ||
* Ensure correct version information in | * 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-10-1-0</code>). | |||
* Create | * Update <code>etc/NEWS.10.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 | * Update <code>etc/icons/org.octave.Octave.appdata.xml</code> (version number and release date). | ||
* Update | * Upload all tarballs to https://ftp.gnu.org/gnu/octave/. | ||
* Update web site files: <code>NEWS-10.html</code>, <code>index.in</code>, <code>news.in</code>, and <code>download.in</code>. | |||
* Update | * Update https://wiki.octave.org/Release_History page. | ||
* Update Savannah bug tracker <code>Release</code> field to have new release number. | |||
* Upload all tarballs to | * Update Savannah bug tracker: '''OPEN''' bugs marked as '''WON’T FIX''' should be marked as '''CONFIRMED''' (or more appropriate) for the final release. | ||
* Update web site files: | * Hide release candidate versions for <code>Release</code> field on Savannah. | ||
* Update | |||
* Update Savannah bug tracker | |||
* Update Savannah bug tracker: | |||
* Hide release candidate versions for | |||
=== 📢 Announce final release === | === 📢 Announce final release === | ||
Line 173: | Line 137: | ||
Completion Date: | Completion Date: | ||
* Octave mailing-lists (yes, still) | * Octave mailing-lists (yes, still) [mailto:help@octave.org help@octave.org] and [mailto:info-gnu@gnu.org info-gnu@gnu.org]. | ||
* Octave web site ( | * Octave web site (https://hg.octave.org/web-octave) | ||
* Steps documented in this | * 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>) | |||
* Upload documentation (manual HTML + PDF | |||
* This wiki | * This wiki | ||
* Template:Release = 7.3.0 | * Template:Release = 7.3.0 | ||
Line 188: | Line 150: | ||
Completion Date: | Completion Date: | ||
* Remove all deprecated functions scheduled for deletion on default | * 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.8.md</code> for list of features that have been deprecated. | ||
edits