Holochain release "blessing"

Until this point, we have been pushing new binaries straight through into a Holonix release as soon as they built. While this is great for some people, who need to be working against the bleeding edge, it really hurts others looking for stability.

Until this point, we haven’t really had anything that we could call “stable,” but as we move into “final exam” preparations, and increasingly high stakes events (hello Holo World world!), it makes sense to give downstream consumers more room to breathe.

We are focusing on shipping right now, so we’ve kept the solution pretty low-fi until now.

There is a new branch called love that we manually push commits to from master and then the https://holochain.love domain picks this up.

The branches have unconventional names and there are no formal processes around this manual push yet. Expect this to firm up and mature after HoloPort shipments.

The simple story is that we need tests to pass on Holonix and that there be some kind of announcement and documentation review before pushing to the love branch. We are calling this process “blessing.”

There are many reasons why tests might pass upstream and fail in Holonix (e.g., when automatically generated zomes become stale) so it’s best to plan based on your use case rather than what we’re doing.

  • If you’re involved in alpha testing Holochain and Holoscape internals directly then track/pin against the Holonix master branch or directly build binaries yourself as appropriate
  • If you’re working on zomes on a day-to-day basis then pin against some commit in the love branch for binaires and use published crates on crates.io for library dependencies
  • If you’re planning a hackathon or using Holochain casually then just use https://holochain.love and the automatic scaffolding tools

This new process will allow power users and developers who need to track the bleeding edge to pin against new builds coming in if they need it (instructions here). It also will allow for more stability/quality assurance in what holochain.love tracks, which is great for hackathons and other events where the Holo-curious can mess around and try things out.

Instructions on how to do all this are documented on the Holonix docs site.

Please comment on the Holochain Forum and let us know how things are coming along.


also see Release churn, branch stability and changes to binary building if you’re looking for additional context

Thanks @thedavidmeister this is some great work.

a small update for everyone wondering why .love points at 0.0.38 still…

we are significantly improving our testing/QA for any release candidate to pass the blessing requirements

  • the tests on holochain/holochain-rust repo all need to pass
  • the tests on the holochain/holonix repo all need to pass
  • the final exam tests all need to pass (new!)
  • the team maintaining all the tutorials and documentation needs to be happy that the supporting tooling (e.g. hc and nix shell) is all documented and working properly (new!)

currently there is a release candidate that is close from a technical level (the 0.0.41-alphaX stream and contains a lot of bug-fixes, scalability improvements, etc. relative to 0.0.38

there is an outstanding bug in hc that should be cleaned up relatively soon, but zooming out a bit, we could probably push 0.0.41 through right now (the docs are up to date) as they are generally passing all the tests we’ve run against release binaries up to this point

this means, if you want to use the binaries, go ahead and point your project at master in holonix - as per docs: https://docs.holochain.love/docs/configure/

the new process includes a “final exam” run, which is something we’re still tooling infrastructure for, which basically involves baking the various binaries into a set of dedicated docker boxes, spinning them up on AWS in a cluster, throwing stress/networking tests at them and also testing the behaviour tests from a suite of hApps at the binaries

this means that, as well as verifying the “lab room” results of the binaries we ship, we can also review how they perform in something closer to real-world usage with real-world hApps

it’s all nearly done… watch this space, we’re working to get 0.0.41-alphaX out ASAP :smiley: