4.4 KiB
Releasing
This describes for the maintainers of RGBDS how to publish a new release on GitHub.
-
Update the following files, then commit and push. You can use
git commit -m "Release <version>"andgit push origin master.- include/version.hpp: set appropriate values for
PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_PATCH, andPACKAGE_VERSION_RC. Only definePACKAGE_VERSION_RCif you are publishing a release candidate! - Dockerfile: update
ARG version. - test/fetch-test-deps.sh: update test dependency commits (preferably, use the latest available).
- man/*: update dates and authors.
- include/version.hpp: set appropriate values for
-
Create a Git tag formatted as
v<MAJOR>.<MINOR>.<PATCH>, orv<MAJOR>.<MINOR>.<PATCH>-rc<RC>for a release candidate.MAJOR,MINOR,PATCH, andRCshould match their values from include/version.hpp. You can usegit tag <tag>. -
Push the tag to GitHub. You can use
git push origin <tag>.GitHub Actions will run the create-release-artifacts.yaml workflow to detect the tag starting with "
v[0-9]" and automatically do the following:-
Build 32-bit and 64-bit RGBDS binaries for Windows with
cmake. -
Package the binaries into zip files.
-
Package the source code into a tar.gz file with
make dist. -
Create a draft GitHub release for the tag, attaching the three packaged files. It will be a prerelease if the tag contains "
-rc".If an error occurred in the above steps, delete the tag and restart the procedure. You can use
git push --delete origin <tag>andgit tag --delete <tag>.
-
-
GitHub Actions will run the create-release-docs.yml workflow to add the release documentation to rgbds-www.
This is not done automatically for prereleases, since we do not normally publish documentation for them. If you want to manually publish prerelease documentation, such as for an April Fools joke prerelease,
-
Clone rgbds-www. You can use
git clone https://github.com/gbdev/rgbds-www.git. -
Make sure that you have installed
groffandmandoc. You will needmandoc1.14.5 or later to support-O toc. -
Inside of the
mandirectory, run<path/to/rgbds-www>/maintainer/man_to_html.sh <tag> *then<path/to/rgbds-www>/maintainer/new_release.sh <tag>. This will render the RGBDS documentation as HTML and PDF and copy it torgbds-www.If you do not have
groffinstalled, you can changegroff -Tpdf -mdoc -walltomandoc -Tpdf -I os=Linuxin maintainer/man_to_html.sh and it will suffice. -
Commit and push the documentation. You can use
git commit -m "Create RGBDS <tag> documentation"andgit push origin master(within thergbds-wwwdirectory, not RGBDS).
-
-
Write a changelog in the GitHub draft release.
-
Click the "Publish release" button to publish it!
-
Update the
releasebranch. You can usegit push origin master:release. -
Update the following related projects.
- rgbds-www: update src/pages/versions.mdx to list the new release.
- rgbds-live: update the
rgbdssubmodule (and patches/rgbds.patch if necessary) to use the new release. - rgbobj and rgbds-obj:
make sure that object files created by the latest RGBASM can be parsed and displayed.
If the object file revision has been updated,
rgbobjwill need a corresponding release.