Note: this are considered guidelines written by individual(s) and no way represents the process or stand of the CloudStack PMC.

Anybody who is acknowledged by the Apache CloudStack community and PMC, may become a release manager, however, the standard practice is that usually, a release manager needs to be at least a committer.

References/reading: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Releases

First Steps

Glad you want to become a release manager, here’s what you need to do:

Suggested Checklist for RMs and co-RMs

Learning by Example

Let’s take the recent (at the time of writing this) 4.15.1.0 to learn release management.

The target release, 4.15.1.0, milestone issues and PRs are tracked under:
https://github.com/apache/cloudstack/milestone/17

The release management follows the process as per:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+Procedure


Here’s what proposing yourself as a RM may look like: (on dev+users list)

https://markmail.org/message/xyuir55nppdvr4fq

Here’s what cutting a RC and starting vote looks like: (on dev+users list)

https://markmail.org/message/lactwcivi65z7zov

For building convenience packages, ask community who have access to Jenkins to build the packages and sync from the staging server to the community server: http://download.cloudstack.org; additional ask/get access to CI/CD (for example to run pkging and smoketests using the @blueorangutan bot)

NOTE: Before generating an RC ensure your locale is set to an English variation. For example: en_US.utf-8

Here’s what the final RC passing vote looks like: (on dev+users list)

https://markmail.org/message/im5jfhvkbxwj5suu

Here’s what working on release announcement/draft looks like (on marketing list):

https://markmail.org/message/bjtoqk2oprxng6fa

Here’s what announcing the release looks like:
https://markmail.org/message/2ypynih3li7bllrl

Suggested Checklist for Security Releases

Appendix: Additional steps on the Release Procedure

1) Set next version

After voting is concluded and the RC is merged into the codebase, then the next version has to be set, by invoking the set_next_version script. After executing this script, check the following files (most likely will need a manual fix): 

debian/changelog
tools/checkstyle/pom.xml
tools/docker/Dockerfile
tools/docker/Dockerfile.marvin
tools/marvin/setup.py

Do git grep OLD_VERSION to find any remaining occurrence of version not changed.


2) Build packages

Shapeblue Jenkins: build centos7, centos8, debian and suse15 packages on each step (using the RC commit SHA) and

3) ACS Docs for release notes:

After merging the documentation PR, for publishing changes head over to: https://readthedocs.org/projects/cloudstack-documentation/

https://readthedocs.org/projects/cloudstack-documentation/versions/

https://readthedocs.org/projects/cloudstack-documentation/builds/


4) ACS Project website

5) Github Release

Once you've the doc links live, create a Github release; for example:

https://github.com/apache/cloudstack/releases/tag/4.15.2.0


6) Announcement & Blog

Send draft to marketing@ first, when approved send to all MLs (individually): use your Apache email account and send the mail on plain text and use "https" links wherever possible

For announcement email, see example: https://markmail.org/thread/iemn7p7d62avhfrp

After sending email, copy/paste and publish the announcement on ACS blog: https://blogs.apache.org/cloudstack/


7) Update LTS timeline on cwiki

Update Release calendar section here, https://cwiki.apache.org/confluence/display/CLOUDSTACK/LTS