[go: up one dir, main page]

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.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by Mathias Bourgoin

Merge request reports

Loading