# The asclepias Developer Guide

 This guide is designed for asclepias developers, i.e. folks who contribute the asclepias repository. For the user guide, click here.

These documents describe how to:

• contribute to asclepias

• set up your development environment

To develop and work with asclepias locally, clone the repository:

git clone git@gitlab.novisci.com:nsStat/asclepias.git

## Building asclepias packages

This section outlines asclepias-specific build instructions. For details on building Haskell projects in general, see the Usage Guide. TODO not sure the best way to link to the usage guide here TODO can this link be added as an doc-level attribute?

The asclepias repository is organized using a multiple project setup. Some of the subdirectories of the repository such as hasklepias-core, hasklepias-main, etc. contain a Cabal package that we call a "project" or "sub-project".

We can choose which subset of projects to build, including theentire asclepias project, using the cabal build command as outlined in the Usage Guide.

 .Best Practice Build the entire asclepias project only after all edits are complete. This saves compile time.

## Versioning asclepias

asclepias tries to follow semantic versioning 2.0.0.

 While each component package of asclepias has its own version, the primary version of asclepias is the version in hasklepias-main. That is, when we refer to the "version of asclepias", we mean the version number in hasklepias-main.

Starting with version 0.24.0, release branches should be named by the version number starting with v and without the patch number. For example, v0.24 is the release branch for the 0.24 line (0.24.0, 0.24.1, etc).

 The antora-playbook.yml file in the noviverse-site repository determines which branches of asclepias are used for the documentation site.
 Until asclepias version 1.0 is released, no guarantees of backwards-compatability are made.