Summary

We’re continuing to create big improvements for our DevOps pipeline — especially for automated Windows builds. Work is underway to complete capability-based security, polish documentation, and improve the developer experience. Lastly, we’re getting ready for a Holochain/Holo developer retreat in May where we’ll work out the designs for some of our key components.

Highlights

  1. Upcoming: Holochain/Holo Developer Retreat
  2. API/Deprecation: Name Change in JSON-RPC Call
  3. Updated Quick Start Guide
  4. DevOps: Nix Shell and Windows Builds

Details

Holochain Dev Pulse April 22–April 29, 2019

1. Upcoming: Holochain/Holo Developer Retreat

In early May the Holochain and Holo developer teams are coming together under one roof to make plans for some of the big parts of our shared responsibilities. These in-person meetings have a way of making ideas solidify and quickly turn into code. Some of the subjects we plan to address are:

  • Developer/technical end-user experience and onboarding — unifying of disparate installation procedures into one consistent strategy
  • Holo light client/web conductor — Holochain running in the browser!
  • Future plans for the networking layer — implementing neighborhood sharding

2. API/Deprecation: Name Change in JSON-RPC Call

The name of the zome function’s arguments property has changed from `params` to `args` for JSON-RPC calls. Here’s a sample JSON-RPC request — the comments will show you what’s changed:

{

     “jsonrpc”: “2.0”,

     “id”: “0”,

     “method”: “call”,

     “params”: { // ← — — — — from JSON-RPC spec

          “instance_id”: “test-instance”,

          “zome”: “blog”,

          “function”: “create_blog”,

          “args”: { // ← — — — — zome function args; changed from “params”

               “blog”: {

                    “content”: “sample content”

               }

          }

     }

}

We made this change to remove the repetition that had crept in as a result of restructuring the way zome calls are made. We recently switched from calling the zome function directly to routing all calls through a method called `call`. This allowed us to pass capability tokens along with the request, but also meant that params for the outer `call` contained information about the zome function, which of course included arguments of its own.

Deprecation warning: The old usage of `params` will be deprecated soon. Please refactor your web UIs to use `args` or download the newest version of hc-web-client.

3. Updated Quick Start Guide

We’ve made numerous small updates to documentation, including the Quick Start Guide, which we believe has a friendlier process for introducing developers to Holochain. Please try out the new guide and let us know if it is easy to follow. We encourage you to share any issues or suggestions for this update, or for any of our documentation.

You will see more updates to our developer documentation in the coming months, including a guided introduction to each of Holochain’s core concepts. At the end of each of those sections, you will be rewarded with a running app.

4. DevOps: Nix Shell and Windows Builds

We’re continuing to have great success integrating Nix Shell into our process. It allows us to create a full environment with all binary dependencies built in. It’s a lot like Python’s virtualenv or Ruby’s RVM, but it works at the operating system level. It’s similar to Docker, but more lightweight. It’s bringing consistency to development setups and flexibility to our continuous integration pipeline, which means that pull requests get accepted faster and features get incorporated sooner.

Nix Shell doesn’t work on Windows, but our DevOps Engineer has been working his magic. Windows CI builds are now much faster and more dependable, rivaling our Linux and macOS builds.

Development Status: