Publishing a new release
Publishing moonlight
Section titled “Publishing moonlight”moonlight CI builds the develop branch automatically. This section is for publishing a new stable, versioned release.
- Checkout the
developbranch. - Pull to ensure you have the latest changes.
- Checkout the
mainbranch. - Merge
developintomain. - Update the version in the following files:
package.jsonpackages/browser/manifest.jsonpackages/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
vis 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
developbranch. - Merge
mainintodevelop. - Push to
develop.
Publishing types
Section titled “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.
- If the manifest type was updated, regenerate the schema:
pnpx ts-json-schema-generator --path './packages/types/src/*.ts' --type ExtensionManifest -f ./tsconfig.json > ../moonlight-mod.github.io/public/manifest.schema.json
Publishing other libraries
Section titled “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
Section titled “Publishing the installer”- Update
Cargo.toml,metainfo.xml, andassets/Info.plistwith 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.