Scripts: Add proto_manager to automatically handle protocol stabilisation
What
Automatically creates a protocol suited for the stabilisation period from an existing development protocol.
Why
to help with stabilisation and snapshotting.
How
As described in https://docs.google.com/document/d/1-FeGPg8RjA3-dK3ZELntB3nIneP9H_EsMg7JrHFSoIg/edit#heading=h.hlbzjvjqfinf, the goal is to make stabilisation and snapshotting of protocols faster and safer.
This first step helps with building a 'beta' protocol from alpha. Beta is automatically linked into the manifest. This is based on existing scripts for snapshotting. The main difference with previous solutions is that beta exists in the master branch. This helps by making changes to beta easier and by making the snapshotting a simple renaming/relinking of beta.
Manually testing the MR
The script is self explanatory by calling:
./scripts/proto_manager.sh --help
Usage: ./scripts/proto_manager.sh [options]
Options:
-h , --help
Print this help message.
-s, --stabilise
Stabilise a protocol.
-f, --from <protocol_source>
The source protocol to stabilise or snapshot.
-t, --to <protocol_target>
The target protocol to stabilise or snapshot.
tl;dr:
- To stabilise protocol alpha into beta and link it in the node, client and codec:
./scripts/proto_manager.sh --stabilise --from alpha --to beta
or
./scripts/proto_manager.sh -s -f alpha -t beta
The script will create a series of git commit that should allow you to review the stabilisation process more easily.
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR