Skip to content

Commit 52453fa

Browse files
balos1gardner48
andauthored
Docs: Add release procedure notes, remove old steps (#630)
Update release checklist ----- Co-authored-by: David Gardner <gardner48@llnl.gov>
1 parent 935d6a4 commit 52453fa

File tree

1 file changed

+66
-59
lines changed

1 file changed

+66
-59
lines changed

doc/superbuild/source/developers/releases/Checklist.rst

Lines changed: 66 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -65,50 +65,80 @@ This is a list of tasks that need to be done before a SUNDIALS release.
6565
The order is bottom-up starting with solver source files and ending with
6666
web pages.
6767

68-
#. Create release branch from trunk in the Git repository
68+
#. Create release branch ``release/vX.Y.Z`` from ``develop`` in the git repo.
69+
70+
#. Update version numbers and release date information using the ``updateVerson.sh``
71+
script.
72+
73+
.. code-block:: shell
74+
pushd scripts/ && ./updateVersion.sh && popd
6975
7076
#. If this is a major release, search the SUNDIALS code for
7177
'DEPRECATION NOTICE' and 'SUNDIALS_DEPRECATED'. All deprecated
7278
functions should be removed (unless this is the first version
7379
that they are deprecated).
7480

75-
#. Regenerate the Fortran 2003 interfaces. It is possible nothing will be updated.
76-
This is done by running ``make all32 all64`` in the ``swig/`` directory.
81+
#. Update version numbers of third party libraries in the Install Guide
82+
in doc directory.
7783

78-
#. Update the "Changes in ..." sections in all user guides. The changes should be
79-
sorted so that major new features are above bug fixes.
84+
#. Open a pull request from the release branch to ``develop`` with the title
85+
"Release: vX.Y.Z" and description "SUNDIALS Release vX.Y.Z".
8086

81-
#. Update version numbers and release date information using the ``updateVerson.sh``
82-
script. This will update the following files:
83-
84-
* ``CITATIONS.md``
85-
* ``CMakeLists.txt``
86-
* ``README.md``
87-
* ``src/arkode/README``
88-
* ``src/cvode/README``
89-
* ``src/cvodes/README``
90-
* ``src/ida/README``
91-
* ``src/idas/README``
92-
* ``src/kinsol/README``
93-
* ``doc/arkode/examples/source/conf.py``
94-
* ``doc/shared/versions.py``
95-
* ``doc/shared/History.rst``
96-
* ``doc/shared/sundials.bib``
97-
* ``doc/sundials/biblio.bib``
98-
* ``scripts/tarscript``
99-
100-
The following files are no longer maintained:
101-
102-
* ``html/main.html`` (This is no longer maintained as of at least 2016)
103-
* ``sundialsTB/install_STB.m`` (This is no longer maintained as of 2016)
87+
Release Procedure
88+
=================
10489

105-
#. Update version numbers of third party libraries in the Install Guide
106-
in doc directory.
90+
#. Once the release PR is passing all tests and has been approved, merge it. Like all
91+
merges to ``develop``, this should be done with the "Squash and merge" option.
92+
93+
#. Sync the main branch with develop. This merge is done locally rather than through
94+
a GitHub PR (so that the merge is a fast-forward). The steps are as follows:
95+
96+
.. code-block:: shell
97+
98+
git checkout develop
99+
git pull # develop should be up to date with origin/develop now
100+
git checkout main
101+
git pull # main should be up to date with origin/main now
102+
git merge --ff-only develop # we want to do a fast-forward merge (no merge commit)
103+
git tag -a vX.Y.Z -m 'SUNDIALS Release vX.Y.Z'
104+
git push --tags origin main
105+
106+
.. note::
107+
108+
The final step (pushing to main) requires temporarily changing the GitHub
109+
repository settings to allow whoever is doing the push an exception in the
110+
``main`` branch protection rules.
111+
112+
.. danger::
113+
114+
Remember to remove this exception to the branch protection rules after making
115+
the push to update ``main``.
116+
117+
#. Once readthedocs finishes building the new release, create the tarballs *on a Linux machine*.
118+
Use the ``tarscript`` shell script under the ``scripts`` directory. This also compiles the documents
119+
(user guides and example docs) and creates all tarballs in their final form, appropriate for uploading
120+
as artifacts to the GitHub release.
107121

108-
#. Create the new distribution tarballs using the ``tarscript`` shell script
109-
under the ``scripts`` directory. This also compiles the documents (user
110-
guides and example docs) and creates all tarballs in their final form,
111-
appropriate for uploading to the website.
122+
.. warning::
123+
124+
Creating the tarballs on a Mac can cause issues. Furthermore, it is important to wait
125+
to create the tarballs until readthedocs finishes building the new release docs so
126+
that cross-references have valid links.
127+
128+
#. Draft the release on GitHub with the title "SUNDIALS vX.Y.Z" and attach the tarballs
129+
as well as the example documentation PDFs. The description of the release is just a
130+
copy of the ``CHANGELOG.md`` notes for the release with hard line-wraps removed.
131+
132+
#. Now prepare SUNDIALS for the next release cycle using the following steps:
133+
134+
.. code-block:: shell
135+
136+
git checkout develop
137+
git checkout -b maintenance/start-new-release-cycle
138+
pushd scripts/ && ./startReleaseCycle.sh && popd
139+
git add . && git commit -m 'start new release cycle'
140+
git push -u origin maintenance/start-new-release-cycle
141+
# Now open the PR to develop on GitHub.
112142
113143
#. Update Internal Drupal Web pages for SUNDIALS:
114144
https://computing-staging.llnl.gov/user
@@ -118,22 +148,13 @@ web pages.
118148
* Edit Main Page:
119149
https://computing-staging.llnl.gov/projects/sundials
120150

121-
* Update Release History page:
122-
https://computing-staging.llnl.gov/projects/sundials/release-history
123-
* Add list of primary changes and child page containing
124-
full list of changes (this information is shared with
125-
"Changes in ..." sections of user guides).
126-
127151
* Edit Download Page:
128152
https://computing-staging.llnl.gov/projects/sundials/sundials-software
129153

130-
* Update main download table with links to new versions of solvers
131-
* The documentation links do not need to be updated (they point to the PDFs on the GitHub main branch)
154+
* Update main download table with links to new versions of solvers.
155+
* The example documentation links need to be updated as well.
132156
* Update Previous releases table with new entry for previous release of full SUNDIALS suite.
133157

134-
* Edit FAQ if necessary:
135-
https://computing-staging.llnl.gov/projects/sundials/faq
136-
137158
b) Once each sub page is complete, ask for team review of draft pages:
138159
https://computing-staging.llnl.gov/projects/sundials
139160

@@ -146,17 +167,3 @@ web pages.
146167
#. After final push, ensure web content and behavior is as expected on the main
147168
page: http://computing.llnl.gov/projects/sundials
148169

149-
#. Tag the release
150-
151-
152-
**Old steps for maintaianed code:**
153-
154-
#. Create PDF files for SundialsTB:
155-
156-
a) Create the PDF doc for SundialsTB by running the Matlab program
157-
``texdoc.m`` available in ``sundialsTB/doc``.
158-
159-
b) The program uses the m2html toolbox, freely available. It creates doc
160-
files in PS and PDF formats as ``sundialsTB.ps`` and ``sundialsTB.pdf``.
161-
162-
c) Follow Radu's instructions in ``sundials/sundialsTB/doc/README_texdoc``.

0 commit comments

Comments
 (0)