Here is a document describrining how to contribute to this project.
Recently we have begun using Travis CI to automate multiple parts of development.
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 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.
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:
- Build docs + push those to
gh-pages
branch after every master branch build - Run
lein release
as well on those builds. This will:- create new git commit and tag for new commit w/ out
-SNAPSHOT
in it - Create jar and push that to clojars
- bump release number to next minor version
- Push new commits + tag back to github
- create new git commit and tag for new commit w/ out