This directory contains a Holochain app that functions as a living specification of Holochain and its Rust HDK (Holochain Development Toolkit).
Please see the Contribute section for our protocol on how we do this.
The primary dependency is on the Holochain command line tools which should be installed automatically by the build script but can also be installed manually with make install_cli.
Nodejs and NPM, for compiling Javascript tests, Version 8 or higher
To verify it is all working, run each of the following two commands.
hc
If you see the available commands listed, they're successfully installed.
node -v
If you see vA.B.C where A, B, and C are numbers, you've got node installed.
Make sure that you fully completed the installation of dependencies. Then, within this directory run the following:
./build_and_test.sh
You should see the tests all passing successfully.
In order to get from the source directory tree to a Holochain DNA package, and then test that, several steps need to be taken which are all automated.
This includes compiling any Rust code projects to WASM, and then assembling a DNA file (.dna.json) with all configuration snippets and the WASM in it.
It will error at this point if for some reason it can't successfully build the WASM, or the DNA file.
Once this packaging is complete, there are a few more steps.
Unless they have already been installed, it will install node_modules to your test folder.
Finally, it uses hc to run those tests, giving you the feedback you really want to test code, and develop new functionality.
Holochain is an open source project. We welcome all sorts of participation and are actively working on increasing surface area to accept it. Please see our contributing guidelines for our general practices and protocols on participating in the community.
Copyright (C) 2018, Holochain Foundation
This program is free software: you can redistribute it and/or modify it under the terms of the license p rovided in the LICENSE file (GPLv3). This program is distributed in the hope that it will be useful, bu t WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**Note:** We are considering other 'looser' licensing options (like MIT license) but at this stage are using GPL while we're getting the matter sorted out. See [this article](https://medium.com/holochain/licensing-needs-for-truly-p2p-software-a3e0fa42be6c) for some of our thinking on licensing for distributed application frameworks.