aboutsummaryrefslogtreecommitdiff
path: root/docs/development
diff options
context:
space:
mode:
Diffstat (limited to 'docs/development')
-rw-r--r--docs/development/releases.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/development/releases.md b/docs/development/releases.md
index 65b19ca..5908db8 100644
--- a/docs/development/releases.md
+++ b/docs/development/releases.md
@@ -20,6 +20,69 @@ Therefore make sure to push tags of Mods and Launcher first (and make sure Launc
CI also pushes release directly to Thunderstore as a mod called [`Northstar`](https://northstar.thunderstore.io/package/northstar/Northstar/). \
If it's a release-candidate with the `-rcX` suffix, it will instead get pushed to Thunderstore as [`NorthstarReleaseCandidate`](https://northstar.thunderstore.io/package/northstar/NorthstarReleaseCandidate/).
+### The process of making a release:
+
+The following is a rough draft of the steps needed to make a release.
+The process is ever changing in order to simplify it so these steps outlined might not be up-to-date anymore depending on when you are reading this.
+
+The current process of making release (includinging release candidate) is:
+
+1. Make release branch (`MAJOR.MINOR.X`) (if not exists)
+
+2. Merge desired commits from `main`
+ - Make sure to consider whether changing are breaking in regards to older/newer server/client and in regards to Squirrel API.
+ - Older/newer client/server breakage might need to be version gated and should **NOT** be done in patch releases.
+ - Squirrel API changes likely breaks mods and should **NOT** be done in patch releases. Additionaly make sure to ping modders on release or preferably even in advance.
+ - If changes can be merged fast-forward use `git merge --ff-only origin/main` otherwise cherry-pick relevant commits.
+
+3. Make release candidate\
+ Push tags ending in `-rcX` where `X` is integer for
+ 1. Launcher
+ 2. Mods
+ 3. Release (wait until launcher has finished building)
+
+4. Make draft notes\
+ You can use FlightCore to generate them and then format them manually.\
+ If you use FlightCore make sure to remove already released commits if they were cherry-picked.
+
+5. Create a draft discussion in [release repo discussions](https://github.com/R2Northstar/Northstar/discussions)
+
+6. Make related github-org thread and link the draft notes there for feedback etc
+
+7. Ping playtesters to test release candidate.
+ 1. Add information about what specific aspect to test.
+ 2. Copy relevant changes for this release candidate from draft release notes.
+ 3. Link draft release notes.
+ 4. Make thread to leave feedback about release in.
+
+8. Wait until release candidate was sufficiently tested.
+
+9. Make release
+ Push tags for
+ 1. Launcher
+ 2. Mods
+ 3. Release (wait until launcher has finished building)
+
+10. Once release has finished building
+ 1. Go to GitHub release and select the new unpublished release
+ 2. Copy release notes from draft.
+ 3. Click checkbox for creating discussion and select _Release_ as category
+ 4. Publish
+
+11. Post announcements on Discord
+ 1. Post message in `#server-hosting-announcements` channel.\
+ Make sure to highlight server hosting specific changes.\
+ Make thread for bug reports.
+ 2. Post message in `#modding-announcements`.\
+ Make sure to highlight modding specific changes (API changes etc).
+ 3. Post message in `#announcements`.\
+ Make sure to highlight end-user specific changes (new features, certainn fixes, etc).
+
+
+12. Update main menu promos version on Atlas
+
+13. Observe version roll-out via [Grafana dashboard](https://northstar-stats.frontier.tf/).
+
### Git commands for tags:
**For release candidates:**