Skip to content

Commit 761da9c

Browse files
authored
Merge pull request #11701 from IQSS/making-releases-post-hotfix
tweak "making releases" doc after 6.7.1 hotfix
2 parents d4fbb63 + 1928563 commit 761da9c

File tree

2 files changed

+50
-32
lines changed

2 files changed

+50
-32
lines changed

doc/sphinx-guides/source/container/base-image.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ It inherits (is built on) an Ubuntu environment from the upstream
109109
`base image of Eclipse Temurin <https://hub.docker.com/_/eclipse-temurin>`_.
110110
You are free to change the JRE/JDK image to your liking (see below).
111111

112-
112+
.. _base-image-build-instructions:
113113

114114
Build Instructions
115115
++++++++++++++++++

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

Lines changed: 49 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ Declare a Code Freeze
5454

5555
The following steps are made more difficult if code is changing in the "develop" branch. Declare a code freeze until the release is out. Do not allow pull requests to be merged.
5656

57+
For a hotfix, a code freeze (no merging) is necessary not because we want code to stop changing in the branch being hotfix released, but because bumping the version used in Jenkins/Ansible means that API tests will fail in pull requests until the version is bumped in those pull requests.
58+
5759
Conduct Performance Testing
5860
---------------------------
5961

@@ -87,38 +89,33 @@ The task at or near release time is to collect these snippets into a single file
8789
- Make a pull request. Here's an example: https://github.com/IQSS/dataverse/pull/11613
8890
- Note that we won't merge the release notes until after we have confirmed that the upgrade instructions are valid by performing a couple upgrades.
8991

92+
For a hotfix, don't worry about release notes yet.
93+
9094
Deploy Release Candidate to Internal
9195
------------------------------------
9296

9397
|dedicated|
9498

95-
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".
96-
97-
Note that we haven't bumped the version yet so you won't be able to follow the steps exactly.
98-
99-
Deploy Release Candidate to Demo
100-
--------------------------------
101-
102-
|dedicated|
103-
104-
First, build the release candidate.
105-
106-
ssh into the dataverse-internal server and undeploy the current war file.
107-
Go to /doc/release-notes, open the release-notes.md file for the current release, and perform all the steps under "Upgrade Instructions".
99+
First, build the release candidate. For a regular release, you will use the "develop" branch, as shown below. For a hotfix, you will use whatever branch name is used for the hotfix.
108100

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

111103
- Repository URL: ``https://github.com/IQSS/dataverse.git``
112104
- Branch Specifier (blank for 'any'): ``*/develop``
113105
- Execute shell: Update version in filenames to ``dataverse-5.10.war`` (for example)
114106

115-
Click "Save" then "Build Now".
107+
Click "Save" then "Build Now". The release candidate war file will be available at https://jenkins.dataverse.org/job/IQSS_Dataverse_Internal/ws/target/
116108

117-
This will build the war file, and then automatically deploy it on dataverse-internal. Verify that the application has deployed successfully.
109+
ssh into the dataverse-internal server and download the release candidate war file from the URL above.
110+
111+
Go to /doc/release-notes, open the release-notes.md file for the release we're working on, and perform all the steps under "Upgrade Instructions". Note that for regular releases, we haven't bumped the version yet so you won't be able to follow the steps exactly. (For hotfix releases, the version will be bumped already.)
112+
113+
Deploy Release Candidate to Demo
114+
--------------------------------
118115

119-
You can scp the war file to the demo server or download it from https://jenkins.dataverse.org/job/IQSS_Dataverse_Internal/ws/target/
116+
|dedicated|
120117

121-
ssh into the demo server and follow the upgrade instructions in the release notes. Again, note that we haven't bumped the version yet.
118+
Deploy the same war file to https://demo.dataverse.org using the same upgrade instructions as above.
122119

123120
Merge Release Notes (Once Ready)
124121
--------------------------------
@@ -127,6 +124,8 @@ If the upgrade instructions are perfect, simply merge the release notes.
127124

128125
If the upgrade instructions aren't quite right, work with the authors of the release notes until they are good enough, and then merge.
129126

127+
For a hotfix, there are no release notes to merge yet.
128+
130129
Prepare Release Branch
131130
----------------------
132131

@@ -155,6 +154,8 @@ Return to the parent pom and make the following change, which is necessary for p
155154

156155
- modules/dataverse-parent/pom.xml -> ``<profiles>`` -> profile "ct" -> ``<properties>`` -> Set ``<base.image.version>`` to ``${revision}``
157156

157+
When testing the version change in Docker note that you will have to build the base image manually. See :ref:`base-image-build-instructions`.
158+
158159
(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.)
159160

