Rough notes on the steps we follow when making an SML release.
-
Add things demonstrating/testing new features to Example Mod and SMLFeatureTests when relevant
-
Ensure docs repository is updated (on https://docs-dev.ficsit.app/, at least)
-
Write version-specific Updating Guide on the docs when relevant
-
Write draft release changelog on GitHub, following the format from the previous release
-
Ensure SML VS project and mod compiles on a developer machine
-
Ensure the CI passes on the
devbranch -
Open a SML PR of
devtomasterand get approvals -
Update the docs versions
-
After merging the PR, commit on master a
Bump versioncommit- SML.uplugin GameVersion and SemVersion
- ExampleMod.uplugin GameVersion and SML dependency version
-
Wait for CI to finish. We don't upload locally compiled versions so the version detailed suffix is consistent across versions.
-
While waiting for CI to finish:
- Merge the docs PR to master
- Update SMLFeatureTests SML dependency version
-
Upload CI artifact to GitHub as release. Attach all of the CI zip file contents as release items (Windows (Client), Windows Server, Linux Server, SML (multi-target))
-
Upload CI artifact to SMR as a new version of the SML mod (multi-target zip file), SMR changelog is the GitHub changelog
-
Post in #toolkit-updates and/or #announcements on Discord
-
Clear/create ficsit.app announcements as needed
-
Get a token from your browser cookies after logging into ficsit.app
-
Set headers to:
{ "Authorization": "your_token_here", }
-
To get active announcements, use:
{ getAnnouncements { importance message id } } -
To create an announcement, use:
# Query mutation CreateAnnouncement($announcement: NewAnnouncement!) { createAnnouncement(announcement: $announcement) { id message importance } } # Variables { "announcement": { "message": "Hello World", "importance": "Info" } }
-
To delete an announcement, use:
# Query mutation DeleteAnnouncement($id: AnnouncementID!) { deleteAnnouncement(announcementId: $id) } # Variables { "id": "idFromGetGoesHere" }
-