You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/sphinx-guides/source/developers/making-releases.rst
+49-31Lines changed: 49 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,6 +54,8 @@ Declare a Code Freeze
54
54
55
55
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.
56
56
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
+
57
59
Conduct Performance Testing
58
60
---------------------------
59
61
@@ -87,38 +89,33 @@ The task at or near release time is to collect these snippets into a single file
87
89
- Make a pull request. Here's an example: https://github.com/IQSS/dataverse/pull/11613
88
90
- 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.
89
91
92
+
For a hotfix, don't worry about release notes yet.
93
+
90
94
Deploy Release Candidate to Internal
91
95
------------------------------------
92
96
93
97
|dedicated|
94
98
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.
108
100
109
101
Go to https://jenkins.dataverse.org/job/IQSS_Dataverse_Internal/ and make the following adjustments to the config:
- Branch Specifier (blank for 'any'): ``*/develop``
113
105
- Execute shell: Update version in filenames to ``dataverse-5.10.war`` (for example)
114
106
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/
116
108
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
+
--------------------------------
118
115
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|
120
117
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.
122
119
123
120
Merge Release Notes (Once Ready)
124
121
--------------------------------
@@ -127,6 +124,8 @@ If the upgrade instructions are perfect, simply merge the release notes.
127
124
128
125
If the upgrade instructions aren't quite right, work with the authors of the release notes until they are good enough, and then merge.
129
126
127
+
For a hotfix, there are no release notes to merge yet.
128
+
130
129
Prepare Release Branch
131
130
----------------------
132
131
@@ -155,6 +154,8 @@ Return to the parent pom and make the following change, which is necessary for p
155
154
156
155
- modules/dataverse-parent/pom.xml -> ``<profiles>`` -> profile "ct" -> ``<properties>`` -> Set ``<base.image.version>`` to ``${revision}``
157
156
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
+
158
159
(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.)
159
160
160
161
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
163
164
164
165
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.
165
166
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.
167
168
168
-
Merge "develop" into "master"
169
-
-----------------------------
169
+
Merge "develop" into "master" (non-hotfix only)
170
+
-----------------------------------------------
170
171
171
172
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
172
173
@@ -312,6 +313,8 @@ Note that for milestones we use just the number without the "v" (e.g. "5.10.1").
312
313
313
314
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.
314
315
316
+
.. _base_image_post_release:
317
+
315
318
Update the Container Base Image Version Property
316
319
------------------------------------------------
317
320
@@ -325,12 +328,7 @@ Create a pull request and put it through code review, like usual. Give it a mile
325
328
326
329
For more background, see :ref:`base-image-supported-tags`. For an example, see https://github.com/IQSS/dataverse/pull/10896
327
330
328
-
Lift the Code Freeze and Encourage Developers to Update Their Branches
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
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).
388
401
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
It's now safe to lift the code freeze. We can start merging pull requests into the "develop" branch for the next release.
390
408
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