Skip to content

Making a Release

Jan Krassnigg edited this page Aug 26, 2024 · 34 revisions

Describes how to make a GitHub release with pre-compiled binaries of ezEngine.

Update Closed Issues

  1. Look at closed issues without a milestone: https://github.com/ezEngine/ezEngine/issues?q=is%3Aissue+is%3Aclosed+no%3Amilestone
  2. Assign the 'Next Release' milestone to all these issues.
  3. Also review that the labels are correct. Especially take care to assign the needs documentation label for all yet undocumented changes.
  4. Do the same for the closed pull requests: https://github.com/ezEngine/ezEngine/pulls?q=is%3Apr+is%3Aclosed+no%3Amilestone

Write Documentation

  1. Look at the items in the current milestone and go through all items with the needs documentation label.
  2. Write or update the documentation and then remove the label form the finished items.

Update the Version number

  1. Open 'version.txt' in the repo root and update it with the upcoming release version.
  2. Make sure the Doxyfile has the right 'PROJECT_NUMBER' set (this could be automated in the pipeline, looking up version.txt)
  3. Commit these changes to 'dev'.

Update the API docs

  1. Make sure the Doxyfile has the right 'PROJECT_NUMBER' set (this could be automated in the pipeline, looking up version.txt)
  2. Run the Update API Docs Action
  3. Have a look at https://github.com/ezEngine/api-docs. If necessary rebase and force push to remove old commits to reduce the repository size.

Update the precompiled tools:

  1. Run the Update Precompiled Tools Action
  2. Update the submodule reference on the ezEngine 'dev' branch

Check the Release Template

  1. See this repository: https://github.com/ezEngine/release-template
  2. Check that its contents are still up to date. This affects the binary package generation (see below).

Prepare the binary package

  1. Run the Build Release Package Action
  2. Download package and test
    1. Start and test all samples
    2. Start and test Editor, Inspector, FileServe, etc
    3. If you find any issues, commit fixes and start over
  3. Now all asset caches and shader caches should be up to date
  4. Zip it again with maximum compression.

Prepare the Release Notes

  1. Look at the previous milestone for inspiration.
  2. Use the list of PRs and issues for the next milestone as reference.

Update Milestones

  1. Go to https://github.com/ezEngine/ezEngine/milestones
  2. Rename the 'Next Release' milestone to 'Release YY.M'
  3. 'Close' the milestone
  4. Add a new milestone named 'Next Release'

Merge to the Release branch

  1. Create a PR to 'release'
    • name = 'Release YY.M'
    • milestone = 'Next Release'
    • label = release
  2. merge, DON'T squash

Draft a GitHub release

  1. Go to https://github.com/ezEngine/ezEngine/releases
  2. Look at previous release for inspiration
  3. name = "ezEngine Release MONTH YEAR"
  4. tag = release-YY.M
  5. target = release
  6. Attach your zip package
  7. Write the release notes
  8. Mention the closed milestone
  9. Publish the release

Update the 'Latest Version' online

  1. On this page update the latest version to what was just released.
  2. Once this goes online, existing installations will start showing a notification, that a new release is available.

Let your friends know about it

  1. Twitter
  2. Discord Show & Tell channel
  3. GitHub Discussions