Skip to content

Commit 79d42fe

Browse files
authored
Merge pull request #12262 from IQSS/making-releases-post-6.10.1
update making release docs post 6.10.1
2 parents cd01fd5 + 19dbc68 commit 79d42fe

1 file changed

Lines changed: 39 additions & 68 deletions

File tree

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

Lines changed: 39 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -93,30 +93,27 @@ Developers express the need for an addition to release notes by creating a "rele
9393
The task at or near release time is to collect these snippets into a single file.
9494

9595
- Find the issue in GitHub that tracks the work of creating release notes for the upcoming release.
96-
- Create a branch, add a .md file for the release (ex. 5.10.1 Release Notes) in ``/doc/release-notes`` and write the release notes, making sure to pull content from the release note snippets mentioned above. Snippets may not include any issue number or pull request number in the text so be sure to copy the number from the filename of the snippet into the final release note.
96+
- Create a branch, add a .md file for the release (ex. 6.10.1 Release Notes) in ``/doc/release-notes`` and write the release notes, making sure to pull content from the release note snippets mentioned above. Snippets may not include any issue number or pull request number in the text so be sure to copy the number from the filename of the snippet into the final release note.
9797
- Delete (``git rm``) the release note snippets as the content is added to the main release notes file.
9898
- 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. These instructions are required for the next steps (deploying to various environments) so try to prioritize them over finding just the right words in release highlights (which you can do later).
9999
- Make a pull request. Here's an example: https://github.com/IQSS/dataverse/pull/11613
100100
- 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.
101101

102102
For a hotfix, don't worry about release notes yet.
103103

104-
Deploy Release Candidate to Internal
105-
------------------------------------
104+
Build Release Candidate
105+
-----------------------
106106

107107
|dedicated|
108108

109-
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.
110-
111-
Go to https://jenkins.dataverse.org/job/IQSS_Dataverse_Internal/ and make the following adjustments to the config:
109+
Go to https://github.com/IQSS/dataverse/actions/workflows/generate_war_file.yml click "run workflow". For a regular release, make sure the branch is "develop". For a hotfix, you will use whatever branch name is used for the hotfix. Leave the custom label blank and click "run workflow". This will create an action that should result in a zip file. Inside that zip is another zip that contains the war file.
112110

113-
- Repository URL: ``https://github.com/IQSS/dataverse.git``
114-
- Branch Specifier (blank for 'any'): ``*/develop``
115-
- Execute shell: Update version in filenames to ``dataverse-5.10.war`` (for example)
111+
Deploy Release Candidate to Internal
112+
------------------------------------
116113

117-
Click "Save" then "Build Now". The release candidate war file will be available at https://jenkins.dataverse.org/job/IQSS_Dataverse_Internal/ws/target/
114+
|dedicated|
118115

119-
ssh into the dataverse-internal server and download the release candidate war file from the URL above.
116+
ssh into the dataverse-internal server and download the release candidate war file you built above.
120117

121118
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.)
122119

@@ -197,7 +194,7 @@ Create a release branch named after the issue that tracks bumping the version wi
197194

198195
Make the following changes in the release branch.
199196

200-
Increment the version number to the milestone (e.g. 5.10.1) in the following two files:
197+
Increment the version number to the milestone (e.g. 6.10.1) in the following two files:
201198

202199
- modules/dataverse-parent/pom.xml -> ``<properties>`` -> ``<revision>`` (e.g. `pom.xml commit <https://github.com/IQSS/dataverse/commit/3943aa0>`_)
203200
- doc/sphinx-guides/source/conf.py
@@ -243,7 +240,7 @@ If the GitHub UI tells you there would be merge conflicts, something has gone ho
243240
Add Milestone to Pull Requests and Issues
244241
-----------------------------------------
245242

246-
Often someone is making sure that the proper milestone (e.g. 5.10.1) is being applied to pull requests and issues, but sometimes this falls between the cracks.
243+
Often someone is making sure that the proper milestone (e.g. 6.10.1) is being applied to pull requests and issues, but sometimes this falls between the cracks.
247244

