Veil of Ages Release Process
Pre-Release Checklist
- •Ensure CI is green on main: check https://github.com/azrazalea/Veil-of-Ages/actions
- •Build locally:
dotnet build— must pass with 0 warnings, 0 errors - •Verify no uncommitted changes:
git status - •Test in-game: Run the game and verify core gameplay works
Version Bump
Update the version string in all locations:
- •
Veil of Ages.csproj—<Version>X.Y.Z</Version> - •
export_presets.cfg—application/file_versionandapplication/product_version(format:"X.Y.Z.0") - •
README.md— version badge:
Veil of Ages uses Semantic Versioning.
Consolidate Changelog
In CHANGELOG.md:
- •Move all entries from
## [Unreleased]into a new## [X.Y.Z] - YYYY-MM-DDsection - •Leave
## [Unreleased]empty (but keep the heading) - •Review entries — consolidate, reword for clarity, remove internal-only changes
- •Ensure categories follow Keep a Changelog: Added, Changed, Deprecated, Removed, Fixed, Security
The release workflow extracts this section for the GitHub Release body.
Commit, Tag, Push
bash
git add -A git commit -m "Release vX.Y.Z" git push git tag vX.Y.Z git push origin vX.Y.Z
Wiki Submodule
If wiki pages were updated since the last release:
bash
cd wiki git add -A && git commit -m "Update wiki for vX.Y.Z release" git push cd .. git add wiki && git commit -m "Update wiki submodule for vX.Y.Z" && git push
What Happens Automatically
The GitHub Actions workflow (.github/workflows/build.yml) triggers on v* tags and:
- •Builds Godot exports for Windows, Linux, and macOS
- •Copies JSON resources and documentation (CHANGELOG, README, LICENSE) into build artifacts
- •Creates platform archives (
.zipfor Windows/macOS,.tar.gzfor Linux) - •Extracts the tagged version's section from CHANGELOG.md for the release body
- •Creates a GitHub Release with platform archives and auto-generated commit notes
Post-Release
- •Verify the release at https://github.com/azrazalea/Veil-of-Ages/releases
- •Download and spot-check at least one platform archive
- •If something went wrong: delete the tag (
git tag -d vX.Y.Z && git push origin :refs/tags/vX.Y.Z), fix, and re-tag