Releases are automated by this workflow. When a release should be created following things need to be done:
This step can be done using Makefile or manually.
see makefile here
type=patch make version-bump # incrment the patch version
type=minor make version-bump # incrment the minor version
type=major make version-bump # incrment the major version
This function will take care also of branch and commit creation. Review the changes and push them, then follow the steps 3 and 4 below to finish the release.
Important: This function will also incrment the spec version in the runtime.
If you already did this in another commit or you don't need to do this, you can instruct the Makefile version-bump function to skip it by setting the retain_spec_version
variable to 1 or any other value.
type=patch retain_spec_version=1 make version-bump
1 - Create a new branch for the release, increment the version for all components in the monorepo. Here is a list of the files that need to be changed to make the release:
-
substrate-node
- Increment spec version in the runtime lib.rs
- Increment version in Cargo.toml
- Increment chart
version
filed in Chart.yaml - Increment chart
appVersion
filed in Chart.yaml
-
tfchainbridge
- Increment chart
version
filed in Chart.yaml - Increment chart
appVersion
filed in Chart.yaml
- Increment chart
-
activation-service
- Increment chart
version
filed in Chart.yaml - Increment chart
appVersion
filed in Chart.yaml - Increment package
version
in package.json
- Increment chart
-
Js TFChain Client
- Increment package
version
in package.json
- Increment package
-
Scripts
- Increment package
version
in package.json
- Increment package
-
Tools/fork-off-substrate
- Increment package
version
in package.json
- Increment package
2 - Commit the changes
3 - Create a new tag with the version number prefixed with a v
(e.g. v1.0.0
)
4 - Push the tag to the repository
The workflow will create a release draft with the changelog and the binaries attached
The generated changelog will be based on the merged Pull requests, so having PRs with meaningful titles is important.
See validate for instructions on how to validate a runtime.
To upgrade the runtime for a network based on a release, download the runtime attached to the release (tfchain_runtime.compact.compressed.wasm) and upload it to the network using a council proposal.
The proposal should be a set_code
proposal with the runtime as the code and majority of the council should vote in favor of the proposal.