This repository has been archived by the owner on Jan 18, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 77
Release Process
Paul Balaji edited this page Aug 5, 2019
·
48 revisions
This document outlines the process for releasing a version of the GDK for Unity and the starter projects.
- Announce in
#dev-unity-internal
that the release process has begun:develop
branches frozen, etc. Ask if anyone @here knows of any blocking defects in code or docs that should be resolved prior to commencement of the release process. - Run the
gdk-for-unity-shared-ci-release
pipeline on BuildKite. This pipeline runs through (most) of the release process.- It will first ask you to provide a release version (e.g. -
0.2.5
) - For each repository, it will: update package versions, prepare the changelog, open a PR, and kickoff release QA.
- Your job is to perform the release QA steps in the sections below:
- Once QA has been completed successfully, approve the RC PR and you can unblock the pipeline and it will proceed to the next repository.
- Please see the section below for instructions on implementing fixes.
- It will first ask you to provide a release version (e.g. -
- After the pipeline has finished running, each repository will be in the following state:
-
develop
will be ready-to-release. - There will be a draft release prepared.
-
- For each repository:
-
Rebase master against develop by running
git checkout master && git pull --rebase origin develop
. - Remove branch protection from
master
. - Push master with
git push -f origin master
. - Re-enable branch protection on
master
. - Publish the draft release (add a nice little message at the start, see previous releases for examples).
-
Rebase master against develop by running
- Publish docs:
- Checkout the
gdk-for-unity
repository and run./ci/generate-docs.sh <tagged-version>
. - This will checkout the repository, re-generate API docs and push a branch (and PR if you have Hub setup).
- There is a small manual step:
- Checkout the branch it pushed.
- Open
docs/api/.toc/toc.md
. - Copy the contents of this file into
docs/toc.md
, replacing the previous API Reference section. - Commit and push.
- Get approvals and merge into
docs-next
. - Checkout
docs-next
and ensure it is up-to-date by runninggit checkout docs-next && git pull
. - Remove branch protection from
docs-current
. - Force push
docs-next
todocs-current
withgit push -f origin docs-next:docs-current
. - This push will kick-off a build on BuildKite. You can find it here.
- Inspect the preview link in BuildKite and ensure that the docs look correct.
- Unblock the
Publish to Production
step!
- Checkout the
- Announce release
- Forums
- Discord
- #releases channel
- Internal email
If at any point in the below validation steps you encounter a blocker, you must fix that defect prior to releasing. Non-blocking issues should get a JIRA ticket (and potentially a known issue depending on what it is).
I've found a blocker in gdk-for-unity while QA'ing gdk-for-unity
- Branch off of
develop
and fix the bug. PR back intodevelop
. - Re-run the "Prepare GDK for Unity release" and then the "Add step for triggering release QA" build steps (sequentially).
I've found a blocker in gdk-for-unity while QA'ing FPS/Blank
- Revert any merges made from the
feature/release-<version>
branches.Note that this step will be removed in the future!
- Branch off of
develop
and fix the bug. PR back intodevelop
. - Restart the release BuildKite pipeline.
I've found a blocker in FPS/Blank while QA'ing FPS/Blank
- Branch off of
develop
and fix the bug. PR back intodevelop
. - Re-run the "Prepare FPS/Blank release" and then the "Add step for triggering release QA" build steps (sequentially).
- Ensure that each of the buttons in the
SpatialOS
toolbar behave as expected. - Validate that the Deployment Launcher functions as expected.
- Connect a Windows and MacOS client via the launcher to the deployment.
- Connect a mobile client (both iOS and Android) with development authentication.
- Connect a Windows client to a local deployment.
- Connect a Mac client to a local deployment.
- Connect a mobile iOS client to a local deployment.
- Connect a mobile Android client to a local deployment.
- Open the map builder window found in:
SpatialOS/Map Builder
.- Ensure that a 24 layer map generated with default map builder settings matches the navmesh in the
FPS-Development
andFPS-SimulatedPlayerCoordinator
scenes.
- Ensure that a 24 layer map generated with default map builder settings matches the navmesh in the
- Connect a Windows client to a local deployment.
- Connect a Mac client to a local deployment.
- Connect a mobile iOS client to a local deployment.
- Connect a mobile Android client to a local deployment.
- Connect a Windows client to a cloud deployment.
- Connect a Mac client to a cloud deployment.
- Connect a mobile iOS client to a cloud deployment.
- Connect a mobile Android client to a cloud deployment.
- Enable session-based gameplay and start the deployment manager. Ensure that the deployment manager is able to spin up deployments and restarts them after the session ends.
- Start a Windows client and connect to one of the sessions. Ensure that all buttons work and display the list of sessions as expected
- Start a MacOS client and connect to one of the sessions
- Start an Android client and connect to one of the sessions
- Start an iOS client and connect to one of the sessions
- Connect a Windows and MacOS client via the launcher to the deployment.
- Connect a mobile client (both iOS and Android) with development authentication.
- Connect a Windows client to a local deployment.
- Connect a Mac client to a local deployment.
- Connect a mobile iOS client to a local deployment.
- Connect a mobile Android client to a local deployment.
Note that when you connect, nothing will appear on screen - in the Inspector however, there should be a Player entity.
Hi all,
We've just released the GDK for Unity <version>, which contains <some description of what's in the new release>.
The full release notes can be found here: https://github.com/spatialos/gdk-for-unity/releases/tag/<version>
This release also contains updated versions of our FPS Starter Project and Blank Project:
• https://github.com/spatialos/gdk-for-unity-fps-starter-project/releases/tag/<version>
• https://github.com/spatialos/gdk-for-unity-blank-project/releases/tag/<version>
Cheers,
<your name here>