Skip to content

Latest commit

 

History

History
57 lines (39 loc) · 2.41 KB

CONTRIBUTING.md

File metadata and controls

57 lines (39 loc) · 2.41 KB

Contributing

Here is a document describrining how to contribute to this project.

Travic CI

Recently we have begun using Travis CI to automate multiple parts of development.

Testing

Primarily it serves as a way to test every branch and pull request, using commands like lein check and lein test. Currently, the test cases are very limited and do not cover much of the codebase.

Docs

Docs are auto generated from function metadata using codox.

On every commit to master, the docs are automatically regenerated and pushed to the gh-pages branch.

To generate them locally run lein codox and then open doc/index.html.

Currently, generating the docs have the side effect of running some examples, because I couldn't figure out how stop codox from loading all example files.

In the metadata, you can skip functions and also link to other functions.

In order for this work, you must set the GITHUB_TOKEN environmental variable in the repository settings in Travis. It needs this so it can push the updated docs back to Github.

Releases

We use the lein release command to add a new release on every build on the master branch. Check the :release-tasks key in the project.clj for a list of all steps it takes.

This requires setting the LEIN_USERNAME and LEIN_PASSWORD in the repository settings in Travis, so that it can the release to Clojars. It also needs the GITHUB_TOKEN in order to push the added tag and commit back to Github.

So Travis will:

  1. Build docs + push those to gh-pages branch after every master branch build
  2. Run lein release as well on those builds. This will:
    1. create new git commit and tag for new commit w/ out -SNAPSHOT in it
    2. Create jar and push that to clojars
    3. bump release number to next minor version
    4. Push new commits + tag back to github