Skip to content

Latest commit

 

History

History
67 lines (47 loc) · 3.19 KB

RELEASE.md

File metadata and controls

67 lines (47 loc) · 3.19 KB

Releasing

This describes for the maintainers of RGBDS how to publish a new release on GitHub.

  1. Update, commit, and push include/version.hpp with values for PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCH, and PACKAGE_VERSION_RC, as well as Dockerfile with a value for ARG version. Only define PACKAGE_VERSION_RC if you are publishing a release candidate! You can use git commit -m "Release <version>" and git push origin master.

  2. Create a Git tag formatted as v<MAJOR>.<MINOR>.<PATCH>, or v<MAJOR>.<MINOR>.<PATCH>-rc<RC> for a release candidate. MAJOR, MINOR, PATCH, and RC should match their values from include/version.hpp. You can use git tag <tag>.

  3. 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:

    1. Build 32-bit and 64-bit RGBDS binaries for Windows with cmake.

    2. Package the binaries into zip files.

    3. Package the source code into a tar.gz file with make dist.

    4. 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> and git tag --delete <tag>.

  4. GitHub Actions will run the create-release-docs.yml workflow to add the release documentation to rgbds-www.

    For a release candidate, which creates a prerelease, you will have to take these steps yourself.

    1. Clone rgbds-www. You can use git clone https://github.com/gbdev/rgbds-www.git.

    2. Make sure that you have installed groff and mandoc. You will need mandoc 1.14.5 or later to support -O toc.

    3. Run .github/actions/get-pages.sh -r <path/to/rgbds-www> <tag>. This will render the RGBDS documentation as HTML and PDF and copy it to rgbds-www.

      If you do not have groff installed, you can change groff -Tpdf -mdoc -wall to mandoc -Tpdf -I os=Linux in .github/actions/get-pages.sh and it will suffice.

    4. Commit and push the documentation. You can use git commit -m "Create RGBDS <tag> documentation" and git push origin master (within the rgbds-www directory, not RGBDS).

  5. Write a changelog in the GitHub draft release.

  6. Click the "Publish release" button to publish it!

  7. Update the release branch. You can use git push origin release.