Skip to content

Commit 3c04d74

Browse files
authored
Merge pull request #6616 from ipfs/docs/release-doc-improvements
docs: improvements to the release doc
2 parents d5977fc + b71f202 commit 3c04d74

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

docs/releases.md

+23-11
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44

55
- [Release Philosophy](#release-philosophy)
66
- [Release Flow](#release-flow)
7+
- [Stage 0 - Automated Testing](#stage-0---automated-testing)
8+
- [Stage 1 - Internal Testing](#stage-1---internal-testing)
9+
- [Stage 2 - Community Dev Testing](#stage-2---community-dev-testing)
10+
- [Stage 3 - Community Prod Testing](#stage-3---community-prod-testing)
11+
- [Stage 4 - Release](#stage-4---release)
12+
- [Release Cycle](#release-cycle)
13+
- [Patch Releases](#patch-releases)
714
- [Performing a Release](#performing-a-release)
815
- [Release Version Numbers (aka semver)](#release-version-numbers-aka-semver)
916

@@ -12,38 +19,45 @@
1219
`go-ipfs` aims to have release every six weeks, two releases per quarter. During these 6 week releases, we go through 4 different stages that gives us the opportunity to test the new version against our test environments (unit, interop, integration), QA in our current production environment, IPFS apps (e.g. Desktop and WebUI) and with our community and _early testers_<sup>[1]</sup> that have IPFS running in production.
1320

1421
We might expand the six week release schedule in case of:
22+
1523
- No new updates to be added
16-
- In case of a large community event that takes the core team availability away (e.g. IPFS Conf, Dev Meetings, IPFS Camp, etc)
24+
- In case of a large community event that takes the core team availability away (e.g. IPFS Conf, Dev Meetings, IPFS Camp, etc.)
1725

1826
## Release Flow
1927

2028
`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.
2129

30+
![go-ipfs-release-process-illustration](https://user-images.githubusercontent.com/618519/62986422-653fee00-bdf0-11e9-8f61-197117b61da2.png)
31+
2232
### Stage 0 - Automated Testing
2333

2434
At this stage, we expect _all_ automated tests (interop, testlab, performance, etc.) to pass.
2535

2636
### Stage 1 - Internal Testing
2737

2838
At this stage, we'll:
29-
- 1. Start a partial-rollout to our own infrastructure.
30-
- 2. Test against ipfs and ipfs-shipyard applications.
3139

32-
**Goal(s):**
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).
40+
1. Start a partial-rollout to our own infrastructure.
41+
2. Test against ipfs and ipfs-shipyard applications.
42+
43+
**Goals:**
44+
45+
1. Make sure we haven't introduced any obvious regressions.
46+
2. Test the release in an environment we can monitor and easily roll back (i.e. our own infra).
3547

3648
### Stage 2 - Community Dev Testing
3749

3850
At this stage, we'll announce the impending release to the community and ask for beta testers.
3951

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.
52+
**Goal:**
53+
54+
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.
4155

4256
### Stage 3 - Community Prod Testing
4357

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.
58+
At this stage, we consider the release to be "production ready" and will ask the community and our early testers to (partially) deploy the release to their production infrastructure.
4559

46-
**Goal(s):**
60+
**Goals:**
4761

4862
1. Test the release in some production environments with heavy workloads.
4963
2. Partially roll-out an upgrade to see how it affects the network.
@@ -53,8 +67,6 @@ At this stage, we consider the release to be "production ready" and ask will ask
5367

5468
At this stage, the release is "battle hardened" and ready for wide deployment.
5569

56-
![go-ipfs-release-process-illustration](https://user-images.githubusercontent.com/618519/62986422-653fee00-bdf0-11e9-8f61-197117b61da2.png)
57-
5870
## Release Cycle
5971

6072
A full release process should take about 3 weeks, a week per stage 1-3. We will start a new process every 6 weeks, regardless of when the previous release landed unless it's still ongoing.

0 commit comments

Comments
 (0)