Getting Started Developing with Wist

Wist is hosted at GitHub and uses Git for source control. In order to obtain the source code, you must first install Git on your system. Instructions for installing and setting up Git can be found at http://help.github.com/set-up-git-redirect.

If you simply want to create a local copy of the source to play with, you can clone the main repository using this command:

$ git clone git://github.com/willowtreeapps/wist.git

If you’re planning on contributing to Wist, then it’s a good idea to fork the repository. You can find instructions for forking a repository at http://help.github.com/fork-a-repo/. After forking the Wist repository, you’ll want to create a local copy of your fork.

Prerequisites

Before you can get started developing, you’ll need to have a couple of things installed:

Once you have a local copy and have Node.JS and npm installed, you’ll need to install the Wist dependencies:

$ cd wist
$ npm install

Now when you run wist, it will be running your local copy and showing your changes.

Note: It’s a good idea to re-rerun npm install whenever you pull from the main repository to ensure you have the latest development dependencies.

Running the Docs

In order to run the docs you will need these additional prerequisites:

You need to change directories into the into the docs folder

cd docs

Then you can run

bundle exec jekyll serve

This command launches an instance of Jekyll that allows you to view a local copy of the docs, found at http://localhost:4000/wist/.

Directory Structure

The Wist directory and file structure is as follows:

  • bin - executable files that are available when Wist is installed
  • config - contains wist defaults
  • dist - contains distributable binaries and generated sources
  • docs - documentation for the project
  • libs - contains native binaries required to build the wasm module
  • src - contains the source code
    • cpp - contains C++ sources
    • js - contains javascript sources
      • formatters - all source files defining formatters
      • rules - all source files defining rules
  • test - the main unit test folder
    • lib - tests for the source code
    • regression - regression tests