@@ -65,50 +65,80 @@ This is a list of tasks that need to be done before a SUNDIALS release.
6565The order is bottom-up starting with solver source files and ending with
6666web 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