Skip to content

Commit c7eec41

Browse files
authored
Add release process documentation and update README.md (#1025)
- Introduced a new RELEASE.md file detailing the Roam release process, including steps for versioning, preparing release notes, and submitting to Roam. - Updated README.md to include a link to the new release process documentation.
1 parent 2592a6c commit c7eec41

3 files changed

Lines changed: 94 additions & 136 deletions

File tree

apps/roam/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ For more information about Discourse Graphs, check out our website at [https://d
1414

1515
- [Discourse Graphs](https://discoursegraphs.com/docs/roam) documentation
1616
- [Query Builder](https://github.com/DiscourseGraphs/discourse-graph/blob/main/apps/roam/docs/query-builder.md) documentation
17+
- [Release process](./RELEASE.md)
1718

1819
## Nomenclature
1920

apps/roam/RELEASE.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Roam Release Process
2+
3+
This document describes the current Roam release process with Linear Releases,
4+
GitHub Actions, and Roam Depot.
5+
6+
## Release Tracking Model
7+
8+
Roam uses a scheduled Linear release pipeline. At any time, there should be one
9+
active Roam release collecting new work and, after a release is completed, a new
10+
release should be created manually for the next version.
11+
12+
After a release is marked `Released` in Linear:
13+
14+
1. Create the next Roam release manually in the Roam Linear release pipeline.
15+
2. Use the next version number, such as `0.20.0`.
16+
3. Move that new Linear release to `In Progress`.
17+
18+
Once the next release is in progress, the `roam-main.yaml` workflow automatically
19+
syncs eligible merged work into that release when commits land on `main` and
20+
touch Roam-related paths such as `apps/roam/**`.
21+
22+
## Preparing Release Notes
23+
24+
Before publishing a Roam release:
25+
26+
1. Bump `apps/roam/package.json` to the release version.
27+
2. Create a PR for that version bump.
28+
3. Generate release notes from the Linear release. The Linear Agent can generate
29+
these from the issues included in the Linear release.
30+
4. Create or update a Linear Pulse/project update manually if the release notes
31+
should appear in Pulse. Do not assume Linear Releases automatically publish to
32+
Pulse.
33+
5. Add the final user-facing release notes to `apps/roam/CHANGELOG.md`.
34+
6. Create a PR for the changelog update, or include it with the version bump if
35+
that is how the release is being prepared.
36+
37+
Keep the changelog concise and user-facing. Internal chores, release-process
38+
tasks, telemetry-only work, and build-only work should usually stay out of the
39+
public changelog. See `apps/roam/CHANGELOG.md` for the current changelog format.
40+
41+
## Submitting to Roam
42+
43+
Before running the Roam release workflow, make sure the Discourse Graphs Roam
44+
Depot fork is clean and up to date with upstream Roam Depot. The workflow updates
45+
the Roam Depot metadata from the fork, so pending fork drift can complicate the
46+
review PR.
47+
48+
When the version bump and changelog are merged:
49+
50+
1. Run the `Update Roam Extension Metadata` GitHub Action
51+
(`.github/workflows/roam-release.yaml`) from `main`.
52+
2. Confirm the workflow succeeds.
53+
3. The workflow updates Roam Depot metadata and moves the Linear release to
54+
`Sent to Roam for Review`.
55+
4. Cut the Roam Depot PR to Roam.
56+
57+
At this point the release is submitted for Roam review, but it is not finished.
58+
59+
## Completing the Release
60+
61+
After the Roam Depot PR is merged by Roam:
62+
63+
1. Confirm the extension has been accepted or published by Roam.
64+
2. Change the Linear release from `Sent to Roam for Review` to `Released`.
65+
3. If using the manual completion workflow, run `Complete Roam Linear Release`
66+
(`.github/workflows/roam-release-complete.yaml`) with the release version.
67+
4. Immediately create the next Linear release at the next version number and
68+
move it to `In Progress`.
69+
70+
Creating the next in-progress Linear release is required so future Roam commits
71+
can be collected automatically by `roam-main.yaml`.
72+
73+
## Workflow Responsibilities
74+
75+
`roam-main.yaml`
76+
77+
- Runs on `main` when Roam-related paths change.
78+
- Builds and deploys the Roam blob-storage build.
79+
- Syncs matching commits/issues into the current in-progress Linear release.
80+
- Does not set a release version from `apps/roam/package.json`.
81+
82+
`roam-release.yaml`
83+
84+
- Runs manually when publishing a prepared release.
85+
- Builds Roam.
86+
- Reads the release version from `apps/roam/package.json`.
87+
- Updates Roam Depot metadata.
88+
- Moves the Linear release to `Sent to Roam for Review`.
89+
90+
`roam-release-complete.yaml`
91+
92+
- Runs manually after Roam accepts or publishes the release.
93+
- Completes the explicit Linear release version passed as workflow input.

skills/create-roam-release/SKILL.md

Lines changed: 0 additions & 136 deletions
This file was deleted.

0 commit comments

Comments
 (0)