- Have at least
Editor
level access toagones-images
project. - Have permission to publish new versions of the App Engine application.
- Have write access to Agones GitHub repository.
- Run
git remote -v
and see:- An
origin
remote that points to a personal fork of Agones, such as[email protected]:yourname/agones.git
. - An
upstream
remote that points to[email protected]:googleforgames/agones.git
.
- An
- Have a
gcloud config configurations
configuration calledagones-images
that points to the same project. - Edit access to the Agones Release Calendar
- Get approval for Release Title and Description
- Run
make shell
and rungcloud config configurations activate agones-images
. - Review merged PRs in the current milestone to ensure that they have appropriate tags.
-
git checkout main && git pull --rebase upstream main
- Run
make pre-build-release
to ensure all example images exist on agones-images/examples repository and to deploy the {version}-1 service on GCP/App Engine/Services. - Run
make sdk-update-version release_stage=before version={version}
file. This command will update the version number in the sdks/install files to {version}. - Create a draft release with the release template.
- run
make release-example-image-markdown
to populate example images and append the output inImages available with this release
section - Draft a new release with release draft. Update the
Tag version
andRelease title
with the release version and click onGenerate release notes
to generate the release notes withFull Changelog
info for {version}. Make sure to add the description. Include theImages available with this release
section from the previous step that will be present after theFull Changelog
and save the draft. - copy the {version} release details from the
Full Changelog
and paste it on top of the CHANGELOG.md file
- run
- Site updated
- Create a new file named {version}.md in
/site/content/en/blog/releases
. Copy the draft release content in this file (this will be what you send via email)[refer the previous release file]. - run
make site-server
frequently to make sure everything looks fine for the release in your localhost - In
site/content/en/docs/Installation/_index.md #agones-and-kubernetes-supported-versions
, for the current version, replace{{% k8s-version %}}
with hardcoded Kubernetes versions supported by the current version. And add a row for the Agones release version with{{% k8s-version %}}
as its supported Kubernetes versions. - Run
make del-data-proofer-ignore FILENAME={version}-1.md
to removedata-proofer-ignore
attribute from previous release blog. Review all occurrences of the link_test and data-proofer-ignore attributes globally. Exclude html and release files. - Run
make feature-shortcode-update version={version}
to remove all instances of thefeature expiryVersion
shortcode, including the associated content, while preserving the rest of the content within the .md files located in site/content/en/docs. Additionally, ensure that only the block offeature publishVersion
is removed without affecting the content. - Add a link to previous version's documentation to nav dropdown in
site/layouts/partials/navbar.html
on top and Runmake update-navbar-version FILENAME=site/layouts/partials/navbar.html
to remove the older version from the dropdown list. - config.toml updates:
- Run
make site-config-update-version
to update the release version and sync data between dev and prod. - Update documentation with updated example images tags.
- Run
- Create a new file named {version}.md in
- Ensure that the
alphaGates
andbetaGates
for"Dev"
intest/upgrade/versionMap.yaml
match the Alpha features and Beta features inpkg/util/runtime/features.go
. - Create PR with these changes, and merge them with an approval.
- Run
git remote update && git checkout main && git reset --hard upstream/main
to ensure your code is in line with upstream (unless this is a hotfix, then do the same, but for the release branch) - Publish SDK packages
- Run
make sdk-shell-node
to get interactive shell to publish node package. Requires Google internal process to publish. - Run
make sdk-publish-csharp
to deploy to NuGet. Requires login credentials. Will need NuGet API Key from Agones account.
- Run
- Run
make post-build-release
to build the artifacts in GCS(These files will be attached in the release notes) and to push the latest images in the release repository and push chart on agones-chart. - Run
make shell
and rungcloud config configurations activate <your development project>
to switch Agones development tooling off of theagones-images
project. - Smoke Test: run
make install-release
to view helm releases, uninstall agones-system namespace, fetch the latest version of Agones, verify the new version, installing agones-system namespace, and list all the pods of agones-system. - Attach all assets found in the cloud storage with {version} to the draft GitHub Release.
- Copy any review changes from the release blog post into the draft GitHub release.
- Publish the draft GitHub Release.
- Run
make release-branch
to create a release branch and rungcloud config configurations activate <your development project>
to switch Agones development tooling off of theagones-images
project. - Email mailing lists with the release details (copy-paste the release blog post). Refer to the Internal Mailing list posting guide for details.
- Paste the announcement blog post to the #users Slack group.
- Post to the agonesdev Twitter account.
- Run
git checkout main
. - Run
make sdk-publish-rust
. This command executescargo login
for authentication, performs a dry-run publish, and if that succeeds, does the actual publish. Will need crate's API TOKEN from your crate's account. - Run
make sdk-update-version release_stage=after version={version}
file. This command will update the SDKs and install directories files with{version}+1-dev
and will also set{version}+1
inbuild/Makefile
. - In
test/sdk/go/Makefile
changerelease_version
to{version}
.- Run
make shell
and rungcloud config configurations activate agones-images
. - Within the shell
cd
to thetest/sdk/go/
directory and runmake cloud-build
.
- Run
- In
test/upgrade/Makefile
changebase_version
to{version}
. - In
test/upgrade/versionMap.yaml
changeReleaseVersion
to{version}
.- In
test/upgrade/versionMap.yaml
copy and paste“Dev”
inagonesVersionFeatureGates
map. - Change one of the
“Dev”
inagonesVersionFeatureGates
to{version}
.
- In
- Create PR with these changes, and merge them with approval
- Close this issue. Congratulations! - the release is now complete! 🎉 👏 😄 👍