# Developing go-jsonschema * [Development Setup](#setup) * [Commit Message Guidelines](#commits) * [Writing Documentation](#documentation) ## Development Setup This document describes how to set up your development environment to build and test jsonschema ### Installing Dependencies Before you can build jsonschema, you must install and configure the following dependencies on your machine: * [Git](http://git-scm.com/): The [Github Guide to Installing Git][git-setup] is a good source of information. * [The Go Programming Language](https://golang.org): see golang.org to get started ### Forking jsonschema on Github To contribute code to jsonschema, you must have a GitHub account so you can push code to your own fork of jsonschema and open Pull Requests in the [GitHub Repository][github]. To create a Github account, follow the instructions [here](https://github.com/signup/free). Afterwards, go ahead and [fork](http://help.github.com/forking) the [jsonschema frontend repository][github]. ### Building jsonschema To build jsonschema, you clone the source code repository and use Yarn to run the electron app: ```shell # Clone your Github repository: git clone https://github.com//jsonschema.git # Go to the jsonschema directory: cd jsonschema # Build the qri binary go install ``` ## Git Commit Guidelines We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. But also, we use the git commit messages to **generate the Qri change log**. ### Commit Message Format Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: ``` ():