Skip to content

Commit 0f214b1

Browse files
Update RELEASING.md
1 parent 14d9ac1 commit 0f214b1

File tree

1 file changed

+74
-44
lines changed

1 file changed

+74
-44
lines changed

RELEASING.md

+74-44
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,74 @@
1-
# Typha release artifacts
2-
3-
Running the main `make release` target, described below, guides you
4-
through creating and distributing the following artifacts:
5-
6-
- A git tag for the release, annotated with the release note; ready to
7-
push to Github.
8-
- File `bin/calico-typha`; the static binary relase, which we attach to
9-
the GitHub release.
10-
- Docker container images: `calico/typha:$VERSION` and
11-
`quay.io/calico/typha:$VERSION` containing the Typha binaries. These
12-
are ready to push to Dockerhub and Quay.
13-
14-
# Typha release process
15-
16-
In a nutshell:
17-
18-
- We make a Typha release by creating and pushing an annotated Git tag. The
19-
name of the tag is the Typha version for that release, and the tag content is
20-
the release notes.
21-
22-
- There are no hardcoded version numbers anywhere in the codebase (except in
23-
packaging files, as described next). Instead, build processes generate a
24-
unique and monotonic Typha version number from the last Git tag and the
25-
number of commits since that tag - equally whether they are processing
26-
release code (i.e. there is a release tag on HEAD) or code in between
27-
releases, or since the last release.
28-
29-
So, to make a Typha release:
30-
31-
- Consider whether you should update the libcalico-go pin in glide.yaml.
32-
If you do so, you should run `make update-vendor` to update the
33-
`glide.lock` file. Be wary of any additional libraries that get
34-
revved if they aren't being pulled in by the libcalico-go update. At
35-
this late stage, it's safer to only update commit IDs that you're
36-
explicitly expecting (i.e. undo any changes that `make update-vendor`
37-
makes that you weren't expecting). If in doubt consult a Typha/glide
38-
expert!
39-
40-
- Run `make release VERSION=<new version>` and follow the instructions. This
41-
creates the annotated release tag, builds the release artifacts, and tells
42-
you what else you need to do to publish those. The release script
43-
expects a version number of the form "2.0.0", with optional suffixes
44-
such as "-beta1-rc3".
1+
# Release process
2+
3+
## Resulting artifacts
4+
5+
* `bin/calico-typha-amd64` - the static binary relase, which we attach to the GitHub release.
6+
7+
* `calico/typha:$VERSION` container images (and the quay.io variant)
8+
9+
## Preparing for a release
10+
11+
Checkout the branch from which you want to release. For a major or minor release,
12+
you will need to create a new `release-vX.Y` branch based on the target Calico version.
13+
14+
Make sure the branch is in a good state, e.g. Update any pins in glide.yaml, create PR, ensure tests pass and merge.
15+
16+
You should have no local changes and tests should be passing.
17+
18+
## Creating a patch release
19+
20+
1. Choose a version e.g. `v1.0.1`
21+
22+
1. Create the release. This will generate release notes, a tag, build the code, and verify the artifacts.
23+
24+
```
25+
make VERSION=v1.0.1 release
26+
```
27+
28+
1. Publish the release.
29+
30+
```
31+
make VERSION=v1.0.1 release-publish
32+
```
33+
34+
1. Publish the release on GitHub by following the link printed to screen.
35+
- Copy the tag description, press edit, and paste it into the release body.
36+
- Remove or clean up any messy commits - e.g. libcalico-go updates.
37+
- Title the release the same as the tag - e.g. `v1.0.1`
38+
- Press "Publish release"
39+
40+
1. If this is the latest stable release, perform the following step to publish the `latest` images. **Do not perform
41+
this step for patches to older releases.**
42+
43+
```
44+
make VERSION=<version> release-publish-latest
45+
```
46+
47+
## Creating a major / minor release
48+
49+
1. Choose a version e.g. `v1.1.0`
50+
51+
1. Create the release. This will generate release notes, a tag, build the code, and verify the artifacts.
52+
53+
```
54+
make VERSION=v1.1.0 PREVIOUS_RELEASE=v1.0.0 release
55+
```
56+
57+
1. Publish the release.
58+
59+
```
60+
make VERSION=v1.1.0 release-publish
61+
```
62+
63+
1. Publish the release on GitHub by following the link printed to screen.
64+
- Copy the tag description, press edit, and paste it into the release body.
65+
- Remove or clean up any messy commits - e.g. libcalico-go updates.
66+
- Title the release the same as the tag - e.g. `v1.1.0`
67+
- Press "Publish release"
68+
69+
1. If this is the latest stable release, perform the following step to publish the `latest` images. **Do not perform
70+
this step for patches to older releases.**
71+
72+
```
73+
make VERSION=<version> release-publish-latest
74+
```

0 commit comments

Comments
 (0)