Project

General

Profile

Release Checklist » History » Version 101

Brett Smith, 10/13/2025 01:24 PM
remove step 23 for arvbox

1 1 Peter Amstutz
h1. Release Checklist
2
3
Pre-process:
4
5
# Create an issue for the release.
6
# Add each of the following steps (starting at step 1) as tasks with the step number in the subject
7
# Assign each task
8
# The current task goes into the "In Progress" column
9
# When the current task is finished, move it to resolved, and move the next task into "In Progress"
10
# Notify the assignee of the next task that it is ready to begin
11
12 20 Peter Amstutz
Meta-process:
13
14 22 Peter Amstutz
# Periodically review this documented process reflects our actual process & update it
15 70 Brett Smith
# When steps are added/changed/rearranged/removed, be sure to update "@cmd/art/TASKS@ in the @arvados-dev@ repository":https://dev.arvados.org/projects/arvados/repository/arvados-dev/revisions/main/show/cmd/art.
16 20 Peter Amstutz
17 3 Peter Amstutz
|_.Step|_.Who|_.What|
18 70 Brett Smith
|0|engineering|Build new features, refine good code into great code|
19 73 Brett Smith
|1|ops|"Build a new tordo compute image":https://ci.arvados.org/view/All/job/packer-build-compute-image/ against the latest development packages.
20 91 Peter Amstutz
"Update the tordo configuration":https://dev.arvados.org/projects/ops/wiki/Updating_clusters and test it with a couple representative workflows (at least one bioinformatics workflow and one S3 download workflow).
21 75 Brett Smith
If everything works well, update version pins based on the versions installed in the new image. Update:
22 77 Brett Smith
* source:tools/ansible/roles/arvados_docker/files/arvados-docker.pref
23 78 Brett Smith
* source:tools/ansible/roles/compute_amd_rocm/defaults/main.yml (update @arvados_compute_amd_rocm_version@)
24 77 Brett Smith
* source:tools/ansible/roles/compute_nvidia/files/arvados-nvidia.pref
25 75 Brett Smith
|
26 74 Brett Smith
|2|engineering|Prepare release branch on the @arvados@ and @arvados-formula@ repositories.  For major releases, this means branching a new @X.Y-staging@ from main.  For minor releases, this means cherry-picking features onto the existing @X.Y-staging@ branch.  Ensure that Redmine issues for features or bugfixes that are appearing for the first time in this version are associated with the correct release (for major releases, use @art redmine issues find-and-associate@).|
27 81 Peter Amstutz
|3|engineering|Ensure that the release staging branch passes automated tests on Jenkins.
28 1 Peter Amstutz
* "developer-run-tests":https://ci.arvados.org/job/developer-run-tests/
29
* "developer-run-tests-doc-sdk-java-R":https://ci.arvados.org/job/developer-run-tests-doc-sdk-java-R/
30 98 Brett Smith
* "arvados-cwl-conformance-tests":https://ci.arvados.org/job/arvados-cwl-conformance-tests/
31
* "run-tests-cwl-tests":https://ci.arvados.org/job/run-tests-cwl-tests/ (against tordo)
32 97 Brett Smith
|
33 1 Peter Amstutz
|4|engineering|Review release branch to make sure all commits that need to be in the release are in the release.  If new commits are added, resume checklist from step 3.|
34 97 Brett Smith
|5|product mgr|Write release notes and publish them "on the www-dev site":https://www-dev.arvados.org/releases/.|
35 1 Peter Amstutz
|6|everyone|Review release notes|
36
|7|product mgr|Create a Redmine release for the next patch release after the current one.|
37 81 Peter Amstutz
|8|release eng|Build release candidate packages with version "X.Y.Z~rcN-1" using the Jenkins job "build-and-publish-rc-packages":https://ci.arvados.org/job/build-and-publish-rc-packages/.  Add a comment on the release ticket identifying the Git commit hash used for the build, and link to your Jenkins run.|
38
|9|release eng|Publish release candidate @arvados/jobs@ Docker image using "docker-jobs-image-release":https://ci.arvados.org/job/docker-jobs-image-release/|
39 97 Brett Smith
|10|ops|Test installer formula / provision scripts with RC packages. Run the "test-provision Jenkins job":https://ci.arvados.org/job/test-provision/ where @git_hash@ is your @X.Y-staging@ commit and @RELEASE@ is @testing@.|
40
|11|ops|Update pirca to use the RC packages: "build a new compute image":https://ci.arvados.org/job/packer-build-compute-image/, "update the Arvados version in Salt":https://dev.arvados.org/projects/ops/wiki/Updating_clusters and deploy.
41
After Salt updates the cluster, check that your new version deployed successfully by running @arvados-server version@ and then @arvados-server check@ to verify other running services have the same version.|
42 99 Brett Smith
|12|bfx|Run "CWL conformance tests":https://ci.arvados.org/view/CWL/job/run-tests-cwl-tests/ against pirca on Jenkins and "fastq-to-gvcf pipeline":https://workbench.pirca.arvadosapi.com/workflows/pirca-7fd4e-ut5n6r2ydl6o6kj on pirca ([[more about running fastq-to-gvcf]]).
43 95 Brett Smith
After the workflow succeeds, check the versions reported at the top of the workflow logs to verify it ran your RC for crunch-run, arv-mount, and a-c-r.|
44 1 Peter Amstutz
|13|engineering|Perform final manual testing based on risk assessment, the release notes and "manual testing plan":https://dev.arvados.org/projects/arvados/wiki/Manual_testing_plan.  This should involve at least a "smell check" to confirm that key features, improvements or bug fixes intended to appear in the release are present and behave as intended.|
45
|14|product mgr|Approve RC for release|
46 97 Brett Smith
|15|release eng|Publish Ruby gems using "build-publish-packages-python-ruby":https://ci.arvados.org/job/build-publish-packages-python-ruby/ with *only* the @BUILD_RUBY@ box checked.|
47 81 Peter Amstutz
|16|release eng|On the @X.Y-staging@ branch, update these files to refer to the release version: 
48
* @doc/admin/upgrading.html.textile.liquid@ the "Upgrading Arvados and Release notes" doc page with the version and date of the release.
49 100 Brett Smith
* @contrib/arvados-bootstrap/pyproject.toml@, update @project.version@ and @project.dependencies@
50
* @contrib/R-sdk/DESCRIPTION@,  update @Version:@
51 1 Peter Amstutz
* @services/api/Gemfile@ to depend on the newly published Arvados gem and run @bundle install@ to update @Gemfile.lock@
52 85 Peter Amstutz
* @tools/ansible/roles/arvados_apt/defaults/main.yml@ update @arvados_pin_version@
53 100 Brett Smith
|
54 85 Peter Amstutz
|17|release eng|Build final release packages with version "X.Y.Z-1" using the Jenkins job "build-and-publish-rc-packages":https://ci.arvados.org/job/build-and-publish-rc-packages/. Add a comment on the release ticket identifying the Git commit hash used for the build, and link to your Jenkins run.|
55 81 Peter Amstutz
|18|release eng|Publish stable release @arvados/jobs@ Docker image using "docker-jobs-image-release":https://ci.arvados.org/job/docker-jobs-image-release/|
56 97 Brett Smith
|19|release eng|Push packages to stable repos using "publish-packages-to-stable-repo":https://ci.arvados.org/job/publish-packages-to-stable-repo/ ("more info":https://dev.arvados.org/projects/ops/wiki/Promoting_Packages_to_Stable)|
57
|20|release eng|Publish Python packages using "build-publish-packages-python-ruby":https://ci.arvados.org/job/build-publish-packages-python-ruby/ with *only* the @BUILD_PYTHON@ box checked.|
58 81 Peter Amstutz
|21|release eng|Publish Java package using "build-java-sdk":https://ci.arvados.org/job/build-java-sdk/ and following [[Releasing Java SDK packages]]|
59
|22|release eng|Publish R package using "build-package-r":https://ci.arvados.org/job/build-package-r/|
60 101 Brett Smith
|23|release eng|Tag the commits in each repo used to build the release in Git. Create an annotated tag (@git tag --annotate@) with a message like "Release notes at https://arvados.org/release-notes/X.Y.Z/" That makes the "GitHub releases page":https://github.com/arvados/arvados/releases look good. See "GitHub documentation for more details about how to automate releases":https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes.
61 1 Peter Amstutz
Create or fast forward the @X.Y-release@ branch to match @X.Y-staging@.
62 74 Brett Smith
Cherry-pick the upgrade notes commit (from step 2) onto @main@.|
63 101 Brett Smith
|24|release eng|Ensure new release is published on https://doc.arvados.org/.
64 80 Peter Amstutz
Ensure that release notes & any other materials are pointing to correct version of the docs.
65
(If anything goes wrong, see https://dev.arvados.org/projects/arvados-private/wiki/Docarvadosorg_deployment)|
66 101 Brett Smith
|25|ops|Update pirca and jutro to the new stable release: "build new compute images":https://ci.arvados.org/job/packer-build-compute-image/, "update the Arvados version in Salt":https://dev.arvados.org/projects/ops/wiki/Updating_clusters and deploy.|
67
|26|product mgr|Merge release notes (step 6) from "develop" branch to "main" branch of the @arvados-www@ Git repository and check that the https://arvados.org front page is updated|
68
|27|product mgr|Send out the release notes via MailChimp, tweet from the Arvados account, announce on the Discourse forum, Matrix, etc.|
69
|28|release eng|In Jenkins:
70 87 Peter Amstutz
* Go to "Job Config History" on "developer-run-tests":https://ci.arvados.org/view/Developer/job/developer-run-tests/jobConfigHistory/ and "developer-run-tests-doc-sdk-java-R":https://ci.arvados.org/view/Developer/job/developer-run-tests-doc-sdk-java-R/jobConfigHistory/ and record on the release ticket the timestamp of the configuration used to test the release
71
* Go to "Manage Jenkins > Clouds > gce2 > Configure":https://ci.arvados.org/manage/cloud/gce-gce2/configure and record the VM image tagged "tests" used for jenkins workers to run the tests for the release (should be something like jenkins-image-arvados-tests-YYYYMMDDHHMMSS) on the release ticket
72
* Go to https://ci.arvados.org/view/Packer%20Images/job/packer-build-jenkins-image-arvados-tests/ and record on the release ticket the jenkins job used to build the above VM image.|
73 101 Brett Smith
|29|release eng|Add the release to "doi:10.5281/zenodo.6382942":https://doi.org/10.5281/zenodo.6382942
74 1 Peter Amstutz
[[Updating Zenodo Version of Arvados after Release]]
75
https://zenodo.org/record/6382943|