Project

General

Profile

Release Checklist » History » Revision 22

Revision 21 (Peter Amstutz, 11/19/2021 03:15 PM) → Revision 22/69 (Peter Amstutz, 11/19/2021 03:57 PM)

h1. Release Checklist 

 Pre-process: 

 # Create an issue for the release. 
 # Add each of the following steps (starting at step 1) as tasks with the step number in the subject 
 # Assign each task 
 # The current task goes into the "In Progress" column 
 # When the current task is finished, move it to resolved, and move the next task into "In Progress" 
 # Notify the assignee of the next task that it is ready to begin 

 Meta-process: 

 # Periodically review this documented process reflects our actual process & update it 
 # When steps are added/changed/rearranged/removed, be use to update the TASKS file used by the Arvados release tool: https://dev.arvados.org/projects/arvados/repository/arvados-dev/revisions/main/show/cmd/art 

 |_.Step|_.Who|_.What| 
 |0|engineering|Write lots of great code, build new features| 
 |1|engineering|Ensure that the entire automated testing pipeline is passing on Jenkins.    Also review |1|engineering|Go through https://dev.arvados.org/projects/arvados/wiki/Manual_testing_plan| 
 |2|engineering|Prepare release branch.    For major releases this means branching a new @X.Y-dev@ from main.    For minor releases, this means cherry-picking features onto the existing @X.Y-dev@ branch.| 
 |3|release eng|Update the "Upgrading Arvados and Release notes" doc page on both @main@ and the X.Y-dev branch ready for release branch with the version and date of the release. candidate. 
 On the @X.Y-dev@ branch, update Update these files to refer to use the release branch or version instead of @main@: main:  
 @tools/salt-install/provision.sh@ 
 @tools/arvbox/bin/arvbox@ 
 @doc/install/arvbox.html.textile.liquid@| 
 |4|engineering|Review |3|engineering|Review release branch, make sure all commits that need to be in the release are in the release, make sure that dependencies of Python and Ruby packages have upper version pins (to ensure that 3rd party dependencies updated post-stable-release don't break our code)| 
 |5|product |4|product mgr|Create a redmine release for the next patch release beyond this one so that future bugfixes can be assigned to it, if there's a chance that such a release will be made.| 
 |6|product |5|product mgr|Write release notes and publish them to www-dev site: https://www-dev.arvados.org/releases/| 
 |7|everyone|Review |6|everyone|Review release notes| 
 |8|release eng|Build release candidate packages with version "X.Y.Z~rcN-1" using the jenkins jobs "build-and-publish-rc-packages":https://ci.arvados.org/view/Release%20Pipeline/job/build-and-publish-rc-packages/ and "workbench2-build-release-candidate-package":https://ci.arvados.org/view/Release%20Pipeline/job/workbench2-build-release-candidate-package/ .    Record the "arvados" and "arvados-workbench2" |7|engineering|Record git commits that were used, as well as links will be used to build the jenkins runs on a comment on release following the instructions at https://dev.arvados.org/projects/ops/wiki/Arvados_Release_lifecycle#Cut-off-commits-Choosing-a-Version| 
 |8|release eng|Build release ticket.| candidate packages| 
 |9|ops|Test installer formula / provision scripts with RC packages - [[Installer development process]] ^1^| process]]| 
 |10|ops|Deploy RC packages to playground ^1^| 
 |11|bfx|Run "bam-to-vcf pipeline":https://dev.arvados.org/issues/17049#note-7 on playground ^1^| 
 |12|product mgr|Approve mgr|Sign off on last built RC for as the release| 
 |13|release eng|Build final release packages with version "X.Y.Z-1" using the jenkins jobs "build-and-publish-rc-packages":https://ci.arvados.org/view/Release%20Pipeline/job/build-and-publish-rc-packages/ and "workbench2-build-release-candidate-package":https://ci.arvados.org/view/Release%20Pipeline/job/workbench2-build-release-candidate-package/ .    Record the "arvados" and "arvados-workbench2" git commits that were used, as well as links to the jenkins runs on a comment on the release ticket.| 
 |14|release eng|Push packages to stable repos using "publish-packages-to-stable-repo":https://ci.arvados.org/view/Release%20Pipeline/job/publish-packages-to-stable-repo/ (see also https://dev.arvados.org/projects/ops/wiki/Promoting_Packages_to_Stable)| (https://dev.arvados.org/projects/ops/wiki/Promoting_Packages_to_Stable)| 
 |15|release |14|release eng|Publish arvados/jobs docker image using "docker-jobs-image-release":https://ci.arvados.org/view/Release%20Pipeline/job/docker-jobs-image-release/ , image, Python packages and Ruby gems using "build-publish-packages-python-ruby":https://ci.arvados.org/view/Release%20Pipeline/job/build-publish-packages-python-ruby/ | gems| 
 |16|release eng|? Publish |15|release eng|Publish formula / installer for the release| 
 |17|release |16|release eng|Publish arvados/arvbox-demo docker image using "build-and-release-arvbox-image":https://ci.arvados.org/view/Release%20Pipeline/job/build-and-release-arvbox-image/| with https://ci.arvados.org/view/Release%20Pipeline/job/build-and-release-arvbox-image/| 
 |18|release |17|release eng|Tag the commits in each repo used to build the release in git. Please create an annotated tag, with this message: "Release X.Y.Z, release notes at https://arvados.org/release-notes/X.Y.Z/". That will make https://github.com/arvados/arvados/releases look really good.| 
 |18|release eng|(major releases only, unless there is a change worthy in the point release) Update the "Upgrading Arvados and Release notes" doc page with the title and date of the release| 
 |19|release eng|Ensure new release is published on https://doc.arvados.org ; ensure that release notes & any other materials are pointing to correct version of the docs.| 
 |20|product mgr|Merge mgr|Add release notes (step 6) from "develop" branch to "main" branch of @arvados-www@ git repository https://arvados.org/release-notes/X.Y.Z.html and check that https://arvados.org page is updated| Update release list at https://arvados.org| 
 |21|product mgr|"Send out email notifications":https://docs.google.com/spreadsheets/d/18uaUPQ1r2_sQH18JTiblkNFcq8gsFflRAGm8-wvtQi4/edit?usp=sharing , mgr|Send release notes to arvados and arvados-dev mailing list, tweet from the Arvados account, account about the new release, announce on the Discourse forum, gitter, notify customers, etc| 
 |22|release eng|For major releases: Duplicate eng|Duplicate the jenkins configuration for the "run-tests" jobs tests to versioned names (run-tests-X.Y) so that future point releases remain testable after @main@ master moves on| 

 ^1^ If issues are discovered requiring additional commits, increase in these steps, get a fix developed, reviewed and merged, and then update the release candidate version by one, ops ticket from step 3 with the relevant new git commit(s), notify ops, and and resume the checklist from step 7. 4.