Contributing to HDTree

All contributing is helpful! Anything from correcting a spelling mistake in the documentation, adding a new example, patching bugs, adding features, or as big as starting an API in a new language is highly encouraged. Below, I've collected some notes on these various levels of contribution.

Documentation Updates

If you are writing more detailed explanation or adding in a new example, please git clone the repository and make sure the updated documentation can be built into a website by jekyll and has the format you expect. You can build and view the documentation locally with the help of a container runner like docker to aid in this development.

New Examples

As far as I'm concerned, the more the merrier! If you are writing an example, please be detailed about which API and which version of that API you are using so that future readers can check if anything has changed since the example was written.

Patching Bugs or Adding Features

If you find a bug or think of a new feature to add, please open a GitHub Issue to start the discussion. This allows all collaborators to see what you plan to work on as well as potentially offer some insight on how to get going.

New API

If your favorite language does not have an API represented, feel free to start writing one! A first API does not have to be super powered. Even a simple one only focused on reading without parallelization can be a good start and open the door to other contributors to expand on it.

Again, similar to patching bugs or adding features, please create a GitHub issue to start a discussion and outline a plan for what you want to implement.

As you get closer to a functional API, integration tests will also be requested. So keep in mind that you may need to be able to run one of the other APIs to help make sure your API is reading and/or writing a correct form of the HDTree meta-format.