Hi Tezos Devs.
Our next-gen automation framework for Tezos is live. Meet tzcompose
:
- automate test-case setups
- reproduce transaction sequences
- generate traffic for protocol/application testing
- deploy multi-contract systems
- run complex init sequences
- clone contracts and setup logic between networks
- blog post: TzCompose - A Tezos Automation Framework
- repo: https://github.com/blockwatch-cc/tzgo/tree/master/cmd/tzcompose
I’m looking for feedback and feature requests, so please try it out and share what you might need to support your use cases better. Let’s work together on making Tezos more robust and easier to use!
Background
The idea for tzcompose came out of our own need to easily implement and reproduce complex transaction sequences for product development and testing (mainly indexer use-cases). One of many problems we face is that whenever a new protocol release is announced and a subsequent testnet is launched, core team(s) never bother to produce transaction samples for new features nor provide an exact feature specification. Looking back at almost all protocols since Athens (and earlier), each time we had to spend several weeks reverse-enineering and understanding actual protocol behavior. The recent Oxford debacle made it clear that even core teams would benefit from enhanced testing capabilities.
With TzCompose every team, no matter on which level they develop, can now maintain a corpus of easily repeatable test deployments and transaction sequences. TzCompose lowers the barriers to setup/write/execute on-chain tests and may even be used in production for contract maintenance tasks. Let your imagination go wild.
Outlook
Once TzCompose matures to beta status we intend to launch a public repository where all interested ecosystem projects can contribute their contracts and compose scripts. This collection would then be used in continuous integration tests against new protocols before they are released and on public testnets to setup all infrastructure right after launch. That way protocol devs could learn what may break when they introduce changes and ecosystem teams would gain canary test at low cost.