Project

Profile

Help

Pulp 2 Release Planning » History » Sprint/Milestone 26

ipanova@redhat.com, 02/26/2020 10:57 AM

1 1 bmbouter
# Pulp 2 Release Planning
2
3
This serves as a step-by-step guide to coordinating a Pulp 2 release. This is mostly about facilitating the required communication to keep everyone on the same page.
4
5 8 bmbouter
### Preparing a release
6
7 1 bmbouter
1\. Identify that a release needs to happen via pulp-dev. This can be something that is requested by anyone who wants to release bits that have been merged.
8
9 10 bmbouter
2\. Create a Release Planning Page specific for that release. For example here is a [Z Release Status](https://pulp.plan.io/projects/pulp/wiki/2153_Release_Status) page and a [Y Release Status](https://pulp.plan.io/projects/pulp/wiki/2160_Release_Status) page. At a minimum it should contain the following:
10 1 bmbouter
11
  - dev freeze date
12 25 ttereshc
  - tentative beta date (only for Z releases)
13
  - tentative RC date (only for Y releases)
14 1 bmbouter
  - tentative GA date
15
16
3\. Link to the new page made in step (2) from the overall [Release Schedule](https://pulp.plan.io/projects/pulp/wiki/Release_Schedule).
17
18
4\. Communicate the dev feeze datetime to pulp-dev with a link to the new release schedule.
19 2 bmbouter
20 4 bmbouter
5\. Make sure the version being planned has a 'Platform Release' entry in Redmine's custom field. You can edit this here: https://pulp.plan.io/custom_fields/4/edit
21
22 5 bmbouter
6\. Update the relevant Redmine filter for the [next bugfix](https://pulp.plan.io/projects/pulp/issues?query_id=59) or [next feature](https://pulp.plan.io/projects/pulp/issues?query_id=61) release. Update **both** the name and the filter value. These queries are important as they show the set of issues for the upcoming release.
23 2 bmbouter
24
### Dev Freeze
25
26
To coordinate the dev freeze you should send 2 emails to the pulp-dev list.
27
28
1\. 24 hours (or earlier) prior to dev feeze it's good to send a reminder to pulp-dev. Here is [an example](https://www.redhat.com/archives/pulp-dev/2018-February/msg00027.html)  
29
2\. After the freeze is done you should send an email with a link to the Redmine query showing the list of fixes and features in that release. Here is [an example](https://www.redhat.com/archives/pulp-dev/2018-February/msg00042.html) This email serves also to notify release engineering and QE that development is done for that release and those are the issues.
30
31 23 jortel@redhat.com
Besides sending email, after the dev freeze occurs, you need to update the Release Schedule:
32 2 bmbouter
33
1\. strikethrough the dev freeze date since it occurred  
34 22 jortel@redhat.com
2\. Talk with @pcreech or @ehelms to update the page with a firm (not-tentative) beta date.  
35
3\. Add a link to the redmine query for issue to be included.
36 3 bmbouter
37 26 ipanova@redhat.com
Before Beta/RC create/update release notes for every project which is a part of that release. It is good to submit them against master and include them into the cherrypicks.
38 19 ttereshc
39 11 bmbouter
### Beta Announcing
40
41
To be ready to announce a Beta, you must first receive an ack that the beta is built and ready to be published from the build team. Prior to acking that it's ready, the built team works with QE to review automated tests ensuring that the beta can be released. Once the build team says it's ready, do the following:
42
43
1\. Move all of the issues from MODIFIED to ON_QA  
44
2\. Trigger the docs build to ensure the beta's docs are pushed to the right place  
45
3\. Create the beta announcements so you're ready to send them. This is a subset of the GA process. Specifically for Betas we only: (a) trigger the docs build, (b) email announce, (c) twitter announce. We do not blog post or update IRC for beta announcements.  
46 14 bmbouter
4\. Add the Beta to the list of Beta/RC on [this page](https://pulpproject.org/docs/) with a PR like [this one](https://github.com/pulp/pulpproject.org/pull/114) You can merge to that without a review if you are handling the release.  
47
5\. Ask the build team to push the bits to the testing repos and wait for the to ack that they did  
48
6\. Publish and send out the announcements  
49 25 ttereshc
7\. Strike through the Beta on the Wiki Release page and ensure that the next date (GA) is firm and accurate not tentative
50 11 bmbouter
51 15 bmbouter
### Release Candidate Announcing
52
53
To be ready to announce a RC, you must first receive an ack that the RC is built and ready to be published from the build team. Prior to acking that it's ready, the built team works with QE to review automated tests ensuring that the RC can be released. Once the build team says it's ready, do the following:
54
55
1\. Trigger the docs build to ensure the RC's docs are pushed to the right place  
56
2\. Create the RC announcements so you're ready to send them. This is a subset of the GA process. Specifically for RC we only: (a) trigger the docs build, (b) email announce, (c) twitter announce. We do not blog post or update IRC for beta announcements.  
57
3\. Add the RC to the list of Beta/RC on [this page](https://pulpproject.org/docs/) with a PR like [this one](https://github.com/pulp/pulpproject.org/pull/114) You can merge to that without a review if you are handling the release.  
58
4\. Ask the build team to push the bits to the testing repos and wait for the to ack that they did  
59
5\. Publish and send out the announcements  
60 25 ttereshc
6 Strike through the RC on the Wiki Release page and ensure that the next date (GA) is firm and accurate not tentative
61 15 bmbouter
62 11 bmbouter
### GA Announcing
63 1 bmbouter
64 6 bmbouter
On GA release day, the build team will build the final assets and work with QE to have them tested. Once they are ready a developer needs to trigger a final docs build and then can send the final announcements. There are several announcements: email, blog, twitter, irc, wiki. For the blog you'll need merge rights to the [github.com/pulp/pulpproject.org/](https://github.com/pulp/pulpproject.org/) repo. For twitter, you'll need the pulpproj twitter credentials, or know someone who can post. For irc updating you'll need to become an op in #pulp or know someone who can.
65 5 bmbouter
66 20 ttereshc
#### Update the docs configs in pulp/pulp 2-master branch.
67 1 bmbouter
68 25 ttereshc
1\. In case of a new Y release create new config like [this](https://github.com/pulp/pulp/pull/3593) at the RC stage and update at later stages accordingly.  
69 20 ttereshc
In case of a new Z release update that config accordingly at all stages.
70 16 bmbouter
71 20 ttereshc
2\. In case of a new Y release, [update the latest version of the docs](https://github.com/pulp/pulp/pull/3782) and [update the supported releases](https://github.com/pulp/pulp-ci/pull/618), so the warning that new docs are from unsupported version will go away.
72 1 bmbouter
73 20 ttereshc
#### Triggering docs build
74 1 bmbouter
75 24 ttereshc
0\. Ensure the correct version/release is set in [the sphinx config](https://github.com/pulp/pulp/blob/2.19-release/docs/conf.py#L64-L66) on the **release branch**, e.g. 2.19-release. If it's not, talk to the build team to figure out if you should still wait or if you should change it yourself with a PR.
76
77 20 ttereshc
Use custom travis build to trigger the build:
78 1 bmbouter
79 20 ttereshc
1\. Trigger a build on this page: https://www.travis-ci.org/pulp/pulp/
80 16 bmbouter
81 20 ttereshc
  - In "More Options" choose "Trigger build"
82
  - Choose 2-master branch
83
  - Provide a custom config from [.travis.yml](https://github.com/pulp/pulp/blob/bc148c5bf351995cc5bfc2aa8c78fd7500b3b744/.travis.yml)
84
85
>   - remove [line with cron condition](https://github.com/pulp/pulp/blob/bc148c5bf351995cc5bfc2aa8c78fd7500b3b744/.travis.yml#L23)
86
>   - [change a branch for build-docs.sh](https://github.com/pulp/pulp/blob/bc148c5bf351995cc5bfc2aa8c78fd7500b3b744/.travis.yml#L22) to the release one, e.g. 2.18-release
87
>   - make sure copy-paste doesn't split long lines into multiple ones, that's a typical reason for a build to fail
88
89 16 bmbouter
2\. Ensure it passes  
90
3\. Load https://docs.pulpproject.org/ and ensure it shows the expected new version as the home page docs.
91 3 bmbouter
92 12 bmbouter
#### Move issues to CLOSED - CURRENTRELEASE
93
94
Use the query for all issues in the release to set all issues to CLOSED - CURRENTRELEASE
95
96 3 bmbouter
#### Email announce
97
98
Use the [community_announce.py](https://github.com/bmbouter/pulp_community_tools/blob/master/release_announce.py) tool to produce the email. Send this email to pulp-list
99
100
#### Blog announce
101
102
The same tool above produces a blog post. Post it using these instructions:
103
104
1\. Make a new .md file in the [\_posts](https://github.com/pulp/pulpproject.org/tree/gh-pages/\_posts) directory that is dated and named appropriately. e.g. 2018-02-27-pulp-2.15.2-generally-available.md
105
106
2\. Push a PR with that file and merge it yourself or ask someone in #pulp-dev to merge it. The blog posts do not require review. It should show up on pulpproject.org within a few minutes after you merge it.
107
108
#### Twitter Announce
109
110
Post on twitter. Feel free to personalize it, but the announce tool also produces a generic tweet for you.
111
112
1\. Get the tweet content from the announce tool  
113 1 bmbouter
2\. Add the link to the blog post on the end  
114 3 bmbouter
3\. Post to twitter as @pulpproj
115
116
#### Update IRC
117
118
1\. Become operator in #pulp with: /msg ChanServ op #pulp  
119 1 bmbouter
2\. Post your content by running something like: /topic http://pulpproject.org/ | Current Release: Pulp 2.15.2 | To report a bug: https://pulp.plan.io/projects/pulp/issues/new | Development chat: #pulp-dev | 2.15.2 Generally Available!  
120 6 bmbouter
3\. Take away your op priviledges with: /msg ChanServ op #pulp -username where username is your irc nick, e.g. bmbouter.
121
122
#### Update the Wiki Release Page
123
124 20 ttereshc
Strikethrough the release date since it's completed. A completed page should be fully struckthrough like [this one](https://pulp.plan.io/projects/pulp/wiki/2152_Release_Status)