248245
Check for merged pull requests that have no milestone by going to https://github.com/IQSS/dataverse/pulls and entering `is:pr is:merged no:milestone <https://github.com/IQSS/dataverse/pulls?q=is%3Apr+is%3Amerged+no%3Amilestone>`_ as a query. If you find any, first check if those pull requests are against open pull requests. If so, do nothing. Otherwise, add the milestone to the pull request and any issues it closes. This includes the "merge develop into master" pull request above.
249246

@@ -267,86 +264,60 @@ Go to https://jenkins.dataverse.org/job/guides.dataverse.org/ and make the follo
267264

268265
- Repository URL: ``https://github.com/IQSS/dataverse.git``
269266
- Branch Specifier (blank for 'any'): ``*/master``
270-
- ``VERSION`` (under "Build Steps"): bump to the next release. Don't prepend a "v". Use ``5.10.1`` (for example)
267+
- ``VERSION`` (under "Build Steps"): bump to the next release. Don't prepend a "v". Use ``6.10.1`` (for example)
271268

272269
Click "Save" then "Build Now".
273270

274-
Make sure the guides directory appears in the expected location such as https://guides.dataverse.org/en/5.10.1/
271+
Make sure the guides directory appears in the expected location such as https://guides.dataverse.org/en/6.10.1/
275272

276273
As described below, we'll soon point the "latest" symlink to that new directory.
277274

278-
Create a Draft Release on GitHub
279-
--------------------------------
280-
281-
Go to https://github.com/IQSS/dataverse/releases/new to start creating a draft release.
282-
283-
- Under "Choose a tag" you will be creating a new tag. Have it start with a "v" such as ``v5.10.1``. Click "Create new tag on publish".
284-
- Under "Target", choose "master". This commit will appear in ``/api/info/version`` from a running installation.
285-
- Under "Release title" use the same name as the tag such as ``v5.10.1``.
286-
- In the description, copy and paste the content from the release notes .md file created in the "Write Release Notes" steps above.
287-
- Click "Save draft" because we do not want to publish the release yet.
288-
289-
At this point you can send around the draft release for any final feedback. Links to the guides for this release should be working now, since you build them above.
290-
291-
Make corrections to the draft, if necessary. It will be out of sync with the .md file, but that's ok (`#7988 <https://github.com/IQSS/dataverse/issues/7988>`_ is tracking this).
292-
293275
.. _run-build-create-war:
294276

295277
Run a Build to Create the War File
296278
----------------------------------
297279

298-
ssh into the dataverse-internal server and undeploy the current war file.
299-
300-
Go to https://jenkins.dataverse.org/job/IQSS_Dataverse_Internal/ and make the following adjustments to the config:
301-
302-
- Repository URL: ``https://github.com/IQSS/dataverse.git``
303-
- Branch Specifier (blank for 'any'): ``*/master``
304-
- Execute shell: Update version in filenames to ``dataverse-5.10.1.war`` (for example)
280+
Go to https://github.com/IQSS/dataverse/actions/workflows/generate_war_file.yml click "run workflow". For a regular release, change the branch to "master". For a hotfix release, use whatever branch name is used for the hotfix. Leave the custom label blank and click "run workflow". This will create an action that should result in a zip file. Inside that zip is another zip that contains the war file.
305281

306-
Click "Save" then "Build Now".
282+
The build number will appear in ``/api/info/version`` (along with the commit mentioned above) from a running installation (e.g. ``{"version":"6.10.1","build":"master-300d5b5"}``).
307283

308-
This will build the war file, and then automatically deploy it on dataverse-internal. Verify that the application has deployed successfully.
284+
Build Installer (dvinstall.zip)
285+
-------------------------------
309286

