feat: add stage 0
We do automated testing before we test on infra, etc. Make that explicit.
Steven Allen committed
Aug 2, 2019 at 10:45 UTC
d433d7c9ac32cb65376d6d09f5e359f255ecca81
2 files changed
+14
-11
docs/RELEASE_ISSUE_TEMPLATE.md
+6
-5
@@ -30,16 +30,17 @@ For each RC published in each stage:
30
31
Checklist:
32
33
-- [ ] **Stage 1 - Internal Testing**
33
+- [ ] **Stage 0 - Automated Testing**
34
- [ ] Feature freeze. If any "non-trivial" changes (see the footnotes of [docs/releases.md](https://github.com/ipfs/go-ipfs/tree/master/docs/releases.md) for a definition) get added to the release, uncheck all the checkboxes and return to this stage.
35
- - [ ] CHANGELOG.md has been updated
36
- - use [`./bin/mkreleaselog`](https://github.com/ipfs/go-ipfs/tree/master/bin/mkreleaselog) to generate a nice starter list
35
- [ ] Automated Testing (already tested in CI) - Ensure that all tests are passing, this includes:
36
- [ ] unit, sharness, cross-build, etc (`make test`)
37
- [ ] lint (`make test_go_lint`)
38
- [ ] [interop](https://github.com/ipfs/interop#test-with-a-non-yet-released-version-of-go-ipfs)
39
- [ ] [go-ipfs-api](https://github.com/ipfs/go-ipfs-api)
40
- [ ] [go-ipfs-http-client](https://github.com/ipfs/go-ipfs-http-client)
41
+- [ ] **Stage 1 - Internal Testing**
42
+ - [ ] CHANGELOG.md has been updated
43
+ - use [`./bin/mkreleaselog`](https://github.com/ipfs/go-ipfs/tree/master/bin/mkreleaselog) to generate a nice starter list
44
- [ ] Network Testing:
45
- [ ] test lab things - TBD
46
- [ ] Infrastructure Testing:
@@ -52,12 +53,12 @@ Checklist:
53
- [ ] [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) - @hacdias
54
- [ ] [IPFS Companion](https://github.com/ipfs-shipyard/ipfs-companion) - @lidel
55
- [ ] [NPM on IPFS](https://github.com/ipfs-shipyard/npm-on-ipfs) - @achingbrain
55
-- [ ] **Stage 2 - Public Beta**
56
+- [ ] **Stage 2 - Community Dev Testing**
57
- [ ] Reach out to the IPFS _early testers_ listed in [docs/EARLY_TESTERS.md](https://github.com/ipfs/go-ipfs/tree/master/docs/EARLY_TESTERS.md) for testing this release (check when no more problems have been reported). If you'd like to be added to this list, please file a PR.
58
- [ ] Reach out to on IRC for beta testers.
59
- [ ] Run tests available in the following repos with the latest beta (check when all tests pass):
60
- [ ] [orbit-db](https://github.com/orbitdb/orbit-db)
60
-- [ ] **Stage 3 - Soft Release**
61
+- [ ] **Stage 3 - Community Prod Testing**
62
- [ ] Documentation
63
- [ ] Ensure that [CHANGELOG.md](https://github.com/ipfs/go-ipfs/tree/master/CHANGELOG.md) is up to date
64
- [ ] Ensure that [README.md](https://github.com/ipfs/go-ipfs/tree/master/README.md) is up to date
docs/releases.md
+8
-6
@@ -17,11 +17,13 @@ We might expand the six week release schedule in case of:
17
18
## Release Flow
19
20
-`go-ipfs` releases come in 4 stages designed to gradually roll out changes and reduce the impact of any regressions that may have been introduced. If we need to merge non-trivial<sup>[2]</sup> changes during the process, we start over at stage 1.
20
+`go-ipfs` releases come in 5 stages designed to gradually roll out changes and reduce the impact of any regressions that may have been introduced. If we need to merge non-trivial<sup>[2]</sup> changes during the process, we start over at stage 0.
21
22
-### Stage 1 - Internal Testing
22
+### Stage 0 - Automated Testing
23
+
24
+At this stage, we expect _all_ automated tests (interop, testlab, performance, etc.) to pass.
25
24
-Before this stage, we expect _all_ tests (interop, testlab, performance, etc.) to pass.
26
+### Stage 1 - Internal Testing
27
28
At this stage, we'll:
29
- 1. Start a partial-rollout to our own infrastructure.
@@ -31,13 +33,13 @@ At this stage, we'll:
33
- 1. Make sure we haven't introduced any obvious regressions.
34
- 2. Test the release in an environment we can monitor and easily roll back (i.e., our own infra).
35
34
-### Stage 2 - Public Beta
36
+### Stage 2 - Community Dev Testing
37
38
At this stage, we'll announce the impending release to the community and ask for beta testers.
39
40
**Goal:** Test the release in as many non-production environments as possible. This is relatively low-risk but gives us a _breadth_ of testing internal testing can't.
41
40
-### Stage 3 - Soft Release
42
+### Stage 3 - Community Prod Testing
43
44
At this stage, we consider the release to be "production ready" and ask will ask the community and our early testers to (partially) deploy the release to their production infrastructure.
45
@@ -53,7 +55,7 @@ At this stage, the release is "battle hardened" and ready for wide deployment.
55
56
## Performing a Release
57
56
-The release is managed by the `Lead Maintainer` for `go-ipfs`. It starts with the opening of an issue containing the content available on the [RELEASE_ISSUE_TEMPLATE](./RELEASE_ISSUE_TEMPLATE.md). Then, the 4 stages will be followed until the release is done.
58
+The release is managed by the `Lead Maintainer` for `go-ipfs`. It starts with the opening of an issue containing the content available on the [RELEASE_ISSUE_TEMPLATE](./RELEASE_ISSUE_TEMPLATE.md). Then, the 5 stages will be followed until the release is done.
59
60
## Release Version Numbers (aka semver)
61