160161
For a regular release, make the changes above in the release branch you created, but hold off for a moment on making a pull request because Jenkins will fail because it will be testing the previous release.
@@ -163,10 +164,10 @@ In the dataverse-ansible repo bump the version in `jenkins.yml <https://github.c
163164

164165
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.
165166

166-
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.
167+
If you are making a hotfix release, ``<base.image.version>`` should already be set to ``${revision}``. If so, leave it alone. Go ahead and do the normal bumping of version numbers described above. Make the pull request against the "master" branch. Put it through review and QA. 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.
167168

168-
Merge "develop" into "master"
169-
-----------------------------
169+
Merge "develop" into "master" (non-hotfix only)
170+
-----------------------------------------------
170171

171172
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
172173

@@ -312,6 +313,8 @@ Note that for milestones we use just the number without the "v" (e.g. "5.10.1").
312313

313314
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.
314315

316+
.. _base_image_post_release:
317+
315318
Update the Container Base Image Version Property
316319
------------------------------------------------
317320

@@ -325,12 +328,7 @@ Create a pull request and put it through code review, like usual. Give it a mile
325328

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

328-
Lift the Code Freeze and Encourage Developers to Update Their Branches
329-
----------------------------------------------------------------------
330-
331-
It's now safe to lift the code freeze. We can start merging pull requests into the "develop" branch for the next release.
332-
333-
Let developers know that they should merge the latest from the "develop" branch into any branches they are working on.
331+
For a hotfix, we will do this later and in a different branch. See below.
334332

335333
Deploy Final Release on Demo
336334
----------------------------
@@ -379,13 +377,33 @@ Announce the Release on Zulip
379377

380378
Post a message under #community at https://dataverse.zulipchat.com
381379

382-
For Hotfixes, Merge Hotfix Branch into "develop" and Rename SQL Scripts
383-
-----------------------------------------------------------------------
380+
For Hotfixes, Merge Hotfix Branch into "develop"
381+
------------------------------------------------
382+
383+
Note: this only applies to hotfixes!
384+
385+
We've merged the hotfix into the "master" branch but now we need the fixes (and version bump) in the "develop" branch.
386+
387+
Make a new branch off the hotfix branch. You can call it something like "6.7.1-merge-hotfix-to-develop".
388+
389+
In that branch, do the :ref:`base_image_post_release` step you skipped above. Now is the time.
390+
391+
Create a pull request against develop. Merge conflicts are possible and this pull request should go through review and QA like normal. Afterwards it's fine to delete this branch and the hotfix branch that was merged into master.
392+
393+
For Hotfixes, Tell Developers to Merge "develop" into Their Branches and Rename SQL Scripts
394+
-------------------------------------------------------------------------------------------
384395

385396
Note: this only applies to hotfixes!
386397

387-
We've merged the hotfix into the "master" branch but now we need the fixes (and version bump) in the "develop" branch. Make a new branch off the hotfix branch and create a pull request against develop. Merge conflicts are possible and this pull request should go through review and QA like normal. Afterwards it's fine to delete this branch and the hotfix branch that was merged into master.
398+
Because we have merged a version bump from the hotfix into the "develop" branch, any SQL scripts in the "develop" branch should be renamed (from "5.11.0" to "5.11.1" for example). (To read more about our naming conventions for SQL scripts, see :doc:`sql-upgrade-scripts`.)
399+
400+
Look at ``src/main/resources/db/migration`` in the "develop" branch and if any SQL scripts have the wrong version, make a pull request (or ask a developer to) to update them (all at once in a single PR is fine).
388401

389-
Because of the hotfix version, any SQL scripts in "develop" should be renamed (from "5.11.0" to "5.11.1" for example). To read more about our naming conventions for SQL scripts, see :doc:`sql-upgrade-scripts`.
402+
Tell developers to merge the "develop" into their open pull requests (to pick up the new version and any fixes) and rename SQL scripts (if any) with the new version.
403+
404+
Lift the Code Freeze and Encourage Developers to Update Their Branches
405+
----------------------------------------------------------------------
406+
407+
It's now safe to lift the code freeze. We can start merging pull requests into the "develop" branch for the next release.
390408

391-
Please note that version bumps and SQL script renaming both require all open pull requests to be updated with the latest from the "develop" branch so you might want to add any SQL script renaming to the hotfix branch before you put it through QA to be merged with develop. This way, open pull requests only need to be updated once.
409+
Let developers know that they should merge the latest from the "develop" branch into any branches they are working on. (For hotfixes we've already told them this.)

0 commit comments

Comments
 (0)