Skip to content

Release Cycle

benny daon edited this page Aug 25, 2021 · 12 revisions

% cat rc.md

Spacemesh Release Cycle

This document contains instructions on creating and launching a new spacemesh network. It also contains flows of automated and manual processes and the docs to be updates.

Review & Trigger

When it's time to release a version, its manager kicks off with reviewing the git log and ensuring the changelog is inorder. Once the manager is satisified he tags the version as a release candidate in the format of "v3.4.5-rc6"

Launch & Test

Upon a new RC tag, a github action pipeline will use go-spacecraft to deploy a new network, its explorer and dashboard to it. Once the network is up, the pipeline will run the acceptance tests and abort the cycle if they fail.

Simmer & Verify

Let the network run for at least 7 days while visiting the dashboard daily. If consensus totally fails (i.e., the verified layer totally stops advancing), or another serious issue occurs, then it's obviously time to retire that network.

Release

Once the manager is satisified with the network's quality he releases it by tagging it with a version like "v3.4.5". This will trigger a pipeline to publish the new version in github and update the TestNet by updating DNS records.

At this stage, assuming everything is working, the testnet can be publicly released. Finalize the releases, including notes, for both the go-spacemesh release and the Smapp release (and CLIWallet as well, if there is a new release). Coordinate with the community team to announce the new release on Twitter, Discord, etc.

Retiring the old testnet

Make sure that the prior testnet is completely retired at this stage. All managed nodes should be shut down and logs should be archived for future reference.

Handling Failures

In case of deployment failures Write a postmortem, or a recap (if it died a natural death), and publish it in the Spacemesh blog. Describe any issues that arose, how we responded to them, and the plan for the next testnet.

Compatibility issues

Bear in mind that there are a number of components that all need to work together for the testnet to work, including go-spacemesh, poet, smapp, the testnet tap, explorer backend, explorer frontend, dashboard, monitoring, spacecraft, and CLIWallet. While creating the new go-spacemesh build, be especially careful of any new changes that may introduce compatibility issues - which should be documented at the top of each PR.

Getting Started

Dev Guides

Product Specs

Clone this wiki locally