310-
The build number will appear in ``/api/info/version`` (along with the commit mentioned above) from a running installation (e.g. ``{"version":"5.10.1","build":"907-b844672``).
287+
In a git checkout of the source, switch to the master branch and pull the latest.
311288

312-
Note that the build number comes from the following script in an early Jenkins build step...
289+
Copy the war file from the previous step (shown in ``/tmp`` in the example below ) to the ``target`` directory in the root of the repo (create the ``target`` directory, if necessary):
313290

314291
.. code-block:: bash
315292
316-
COMMIT_SHA1=`echo $GIT_COMMIT | cut -c-7`
317-
echo "build.number=${BUILD_NUMBER}-${COMMIT_SHA1}" > $WORKSPACE/src/main/java/BuildNumber.properties
293+
mkdir target
294+
cp /tmp/dataverse-6.10.1.war target
318295
319-
... but we can explore alternative methods of specifying the build number, as described in :ref:`auto-custom-build-number`.
320-
321-
Build Installer (dvinstall.zip)
322-
-------------------------------
296+
Then, create the installer:
323297

324-
ssh into the dataverse-internal server and do the following:
298+
.. code-block:: bash
325299
326-
- In a git checkout of the dataverse source switch to the master branch and pull the latest.
327-
- Copy the war file from the previous step to the ``target`` directory in the root of the repo (create it, if necessary):
328-
- ``mkdir target``
329-
- ``cp /tmp/dataverse-5.10.1.war target``
330-
- ``cd scripts/installer``
331-
- ``make clean``
332-
- ``make``
300+
cd scripts/installer
301+
make clean
302+
make
333303
334304
A zip file called ``dvinstall.zip`` should be produced.
335305

336-
Alternatively, you can build the installer on your own dev. instance. But make sure you use the war file produced in the step above, not a war file build from master on your own system! That's because we want the released application war file to contain the build number described above. Download the war file directly from Jenkins, or from dataverse-internal.
306+
Create a Draft Release on GitHub
307+
--------------------------------
337308

338-
Make Artifacts Available for Download
339-
-------------------------------------
309+
Go to https://github.com/IQSS/dataverse/releases/new to start creating a draft release.
340310

341-
Upload the following artifacts to the draft release you created:
311+
- Under "Select tag" you will be creating a new tag. Have it start with a "v" such as ``v6.10.1``. Click "Create new tag". Don't worry, the tag won't be created until you publish.
312+
- Under "Target", choose "master". This commit will appear in ``/api/info/version`` from a running installation.
313+
- Under "Release title" use the same name as the tag such as ``v6.10.1``.
314+
- In the description, copy and paste the content from the release notes .md file created in the "Write Release Notes" steps above.
315+
- Under "attach binaries", upload the war file and installer you created above.
316+
- Click "Save draft" because we do not want to publish the release yet.
342317

343-
- the war file (e.g. ``dataverse-5.10.1.war``, from above)
344-
- the installer (``dvinstall.zip``, from above)
345-
- other files as needed:
318+
At this point you can send around the draft release for any final feedback. Links to the guides for this release should be working now, since you build them above.
346319

347-
- updated Solr schema
348-
- metadata block tsv files
349-
- config files
320+
Make corrections to the draft, if necessary. It will be out of sync with the .md file, but that's ok (`#7988 <https://github.com/IQSS/dataverse/issues/7988>`_ is tracking this).
350321

351322
Publish the Release
352323
-------------------
@@ -356,14 +327,14 @@ Click the "Publish release" button.
356327
Update Guides Link
357328
------------------
358329

359-
"latest" at https://guides.dataverse.org/en/latest/ is a symlink to the directory with the latest release. That directory (e.g. ``5.10.1``) was put into place by the Jenkins "guides" job described above.
330+
"latest" at https://guides.dataverse.org/en/latest/ is a symlink to the directory with the latest release. That directory (e.g. ``6.10.1``) was put into place by the Jenkins "guides" job described above.
360331

361332
ssh into the guides server and update the symlink to point to the latest release, as in the example below.
362333

363334
.. code-block:: bash
364335
365336
cd /var/www/html/en
366-
ln -s 5.10.1 latest
337+
ln -s 6.10.1 latest
367338
368339
This step could be done before publishing the release if you'd like to double check that links in the release notes work.
369340

@@ -374,7 +345,7 @@ You can find our milestones at https://github.com/IQSS/dataverse/milestones
374345

375346
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.
376347

377-
Note that for milestones we use just the number without the "v" (e.g. "5.10.1").
348+
Note that for milestones we use just the number without the "v" (e.g. "6.10.1").
378349

379350
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.
380351

0 commit comments

Comments
 (0)