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_RC
if 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
, andRC
should 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
groff
andmandoc
. You will needmandoc
1.14.5 or later to support-O toc
. -
Inside of the
man
directory, 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
groff
installed, you can changegroff -Tpdf -mdoc -wall
tomandoc -Tpdf -I os=Linux
in 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-www
directory, not RGBDS).
-
-
Write a changelog in the GitHub draft release.
-
Click the "Publish release" button to publish it!
-
Update the
release
branch. You can usegit push origin release
. -
Update the following related projects.
- 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, rgbobj will need a corresponding release.
- rgbds-www: update src/pages/versions.mdx to list the new release.