Skip to content

Commit da2a622

Browse files
committed
chore(doc): start updating realeasing
1 parent e0aa995 commit da2a622

File tree

1 file changed

+57
-8
lines changed

1 file changed

+57
-8
lines changed

RELEASING.md

+57-8
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,73 @@ neatly document any changes that may happen during QA, such as bug fixes, and se
55

66
## Releasing Robot Software Stacks
77

8-
The app and API projects are currently versioned together to ensure interoperability.
8+
### Overview
9+
10+
The robot release process has 3 main outputs:
11+
- Electron app
12+
- OT-2 system package
13+
- Flex system package
14+
15+
16+
```mermaid
17+
flowchart LR
18+
subgraph Shared ["Shared Repository"]
19+
opentrons["Opentrons/opentrons" ]
20+
end
21+
22+
subgraph Flex ["Flex Only"]
23+
oe_core["Opentrons/oe-core"]
24+
ot3_firmware["Opentrons/ot3-firmware" ]
25+
end
26+
27+
subgraph OT2 ["OT-2 Only"]
28+
buildroot["Opentrons/buildroot" ]
29+
end
30+
31+
OT2Build["OT-2 System Package"]
32+
opentrons --> OT2Build
33+
buildroot --> OT2Build
34+
35+
App["Opentrons App"]
36+
opentrons --> App
37+
38+
FlexBuild["Flex System Package"]
39+
opentrons --> FlexBuild
40+
oe_core --> FlexBuild
41+
ot3_firmware --> FlexBuild
42+
43+
click oe_core "https://github.com/Opentrons/oe-core" _blank
44+
click ot3_firmware "https://github.com/Opentrons/ot3-firmware" _blank
45+
click opentrons "https://github.com/Opentrons/opentrons" _blank
46+
click opentrons_modules "https://github.com/Opentrons/opentrons-modules" _blank
47+
click buildroot "https://github.com/Opentrons/buildroot" _blank
48+
```
49+
50+
These are all versioned and released together. These assets are produced in 2 possible channels:
51+
- Release (External facing releases - stable, beta, alpha)
52+
- Internal Release (Internal facing releases - stable, beta, alpha)
953

10-
1. Ensure you have a release created in GitHub for the robot stack you're releasing - buildroot for ot-2, oe-core for ot-3 - with all the changes you want in this release, if any. If there are no system changes, you don't have to create a new release; the last tag in the system repo is used for release builds.
1154

12-
2. Checkout `edge` and make a release branch, without any new changes. The branch name should match `release_*` to make it clear this is a release.
55+
### Steps to release
56+
57+
1. Checkout `edge` and make a chore release branch, without any new changes. The branch name should match `chore_release-*`.
1358

1459
```shell
15-
git checkout edge
60+
git switch edge
1661
git pull
17-
git checkout -b release_${version}
18-
git push --set-upstream origin release_${version}
62+
git switch -c chore_release-${version}
63+
git push --set-upstream origin chore_release-${version}
1964
```
2065

21-
3. Open a PR into `release` for your release branch; this should contain all the changes that were in `edge` and not yet `release`. This PR will stick around for the duration of the release process, as QA-discovered bugs will have their fixes merged to this PR.
66+
2. Open a PR into `release` for your release branch; this should contain all the changes that were in `edge` and not yet in `release`. This PR will stick around for the duration of the release process, as QA-discovered bugs will have their fixes merged to this PR.
2267

2368
Part of what should happen in this branch is soliciting input and changes for the user-facing release notes at `app-shell/build/release-notes.md` for the app and `api/release-notes.md` for the robot software. Any changes should be done in a PR just like a QA bug. You should have final approval before the alpha process concludes.
2469

25-
4. Check out and pull your release branch locally and create a tag for a new alpha version (since this is in QA). The alpha version should end with an `-alpha.N` prerelease tag, where `N` goes from 0 up over the course of the QA process. You don't need a PR or a commit to create a new version; the presence of the tag is all that you need. Let's call the alpha version you're about to create `${alphaVersion}`:
70+
Evaluate tags on the other repos
71+
How and if to bump
72+
only use annotated tags
73+
74+
3. Check out and pull your release branch locally and create a tag for a new alpha version (since this is in QA). The alpha version should end with an `-alpha.N` prerelease tag, where `N` goes from 0 up over the course of the QA process. You don't need a PR or a commit to create a new version; the presence of the tag is all that you need. Let's call the alpha version you're about to create `${alphaVersion}`:
2675

2776
```shell
2877
git checkout release_${version}

0 commit comments

Comments
 (0)