From af2477891ccb1dab90db213b064620779de0f4ec Mon Sep 17 00:00:00 2001 From: Joseph Holley Date: Fri, 8 Sep 2023 09:55:04 +0900 Subject: [PATCH] Release 1.8 (#1596) --- .github/ISSUE_TEMPLATE/release.md | 44 ++++++++++++----------------- Makefile | 2 +- README.md | 2 +- cloudbuild.yaml | 2 +- install/helm/open-match/Chart.yaml | 4 +-- install/helm/open-match/values.yaml | 2 +- 6 files changed, 24 insertions(+), 32 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release.md b/.github/ISSUE_TEMPLATE/release.md index 62f686dc8..03fadec05 100644 --- a/.github/ISSUE_TEMPLATE/release.md +++ b/.github/ISSUE_TEMPLATE/release.md @@ -106,17 +106,16 @@ only required once.** git push origin release-0.5 ``` -- [ ] Announce a PR freeze on release-X.Y branch on [open-match-discuss@](mailing-list-post). +- [ ] Announce a PR freeze on release-X.Y branch on [open-match-discuss@](https://groups.google.com/forum/#!forum/open-match-discuss). - [ ] Open the [`Makefile`](makefile-version) and change BASE_VERSION entry. - [ ] Open the [`install/helm/open-match/Chart.yaml`](om-chart-yaml-version) and change the `appVersion` and `version` entries. - [ ] Open the [`install/helm/open-match/values.yaml`](om-values-yaml-version) and change the `tag` entries. - [ ] Open the [`cloudbuild.yaml`] and change the `_OM_VERSION` entry. - [ ] There might be additional references to the old version but be careful not to change it for places that have it for historical purposes. -- [ ] Run `make release` -- [ ] Run `make api/api.md` in open-match repo to update the auto-generated API references in open-match-docs repo. +- [ ] Update usage requirements in the Installation doc - e.g. supported minikube version, kubectl version, golang version, etc. - [ ] Create a PR with the changes, include the release candidate name, and point it to the release branch. - [ ] Go to [open-match-build](https://pantheon.corp.google.com/cloud-build/triggers?project=open-match-build) and update all *post submit* triggers' `_GCB_LATEST_VERSION` value to the `X.Y` of the release. This value should only increase as it's used to determine the latest stable version. -- [ ] Merge your changes once the PR is approved. +- [ ] Merge your changes once the PR is approved. Note: the helm chart is not published to the public registry until the merge is complete (it's a second cloud build trigger upon merge), so you won't be able to do final release testing until after all checks/approvals are finished! ## Create a release branch in the upstream open-match-docs repository - [ ] Open [`Makefile`](makefile-version) and change BASE_VERSION entry. @@ -132,50 +131,43 @@ only required once.** - [ ] Create the next [version milestone](https://github.com/googleforgames/open-match/milestones) and use [semantic versioning](https://semver.org/) when naming it to be consistent with the [Go community](https://blog.golang.org/versioning-proposal). - [ ] Create a *draft* [release](https://github.com/googleforgames/open-match/releases). Note that github has both "Pre-release" and "draft" as different concepts for a release. Until the release is finalized, only use "Save draft", and do not use "Publish release". - [ ] Use the [release template](https://github.com/googleforgames/open-match/blob/main/docs/governance/templates/release.md) - - [ ] `Tag` = v{version}. Example: v0.5.0. Append -rc.# for release candidates. Example: v0.5.0-rc.1. - - [ ] `Target` = release-X.Y. Example: release-0.5. - - [ ] `Release Title` = `Tag` + - [ ] `Tag = v{version}` (Example: v0.5.0. Append -rc.# for release candidates. Example: v0.5.0-rc.1.) + - [ ] `Target = release-X.Y` (Example: release-0.5.) + - [ ] `Release Title = v{version}` (Must match `Tag`) - [ ] `Write` section will contain the contents from the [release template](https://github.com/googleforgames/open-match/blob/main/docs/governance/templates/release.md). - [ ] Add the milestone to all PRs and issues that were merged since the last milestone. Look at the [releases page](https://github.com/googleforgames/open-match/releases) and look for the "X commits to main since this release" for the diff. -- [ ] Review all [milestone-less closed issues](https://github.com/googleforgames/open-match/issues?q=is%3Aissue+is%3Aclosed+no%3Amilestone) and assign the appropriate milestone. -- [ ] Review all [issues in milestone](https://github.com/googleforgames/open-match/milestones) for proper [labels](https://github.com/googleforgames/open-match/labels) (ex: area/build). - [ ] Review all [milestone-less closed PRs](https://github.com/googleforgames/open-match/pulls?q=is%3Apr+is%3Aclosed+no%3Amilestone) and assign the appropriate milestone. - [ ] Review all [PRs in milestone](https://github.com/googleforgames/open-match/milestones) for proper [labels](https://github.com/googleforgames/open-match/labels) (ex: area/build). - [ ] View all open entries in milestone and move them to a future milestone if they aren't getting closed in time. https://github.com/googleforgames/open-match/milestones/v{version} - [ ] Review all closed PRs against the milestone. Put the user visible changes into the release notes using the suggested format. https://github.com/googleforgames/open-match/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+is%3Amerged+milestone%3Av{version} - [ ] Review all closed issues against the milestone. Put the user visible changes into the release notes using the suggested format. https://github.com/googleforgames/open-match/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed+milestone%3Av{version} -- [ ] Verify the [milestone](https://github.com/googleforgames/open-match/milestones) is effectively 100% at this point with the exception of the release issue itself. +- [ ] Verify everything in the [milestone](https://github.com/googleforgames/open-match/milestones) is complete with the exception of the release issue itself. -## Build Artifacts +## Build And Test Artifacts -- [ ] Go to the History section and find the "Post Submit" build of the merged commit that's running. Wait for it to go Green. If it's red, fix error repeat this section. Take note of the docker image version tag for next step. Example: 0.5.0-a4706cb. +- [ ] Navigate to the [Cloud Console](https://console.cloud.google.com) in a browser and open the [Cloud Build History section](https://console.cloud.google.com/cloud-build/builds?project=open-match-build) and find the latest "Post Submit" build (trigger id: 9a451c7a-197b-4a38-a612-21f4c53c42fd) of the merged commit. The build may still be running, if so wait for it to finish. If it failed, fix the error and repeat this section. Open the build details and click on step 12, "Build: Docker Images". Take note of the docker image version tag near the top of the build log. This is the "{source version tag}" referenced in various commands below. Example: `0.5.0-a4706cb`. - [ ] Run `./docs/governance/templates/release.sh {source version tag} {version}` to copy the images to open-match-public-images. -- [ ] If this is a new minor version in the newest major version then run `./docs/governance/templates/release.sh {source version tag} latest`. -- [ ] Once the images have successfully been pushed to the registry, modify the line `open-match.dev/open-match v0.0.0-dev` in all `go.mod` files in the [Tutorials] (https://github.com/googleforgames/open-match/tree/main/tutorials) directory to use the current release version. This includes all solution subdirectories as well -- [ ] Use the files under the `build/release/` directory for the Open Match installation guide. Make sure the artifacts work as expected - these are the artifacts that will be published to the GCS bucket and used in our release assets. -- [ ] Copy the files from `build/release/` generated from `make release` to the release draft you created. You can drag and drop the files using the Github UI. -- [ ] Update [Slack invitation link](https://slack.com/help/articles/201330256-invite-new-members-to-your-workspace#share-an-invite-link) in [open-match.dev](https://open-match.dev/site/docs/contribute/#get-involved). -- [ ] Test Open Match installation under GKE and Minikube enviroment using YAML files and Helm. Follow the [First Match](https://development.open-match.dev/site/docs/getting-started/first_match/) guide, run `make proxy-demo`, and open `localhost:51507` to make sure everything works. +- [ ] If this is not a release candidate or preview but a full release, run `./docs/governance/templates/release.sh {source version tag} latest` to tag these public images as the default version to pull from the registry. +- [ ] Once the images have successfully been pushed to the registry, modify the line `open-match.dev/open-match v0.0.0-dev` in all `go.mod` files in the [Tutorials] (https://github.com/googleforgames/open-match/tree/main/tutorials) directory to use the current release version for the remainder of your local release testing. This includes all solution subdirectories as well. This change is local only and doesn't get committed to git. +- [ ] Copy the installation files named `{sequence_number}-{component}.yaml` (example: `01-open-match-core.yaml`) from the [build folder in the private open-match-build-artifacts GCS bucket https://storage.mtls.cloud.google.com/open-match-build-artifacts/{version}](https://console.cloud.google.com/storage/browser/open-match-build-artifacts?project=open-match-build) to the release draft you created. Download them to your local machine, and then attach them to the draft using the Github UI. Note: the `05-jaeger.yaml` file no longer exists after release 1.8, so don't be surprised if that number is missing. +- [ ] Update the [Slack invitation link](https://slack.com/help/articles/201330256-invite-new-members-to-your-workspace#share-an-invite-link) in [open-match.dev](https://open-match.dev/site/docs/contribute/#get-involved). +- [ ] Test Open Match installation under GKE and Minikube enviroment using the YAML files attached to the release and the latest Helm chart, pulled from the public helm repo (not your local copy from github). Follow the [First Match](https://development.open-match.dev/site/docs/getting-started/first_match/) guide, run `make proxy-demo`, and open `localhost:51507` to make sure everything works. - [ ] Minikube: Run `make create-mini-cluster` to create a local cluster with latest Kubernetes API version. - [ ] GKE: Run `make create-gke-cluster` to create a GKE cluster. - - [ ] Helm: Run `helm install open-match -n open-match open-match/open-match` -- [ ] Update usage requirements in the Installation doc - e.g. supported minikube version, kubectl version, golang version, etc. + - [ ] Helm: Run `helm install open-match -n open-match open-match/open-match`. Note, the helm chart for the release is not public until the PR has been merged, so you cannot complete this step until after the PR is closed and the 'Tagged Build' trigger (trigger ID: 083adc1a-fcac-4033-bc38-b9f6eadcb75d) has completed, which publishes the helm chart. ## Finalize -- [ ] Save the release as a draft. +- [ ] Make sure your release draft reflects all steps up to this point, and is saved (so contributors can review it). - [ ] Circulate the draft release to active contributors. Where reasonable, get everyone's ok on the release notes before continuing. - [ ] Publish the [Release](om-release) in Github. This will notify repository watchers. - [ ] Publish the [Release](om-release) on Open Match [Blog](https://open-match.dev/site/blog/). ## Announce -- [ ] Send an email to the [mailing list](mailing-list-post) with the release details (copy-paste the release blog post) -- [ ] Send a chat on the [Slack channel](om-slack). "Open Match {version} has been released! Check it out at {release url}." +- [ ] Send an email to the [mailing list](https://groups.google.com/forum/#!newtopic/open-match-discuss) with the release details (copy-paste the release blog post) +- [ ] Send a chat on the [Slack channel](https://open-match.slack.com/). "Open Match {version} has been released! Check it out at {release url}." -[om-slack]: https://open-match.slack.com/ -[mailing-list-post]: https://groups.google.com/forum/#!newtopic/open-match-discuss -[release-template]: https://github.com/googleforgames/open-match/blob/main/docs/governance/templates/release.md [makefile-version]: https://github.com/googleforgames/open-match/blob/main/Makefile#L53 [om-chart-yaml-version]: https://github.com/googleforgames/open-match/blob/main/install/helm/open-match/Chart.yaml#L16 [om-values-yaml-version]: https://github.com/googleforgames/open-match/blob/main/install/helm/open-match/values.yaml#L16 diff --git a/Makefile b/Makefile index 66081c331..026e406f3 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,7 @@ # If you want information on how to edit this file checkout, # http://makefiletutorial.com/ -BASE_VERSION = 1.8.0-rc.1 +BASE_VERSION = 1.8.0 SHORT_SHA = $(shell git rev-parse --short=7 HEAD | tr -d [:punct:]) BRANCH_NAME = $(shell git rev-parse --abbrev-ref HEAD | tr -d [:punct:]) VERSION = $(BASE_VERSION)-$(SHORT_SHA) diff --git a/README.md b/README.md index 04aab18a6..ba115287d 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ to Open Match. ## Support -* [Slack Channel](https://open-match.slack.com/) ([Signup](https://join.slack.com/t/open-match/shared_invite/enQtNDM1NjcxNTY4MTgzLTM5ZWQxNjc1YWI3MzJmN2RiMWJmYWI0ZjFiNzNkZmNkMWQ3YWU5OGVkNzA5Yzc4OGVkOGU5MTc0OTA5ZTA5NDU)) +* [Slack Channel](https://open-match.slack.com/) ([Signup](https://join.slack.com/t/open-match/shared_invite/zt-5k57lph3-Oe0WdatzL32xv6tPG3PfzQ)) * [File an Issue](https://github.com/googleforgames/open-match/issues/new) * [Mailing list](https://groups.google.com/forum/#!forum/open-match-discuss) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index f06ef170d..b86515c5e 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -185,7 +185,7 @@ artifacts: - api/*.swagger.json substitutions: - _OM_VERSION: "1.8.0-rc.1" + _OM_VERSION: "1.8.0" _GCB_POST_SUBMIT: "0" _GCB_LATEST_VERSION: "undefined" _ARTIFACTS_BUCKET: "gs://open-match-build-artifacts/" diff --git a/install/helm/open-match/Chart.yaml b/install/helm/open-match/Chart.yaml index c0978ea54..1a4386ee5 100644 --- a/install/helm/open-match/Chart.yaml +++ b/install/helm/open-match/Chart.yaml @@ -13,8 +13,8 @@ # limitations under the License. apiVersion: v2 -appVersion: "1.8.0-rc.1" -version: 1.8.0-rc.1 +appVersion: "1.8.0" +version: 1.8.0 name: open-match dependencies: - name: redis diff --git a/install/helm/open-match/values.yaml b/install/helm/open-match/values.yaml index 5d269d4ee..ff3c201c3 100644 --- a/install/helm/open-match/values.yaml +++ b/install/helm/open-match/values.yaml @@ -278,7 +278,7 @@ global: # Use this field if you need to override the image registry and image tag for all services defined in this chart image: registry: gcr.io/open-match-public-images - tag: 1.8.0-rc.1 + tag: 1.8.0 pullPolicy: Always # Expose the telemetry configurations to all subcharts because prometheus, for example,