Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.38.0 #3618

Closed
46 tasks done
Kalaiselvi84 opened this issue Jan 30, 2024 · 1 comment · Fixed by #3620
Closed
46 tasks done

Release 1.38.0 #3618

Kalaiselvi84 opened this issue Jan 30, 2024 · 1 comment · Fixed by #3620
Assignees
Labels
kind/release Checklist for a release

Comments

@Kalaiselvi84
Copy link
Contributor

Kalaiselvi84 commented Jan 30, 2024

Prerequisites

  • Have at least Editor level access to agones-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 git@github.com:yourname/agones.git.
    • An upstream remote that points to git@github.com:googleforgames/agones.git.
  • Have a gcloud config configurations configuration called agones-images that points to the same project.
  • Edit access to the Agones Release Calendar
  • Get approval for Release Title and Description

Steps

  • Run make shell and run gcloud 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 1.38.0-1 service on GCP/App Engine/Services.
  • Run make sdk-update-version release_stage=before version=1.38.0 file. This command will update the version number in the sdks/install files to 1.38.0.
  • Create a draft release with the release template.
    • run make release-example-image-markdown to populate example images and append the output in Images available with this release section
    • Draft a new release with release draft. Update the Tag version and Release title with the release version and click on Generate release notes to generate the release notes with Full Changelog info for 1.38.0. Make sure to add the description. Include the Images available with this release section from the previous step that will be present after the Full Changelog and save the draft.
    • copy the 1.38.0 release details from the Full Changelog and paste it on top of the CHANGELOG.md file
  • Site updated
    • Create a new file named 1.38.0.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=1.38.0-1.md to remove data-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=1.38.0 to remove all instances of the feature 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 of feature 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 Run make 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.
  • 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 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 run gcloud config configurations activate <your development project> to switch Agones
    development tooling off of the agones-images project.
  • Smoke Test: run make install-release to view helm releases, uninstall agones-system namesapce, 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 1.38.0 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 run gcloud config configurations activate <your development project> to switch Agones development tooling off of the agones-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 executes cargo 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=1.38.0 file. This command will update the SDKs and install directories files with 1.38.0+1-dev and will also set 1.38.0+1 in build/Makefile.
  • Create PR with these changes, and merge them with approval
  • Close this issue. Congratulations! - the release is now complete! 🎉 👏 😄 👍
@Kalaiselvi84 Kalaiselvi84 added the kind/release Checklist for a release label Jan 30, 2024
@Kalaiselvi84 Kalaiselvi84 self-assigned this Jan 30, 2024
This was referenced Jan 30, 2024
@markmandel
Copy link
Member

Twitter post scheduled!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/release Checklist for a release
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants