Skip to content

Commit 7eec229

Browse files
committed
Merge branch 'develop' into 11159-anon-access-doc
2 parents 96751ac + 8f697d2 commit 7eec229

File tree

1 file changed

+63
-12
lines changed

1 file changed

+63
-12
lines changed

doc/sphinx-guides/source/developers/making-releases.rst

Lines changed: 63 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,24 @@ Early on, make sure it's clear what type of release this is. The steps below des
3030
Ensure Issues Have Been Created
3131
-------------------------------
3232

33-
In advance of a release, GitHub issues should have been created already that capture certain steps. See https://github.com/IQSS/dataverse-pm/issues/335 for examples.
33+
Some of the steps in this document are well-served by having their own dedicated GitHub issue. You'll see a label like this on them:
34+
35+
|dedicated|
36+
37+
There are a variety of reasons why a step might deserve its own dedicated issue:
38+
39+
- The step can be done by a team member other than the person doing the release.
40+
- Stakeholders might be interested in the status of a step (e.g. has the released been deployed to the demo site).
41+
42+
Steps don't get their own dedicated issue if it would be confusing to have multiple people involved. Too many cooks in the kitchen, as they say. Also, some steps are so small the overhead of an issue isn't worth it.
43+
44+
Before the release even begins you can coordinate with the project manager about the creation of these issues.
45+
46+
.. |dedicated| raw:: html
47+
48+
<span class="label label-success pull-left">
49+
Dedicated Issue
50+
</span>&nbsp;
3451

3552
Declare a Code Freeze
3653
---------------------
@@ -40,18 +57,25 @@ The following steps are made more difficult if code is changing in the "develop"
4057
Conduct Performance Testing
4158
---------------------------
4259

60+
|dedicated|
61+
4362
See :doc:`/qa/performance-tests` for details.
4463

45-
Conduct Smoke Testing
46-
---------------------
64+
Conduct Regression Testing
65+
---------------------------
66+
67+
|dedicated|
4768

4869
See :doc:`/qa/testing-approach` for details.
70+
Refer to the provided regression checklist for the list of items to verify during the testing process: `Regression Checklist <https://docs.google.com/document/d/1OsGJV0sMLDSmfkU9-ee8h_ozbQcUDJ1EOwNPm4dC63Q/edit?usp=sharing>`_.
4971

5072
.. _write-release-notes:
5173

5274
Write Release Notes
5375
-------------------
5476

77+
|dedicated|
78+
5579
Developers express the need for an addition to release notes by creating a "release note snippet" in ``/doc/release-notes`` containing the name of the issue they're working on. The name of the branch could be used for the filename with ".md" appended (release notes are written in Markdown) such as ``5053-apis-custom-homepage.md``. See :ref:`writing-release-note-snippets` for how this is described for contributors.
5680

5781
The task at or near release time is to collect these snippets into a single file.
@@ -62,17 +86,22 @@ The task at or near release time is to collect these snippets into a single file
6286
- Include instructions describing the steps required to upgrade the application from the previous version. These must be customized for release numbers and special circumstances such as changes to metadata blocks and infrastructure.
6387
- Take the release notes .md through the regular Code Review and QA process. That is, make a pull request. Here's an example: https://github.com/IQSS/dataverse/pull/10866
6488

65-
Upgrade Instructions for Internal
66-
---------------------------------
89+
Deploy Release Candidate to Internal
90+
------------------------------------
91+
92+
|dedicated|
6793

6894
To upgrade internal, go to /doc/release-notes, open the release-notes.md file for the current release and perform all the steps under "Upgrade Instructions".
6995

7096
Deploy Release Candidate to Demo
7197
--------------------------------
7298

99+
|dedicated|
100+
73101
First, build the release candidate.
74102

75103
ssh into the dataverse-internal server and undeploy the current war file.
104+
Go to /doc/release-notes, open the release-notes.md file for the current release, and perform all the steps under "Upgrade Instructions".
76105

77106
Go to https://jenkins.dataverse.org/job/IQSS_Dataverse_Internal/ and make the following adjustments to the config:
78107

@@ -91,6 +120,8 @@ ssh into the demo server and follow the upgrade instructions in the release note
91120
Prepare Release Branch
92121
----------------------
93122

123+
|dedicated|
124+
94125
The release branch will have the final changes such as bumping the version number.
95126

96127
Usually we branch from the "develop" branch to create the release branch. If we are creating a hotfix for a particular version (5.11, for example), we branch from the tag (e.g. ``v5.11``).
@@ -116,18 +147,20 @@ Return to the parent pom and make the following change, which is necessary for p
116147

