Publishing a new release
Publishing moonlight
moonlight CI builds the develop
branch automatically. This section is for publishing a new stable, versioned release.
- Checkout the
develop
branch. - Pull to ensure you have the latest changes.
- Checkout the
main
branch. - Merge
develop
intomain
. - Update the version in the following files:
package.json
packages/browser/manifest.json
packages/browser/manifestv2.json
- Write
CHANGELOG.md
.- Do not append to the changelog - remake it.
- If any types changes were made in this release, update the types version.
- Commit and push to
main
.- Make sure to push before creating the tag, or you might confuse CI (reasons unknown).
- Create a tag with the version, starting with the character
v
:git tag vX.Y.Z
- This
v
is very important. CI will not pick it up otherwise. The installers will not know what to do without it.
- This
- Push the tag:
git push --tags
- Checkout the
develop
branch. - Merge
main
intodevelop
. - Push to
develop
.
Publishing types
- Update the version in
packages/types/package.json
.- We originally didn’t have the types version in sync with moonlight, but we’re aiming to resync. Bump the patch version until we can eventually re-synchronize them.
- Continue to publish a moonlight release like normal, and wait for CI to finish.
- Run the types workflow to manually trigger a release to npm.
- In the sample extension, update the types package:
pnpm update @moonlight-mod/types
- Remember to
git pull
andpnpm i
beforehand so you are up to date.
- Remember to
- Commit and push to the sample extension.
- Update create-extension following these instructions.
Publishing other libraries
(e.g. moonmap, LunAST, mappings, create-extension)
- Update package.json with a new version.
- Commit and push to
main
. - Create a tag with the version, starting with the character
v
:git tag vX.Y.Z
- Same reasoning as above.
- Push the tag:
git push --tags
- Wait for the package to be uploaded to npm.
- Use the update helper script to update the dependencies in moonlight if needed.
Publishing the installer
- Update
Cargo.toml
,metainfo.xml
, andassets/Info.plist
with a new version. - Write a changelog into
metainfo.xml
. - Commit and push to
main
. - Wait for CI to finish and download the .exe/.dmg.
- Upload a new release, creating a tag in the GitHub UI starting with the character
v
, with the release description being the same as inmetainfo.xml
.