Skip to content

Commit

Permalink
Release checklist (#226)
Browse files Browse the repository at this point in the history
This completes all the pieces for building and distributing a release of
the project. 🎉

Closes #213
  • Loading branch information
markmandel authored Apr 20, 2021
1 parent 54a6b2f commit f8bbafe
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 1 deletion.
6 changes: 6 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ To gain access to the details of a specific Cloud Build, join the
See the [Google Cloud Build documentation](https://cloud.google.com/cloud-build/docs/) for more details on
how to edit and expand the build process.

## Releases

* At the monthly community meeting it will be decided if a release should be built.
* To release, create an issue from the [release issue template](./build/templates/release-issue.md), tag it as
`kind/release` and follow each of the steps.

### Additional Resources

#### Coding and Development
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ It is designed to be used behind game clients as well as in front of dedicated g
- [x] Metrics tracking and export
- [ ] Documentation
- [ ] Examples (standalone, Agones)
- [ ] Release process with binaries and images
- [x] Release process with binaries and images

## Project State

Expand Down
19 changes: 19 additions & 0 deletions build/templates/github-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# v{version}

This is the {version} release of Quilkin.

{ write description of release }

Check the [documentation](https://github.com/googleforgames/quilkin#usage) for details on features, installation and
usage.

**Implemented enhancements:**

{ insert enhancements from the changelog and/or security and breaking changes }

See [CHANGELOG](https://github.com/googleforgames/quilkin/blob/release-{version}/CHANGELOG.md) for more details on changes.

Images available with this release:

- [us-docker.pkg.dev/quilkin/release/quilkin:{version}](https://us-docker.pkg.dev/quilkin/release/quilkin:{version})
- [us-docker.pkg.dev/quilkin/release/quilkin:{version}-debug](https://us-docker.pkg.dev/quilkin/release/quilkin:{version}-debug)
39 changes: 39 additions & 0 deletions build/templates/release-issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Release {version}

## Prerequisites

- [ ] Have at least `Editor` level access to `quilkin` Google Cloud project.
- [ ] Local git remote `upstream` points at `git@github.com:googleforgames/quilkin.git`.

## Steps

- [ ] Review that closed issues have appropriate tags for the changelog.
- [ ] Review that merged PRs have appropriate tags for the changelog.
- [ ] Run `git remote update && git checkout main && git reset --hard upstream/main` to ensure your code is in line
with upstream.
- [ ] Edit the `version` field in `Cargo.toml` and remove the `-dev` suffix.
- [ ] cd to `./build/release` and run `make` to submit the cloud build
- [ ] Download all the artifacts from the cloud build.
- [ ] Move the CHANGELOG.md to the root of this repository, replacing any previous versions.
- [ ] Review `license.html` to ensure that there aren't any new MPL, GPL, LGPL, or CDDL dependencies from the last
release. If there are:
- [ ] Add the dependencies to
[archive_dependencies.sh](https://github.com/googleforgames/quilkin/blob/main/build/release/archive_dependencies.sh)
so that the source is archived in the container image.
- [ ] Reset checklist back to "run `make` to submit the cloud build", and start from there again.
- [ ] Submit these changes as a PR, and merge with approval.
- [ ] Create a [Github release](https://github.com/googleforgames/quilkin/releases/new) using the
[Github release template](./github-release.md).
- [ ] Populate the tag with `v{version}`.
- [ ] Attach all the remaining cloud build artifacts to the release.
- [ ] Submit the release.
- [ ] Run `git remote update && git checkout main && git reset --hard upstream/main` to ensure your code is in line
with upstream.
- [ ] Run `git checkout -b release-{version} && git push upstream` to create a release branch.
- [ ] Post an announcement to the [mailing list](https://groups.google.com/g/quilkin-discuss).
- [ ] Post to the [Twitter account](https://twitter.com/quilkindev).
- [ ] Edit `Cargo.toml` and increment the [minor version](https://semver.org/) and apply the `-dev` suffix to the
`version`.
- [ ] Submit this change as a PR, and merge with approval.

Congratulation! 🎉 You have successfully released Quilkin!

0 comments on commit f8bbafe

Please sign in to comment.