Summary

We have an update to Tryorama (formerly Try-o-rama), which takes a new approach to setting up conductor configurations. It also integrates with the Tryorama Control Protocol (TryCP) that we’re introducing today. TryCP enables remote management of Holochain conductors on other machines. Together, these updated tools promote higher quality test results in more realistic conditions.

Highlights

  1. Introducing TryCP
  2. Updates to Tryorama

Details

1. Introducing TryCP

We are rolling out a new protocol, TryCP, that as we mentioned before, enables remote management of Holochain conductors on other machines. This is an open protocol that anyone can use to implement a client or server. TryCP servers can spawn and kill conductor processes, manage configuration files, and reset states. A TryCP client can request that the server do these things on their behalf.

To give it a go, check out our repo, or the latest version of Tryorama (see below), which has a built-in TryCP client. This is a vital tool, not just for testing Holochain, but for anyone writing scenario tests or testing their app under heavy load. You can deploy as many remote machines as necessary and have Tryorama run the scenario tests by spinning up remote conductors for these remote machines. Now, you can run automated Holochain tests on many remote machines. Even better, these tests will be networking (using sim2h) with the actual internet to connect each machine, giving you higher quality test results and a better picture of how machines running your hApp will function in realistic conditions (e.g., simulating hardware, dog chews through ethernet cable, toddler unplugs HoloPort, etc.).

2. Updates to Tryorama

Speaking of Tryorama, our just-released version 0.2.0 has some new features and breaking changes.

Name change

As you may have already noticed, the first change is that we removed the dashes from the name. We realized “Try-o-rama” couldn’t be used in code—plus, removing the dashes saves you a few keystrokes. The name change has already been made in both our GitHub repo and NPM package listing. You can still mentally insert the dashes if you prefer :-)

TryCP integration

More significantly, this new release gives you the ability to manage remote conductors during scenario testing by integrating TryCP. If you have access to machines running a server that speaks TryCP, you can easily set up your tests to spin up conductors on your remote machines, rather than on the local one running the tests. This will extend the functionality of Tryorama and make it easier for you to do end-to-end testing in real-world settings, which was one of our goals in developing Tryorama.

Breaking change: New conductor configuration process

The new release introduces a breaking change to the way conductor configuration is specified. In previous versions of Tryorama, the API was set up to take an 'easy’ (sugared) or 'hard' (plain) approach to configuration. One version, with a single required field, was designed for common cases; the other version, which was more verbose, was for special cases where very specific configurations were necessary. This allowed common conductor configurations to be created easily, with as little boilerplate as possible. The problem was that if you departed from the well trodden path in any significant way, you had to switch to ‘hard’ (plain).

To simplify, we have merged these two approaches into one process in Tryorama 0.2.0, as well as making it more expressive. This means that with just a slight increase in boilerplate, you can write test conductor config files without much effort and gradually add more complexity as needed. Unlike earlier versions, you won’t have to make the leap from ‘easy’ to ‘hard’ if you need a greater degree of customization.

We encourage you to check out the repo for Tryorama, which lays out the conductor config process in more detail. Please offer any feedback you may have to help us improve Tryorama for the future.

Holochain Core Concepts and Tutorials

We want to hear from you! Help us create documentation that would benefit your understanding of Holochain and aid you in building apps. If you have already read, explored, or completed the Holochain Core Concepts and Tutorials, we would appreciate your input through this quick survey! Please take a moment to tell us about your experience and how we might help you further!

Development Status: