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 Apr 8, 2020
·
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
- For the generated API docs:
- Run the following pipeline https://buildkite.com/improbable/gdk-for-unity-generate-docs against
develop
. - Unblock the pipeline with the release version (i.e. -
0.3.4
) - Once the pipeline is green, the generated docs have been published to ReadMe.
- Run the following pipeline https://buildkite.com/improbable/gdk-for-unity-generate-docs against
- ReadMe docs - ensure that there is a branch with the release version.
- Update all the package versions for each feature module in the docs.
- Update all the package versions in the make your own project section.
- For the generated API docs:
- 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
- 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>