2
2
3
3
Start from a clean checkout at ` main ` .
4
4
5
- Before running through the release it's good to run the build and the tests locally, and make sure CI is passing. You can
6
- also test-drive the commit in an existing Bazel workspace to sanity check functionality.
5
+ Before running through the release it's good to run the build and the tests
6
+ locally, and make sure CI is passing. You can also test-drive the commit in an
7
+ existing Bazel workspace to sanity check functionality.
7
8
8
9
## Releasing from HEAD
9
10
11
+ These are the steps for a regularly scheduled release from HEAD.
12
+
10
13
### Steps
14
+
11
15
1 . [ Determine the next semantic version number] ( #determining-semantic-version ) .
12
16
1 . Update CHANGELOG.md: replace the ` v0-0-0 ` and ` 0.0.0 ` with ` X.Y.0 ` .
13
17
1 . Replace ` VERSION_NEXT_* ` strings with ` X.Y.0 ` .
@@ -16,12 +20,26 @@ also test-drive the commit in an existing Bazel workspace to sanity check functi
16
20
```
17
21
git branch --no-track release/X.Y upstream/main && git push upstream release/X.Y
18
22
```
19
- 1 . Create a tag and push:
23
+
24
+ The next step is to create tags to trigger release workflow, ** however**
25
+ we start by using release candidate tags (` X.Y.Z-rcN ` ) before tagging the
26
+ final release (` X.Y.Z ` ).
27
+
28
+ 1 . Create release candidate tag and push. Increment ` N ` for each rc.
29
+ ```
30
+ git tag X.Y.0-rcN upstream/release/X.Y && git push upstream --tags
31
+ ```
32
+ 2 . Announce the RC release: see [ Announcing Releases]
33
+ 3 . Wait a week for feedback.
34
+ * Follow [ Patch release with cherry picks] to pull bug fixes into the
35
+ release branch.
36
+ * Repeat the RC tagging step, incrementing ` N ` .
37
+ 4 . Finally, tag the final release tag:
20
38
```
21
39
git tag X.Y.0 upstream/release/X.Y && git push upstream --tags
22
40
```
23
- ** NOTE: ** Pushing the tag will trigger release automation.
24
- 1 . Release automation will create a GitHub release and BCR pull request.
41
+
42
+ Release automation will create a GitHub release and BCR pull request.
25
43
26
44
### Determining Semantic Version
27
45
55
73
Once the release branch is in the desired state, use ` git tag ` to tag it, as
56
74
done with a release from head. Release automation will do the rest.
57
75
58
- ### After release creation in Github
76
+ ### Announcing releases
77
+
78
+ We announce releases in the #python channel in the Bazel slack
79
+ (bazelbuild.slack.com). Here's a template:
80
+
81
+ ```
82
+ Greetings Pythonistas,
83
+
84
+ rules_python X.Y.Z-rcN is now available
85
+ Changelog: https://rules-python.readthedocs.io/en/X.Y.Z-rcN/changelog.html#vX-Y-Z
86
+
87
+ It will be promoted to stable next week, pending feedback.
88
+ ```
59
89
60
- 1 . Announce the release in the #python channel in the Bazel slack (bazelbuild.slack.com).
90
+ It's traditional to include notable changes from the changelog, but not
91
+ required.
61
92
62
93
## Secrets
63
94
0 commit comments