117148
(Before you make this change the value should be ``${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}``. Later on, after cutting a release, we'll change it back to that value.)
118149

119-
For a regular release, make the changes above in the release branch you created, make a pull request, and merge it into the "develop" branch. Like usual, you can safely delete the branch after the merge is complete.
150+
For a regular release, make the changes above in the release branch you created, but hold off for a moment on making a pull requests because Jenkins will fail because it will be testing the previous release.
120151

121-
If you are making a hotfix release, make the pull request against the "master" branch. Do not delete the branch after merging because we will later merge it into the "develop" branch to pick up the hotfix. More on this later.
152+
In the dataverse-ansible repo make bump the version in `jenkins.yml <https://github.com/gdcc/dataverse-ansible/blob/develop/tests/group_vars/jenkins.yml>`_ and make a pull request such as https://github.com/gdcc/dataverse-ansible/pull/386. Wait for it to be merged. Note that bumping on the Jenkins side like this will mean that all pull requests will show failures in Jenkins until they are updated to the version we are releasing.
122153

123-
Either way, as usual, you should ensure that all tests are passing. Please note that you will need to bump the version in `jenkins.yml <https://github.com/gdcc/dataverse-ansible/blob/develop/tests/group_vars/jenkins.yml>`_ in dataverse-ansible to get the tests to pass. Consider doing this before making the pull request. Alternatively, you can bump jenkins.yml after making the pull request and re-run the Jenkins job to make sure tests pass.
154+
Once dataverse-ansible has been merged, return to the branch you created above ("10852-bump-to-6.4" or whatever) and make a pull request. Ensure that all tests are passing and then put the PR through the normal review and QA process.
155+
156+
If you are making a hotfix release, make the pull request against the "master" branch. Do not delete the branch after merging because we will later merge it into the "develop" branch to pick up the hotfix. More on this later.
124157

125158
Merge "develop" into "master"
126159
-----------------------------
127160

128161
If this is a regular (non-hotfix) release, create a pull request to merge the "develop" branch into the "master" branch using this "compare" link: https://github.com/IQSS/dataverse/compare/master...develop
129162

130-
Once important tests have passed (compile, unit tests, etc.), merge the pull request. Don't worry about style tests failing such as for shell scripts.
163+
Once important tests have passed (compile, unit tests, etc.), merge the pull request (skipping code review is ok). Don't worry about style tests failing such as for shell scripts.
131164

132165
If this is a hotfix release, skip this whole "merge develop to master" step (the "develop" branch is not involved until later).
133166

@@ -160,7 +193,7 @@ Go to https://jenkins.dataverse.org/job/guides.dataverse.org/ and make the follo
160193

161194
- Repository URL: ``https://github.com/IQSS/dataverse.git``
162195
- Branch Specifier (blank for 'any'): ``*/master``
163-
- ``VERSION`` (under "Build Steps"): ``5.10.1`` (for example)
196+
- ``VERSION`` (under "Build Steps"): bump to the next release. Don't prepend a "v". Use ``5.10.1`` (for example)
164197

165198
Click "Save" then "Build Now".
166199

@@ -265,24 +298,37 @@ Close Milestone on GitHub and Create a New One
265298

266299
You can find our milestones at https://github.com/IQSS/dataverse/milestones
267300

268-
Now that we've published the release, close the milestone and create a new one.
301+
Now that we've published the release, close the milestone and create a new one for the **next** release, the release **after** the one we're working on, that is.
269302

270303
Note that for milestones we use just the number without the "v" (e.g. "5.10.1").
271304

305+
On the project board at https://github.com/orgs/IQSS/projects/34 edit the tab (view) that shows the milestone to show the next milestone.
306+
272307
Update the Container Base Image Version Property
273308
------------------------------------------------
274309

310+
|dedicated|
311+
275312
Create a new branch (any name is fine but ``prepare-next-iteration`` is suggested) and update the following files to prepare for the next development cycle:
276313

277314
- modules/dataverse-parent/pom.xml -> ``<profiles>`` -> profile "ct" -> ``<properties>`` -> Set ``<base.image.version>`` to ``${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}``
278315

279-
Now create a pull request and merge it.
316+
Create a pull request and put it through code review, like usual. Give it a milestone of the next release, the one **after** the one we're working on. Once the pull request has been approved, merge it. It should the the first PR merged of the next release.
280317

281318
For more background, see :ref:`base-supported-image-tags`. For an example, see https://github.com/IQSS/dataverse/pull/10896
282319

320+
Lift the Code Freeze and Encourage Developers to Update Their Branches
321+
----------------------------------------------------------------------
322+
323+
It's now safe to lift the code freeze. We can start merging pull requests into the "develop" branch for the next release.
324+
325+
Let developers know that they should merge the latest from the "develop" branch into any branches they are working on.
326+
283327
Deploy Final Release on Demo
284328
----------------------------
285329

330+
|dedicated|
331+
286332
Above you already did the hard work of deploying a release candidate to https://demo.dataverse.org. It should be relatively straightforward to undeploy the release candidate and deploy the final release.
287333

288334
Update SchemaSpy
@@ -316,6 +362,11 @@ Announce the Release on the Mailing List
316362

317363
Post a message at https://groups.google.com/g/dataverse-community
318364

365+
Announce the Release on Zulip
366+
-----------------------------
367+
368+
Post a message under #community at https://dataverse.zulipchat.com
369+
319370
For Hotfixes, Merge Hotfix Branch into "develop" and Rename SQL Scripts
320371
-----------------------------------------------------------------------
321372

0 commit comments

Comments
 (0)