agones.dev/agones@v1.53.0/docs/governance/templates/patch_release_issue.md (about) 1 # Patch Release {patch_version} 2 3 <!-- 4 This is the patch release issue template. Make a copy of the markdown in this page 5 and copy it into a release issue. Fill in relevant values (patch, previous version, and cherry-pick), found inside {} 6 7 *** VERSION SHOULD BE IN THE FORMAT OF 1.x.x NOT v1.x.x *** 8 9 Note: "If needed" means if this step only needs to be done if it was modified as part of the patch release or otherwise should be updated. 10 !--> 11 12 ## Prerequisites 13 14 - [ ] Editor-level access to the agones-images project. 15 - [ ] Permission to publish new versions of the App Engine application. 16 - [ ] Write access to the Agones GitHub repository. 17 - [ ] git remote -v should show: 18 - [ ] An origin remote pointing to your personal Agones fork (e.g., git@github.com:yourname/agones.git). 19 - [ ] An upstream remote pointing to git@github.com:googleforgames/agones.git. 20 - [ ] A gcloud config configurations configuration named agones-images pointing to the same project. 21 - [ ] Edit access to the[ Agones Release Calendar](https://calendar.google.com/calendar/u/0?cid=Z29vZ2xlLmNvbV84MjhuOGYxOGhmYnRyczR2dTRoMXNrczIxOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t). 22 - [ ] Approval for any modifications to the [Release Title and Description](https://docs.google.com/document/d/1bRZCxYB8lrVcrru41b6s5D_9uU0zS49vVGdBhg0yDIY/edit) 23 24 ## Steps 25 26 - [ ] Run `make shell` and run `gcloud config configurations activate agones-images`. 27 - [ ] To create a new branch for the patch release, and base it off of the previous patch release run 28 `make create-patch-release-branch PREVIOUS_VERSION={previous_version} PATCH_VERSION={patch_version}`. 29 - [ ] Run `git status` to confirm you are on the expected branch name. 30 - [ ] Run `git log` to confirm the most recent commits are what you expect. (They should be the 31 same as the release tagged v{previous_version}.) 32 - Run `make pre-build-release PATCH_VERSION={patch_version}` to ensure all example images exist on 33 the agones-images/examples repository and to deploy the {patch_version} service on GCP/App 34 Engine/Services. 35 - [ ] Run `git cherry-pick {<SHA>}` to pick up the PR changes in the patch release. 36 - [ ] From within the `agones/build` directory run `make sdk-update-version release_stage=patch version={previous_version}` 37 to increment the previous version by 1 to {patch_version} in the build/Makefile as well as the 38 SDK files. 39 - [ ] Update `_BASE_VERSION` in `cloudbuild.yaml` to `{patch_version}`. 40 - [ ] Create a _draft_ release with the [release template](https://github.com/googleforgames/agones/blob/main/docs/governance/templates/release.md). 41 - [ ] Run `make release-example-image-markdown` to populate example images and append the output 42 in `Images available with this release` section. 43 - [ ] Draft a new release with [release draft](https://github.com/googleforgames/agones/releases). 44 Update the `Tag version` and `Release title` with the release version and click on `Generate release notes` 45 to generate the release notes with `Full Changelog` info for {patch_version}. Make sure to 46 add the description. Include the `Images available with this release` section from the 47 previous step that will be present after the `Full Changelog` and save the draft. 48 - [ ] Copy the {patch_version} release details from the `Full Changelog` and paste it on top of 49 the CHANGELOG.md file 50 - [ ] Site updated 51 - [ ] Create a new file named {patch_version}.md in `/site/content/en/blog/releases`. Copy the 52 draft release content in this file (this will be what you send via email)[refer the previous release file]. 53 - [ ] Run `make site-server` frequently to make sure everything looks fine for the release in your localhost 54 - [ ] If needed: In `site/content/en/docs/Installation/_index.md #agones-and-kubernetes-supported-versions`, 55 for the current version, replace {{% k8s-version %}} with hardcoded Kubernetes versions 56 supported by the current version. And add a row for the Agones release version with 57 {{% k8s-version %}} as its supported Kubernetes versions. 58 - [ ] Run `make del-data-proofer-ignore FILENAME={patch_version}-1.md` to remove the `data-proofer-ignore` attribute from the previous release blog. Review all occurrences of the link_test and data-proofer-ignore attributes globally. Exclude html and release files. 59 - [ ] If needed: Add a link to previous version's documentation to nav dropdown in `site/layouts/partials/navbar.html` on top and Run `make update-navbar-version FILENAME=site/layouts/partials/navbar.html` to remove the older version from the dropdown list. 60 - [ ] config.toml updates: 61 - [ ] Run `make site-config-update-version release_stage=patch` to update the release version and sync data between dev and prod. 62 - [ ] If needed: Update documentation with updated example images tags. 63 - [ ] If needed: Ensure that the alphaGates and betaGates for "Dev" in `test/upgrade/versionMap.yaml` 64 match the Alpha features and Beta features in the patch release branch's `pkg/util/runtime/features.go`. 65 - [ ] Create PR with these changes, and merge them with an approval. 66 - [ ] Run `git remote update && git checkout release-{patch_version} && git reset --hard upstream/release-{patch_version}` to ensure your code is in line with the upstream patch release branch. 67 - [ ] Publish SDK packages 68 - [ ] Run `make sdk-shell-node` to get interactive shell to publish node package. Requires Google internal process to publish. 69 - [ ] Run `make sdk-publish-csharp` to deploy to NuGet. Requires login credentials. Will need [NuGet API Key](https://www.nuget.org/account/apikeys) from Agones account. 70 - [ ] Run `make sdk-publish-rust`. This command executes cargo login for authentication, performs a dry-run publish, and if that succeeds, does the actual publish. Will need [crate's API TOKEN](https://crates.io/settings/tokens) from your crate's account. 71 - [ ] Run `make post-build-release VERSION={patch_version}` to build the artifacts in 72 GCS (These files will be attached in the release notes) and to push the latest images in the 73 release repository and push chart on agones-chart. 74 - [ ] Run `make tag-deprecated-images VERSION={patch_version}` to tag images from the previous 75 version with a `deprecated-public-image-<version>` label, indicating they are no longer 76 actively maintained. 77 - [ ] Run `make shell` and run `gcloud config configurations activate <your development project>` to switch Agones development tooling off of the `agones-images` project within the shell. Run `exit` to exit the shell. 78 - [ ] Run `gcloud config configurations activate <your development project>` to make sure Agones development tooling is off of the agones-images project in your terminal. 79 - [ ] 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. 80 - [ ] Attach all assets found in cloud storage with {patch_version} to the draft GitHub Release. 81 - [ ] Copy any review changes from the release blog post into the draft GitHub release. 82 - [ ] Publish the draft GitHub Release. 83 - [ ] Run `git checkout main && git pull upstream main && git checkout -b post-release-{patch_version}`. 84 - [ ] In test/sdk/go/Makefile, change release_version to `{patch_version}`. 85 - [ ] Run `make shell` and execute `gcloud config configurations activate agones-images`. 86 - [ ] Within the shell, cd to the test/sdk/go/ directory and run `make cloud-build`. 87 - [ ] Verify and update Kubernetes version support and Agones version mappings in `test/upgrade/versionMap.yaml`. 88 - [ ] Update ReleaseVersion to the current release `{patch_version}`. 89 - [ ] Create a PR with these changes and merge into the patch release branch with approval. 90 - [ ] Email mailing lists with the release details (copy-paste the release blog post). Refer to the [Internal Mailing list posting guide](https://docs.google.com/document/d/1qYR9ccVURgujqFAIpjpSN2GRcCeQ29ow5H_V4sm4RGs/edit#heading=h.zge9gjrt8ws8) for details. 91 - [ ] Paste the announcement blog post to the #users Slack group. 92 - [ ] Post to the [agonesdev](https://twitter.com/agonesdev) Twitter account. 93 - [ ] Close this issue. _Congratulations!_ - the patch release is now complete! :tada: :clap: :smile: :+1: 94 95 [release-template]: https://github.com/googleforgames/agones/blob/main/docs/governance/templates/release.md 96 [release-draft]: https://github.com/googleforgames/agones/releases 97 [build-makefile]: https://github.com/googleforgames/agones/blob/main/build/Makefile 98 [Internal Mailing list posting guide]: https://docs.google.com/document/d/1qYR9ccVURgujqFAIpjpSN2GRcCeQ29ow5H_V4sm4RGs/edit#heading=h.zge9gjrt8ws8