The current process requires having babashka installed.
An overview of the available tasks will be shown with
# Persistent sorted set index (fast)
bb test pss
bb test pss --watch
# Hitchhiker-tree index (slow)
bb test hht
Integration tests (Docker needed)
bb test integration
bb test back-compat
Native-image test (native-image needed)
bb test native-image
Check the formatting:
or fix the formatting:
Should only be done in case of emergency
First you have to build the artifact with
bb jar, then you need to
CLOJARS_PASSWORD as environment variables, then
you can run
bb deploy to deploy the artifact to Clojars.
Datahike is released everytime there is a commit to the
We are using semantic versioning and the patch-version is the number of commits on
the main branch. That means it is always increasing, even if the major or minor
version is increased.
Clojars needs to be stored as an environment variable on CircleCI. There needs to be a
CLOJARS_USERNAME set to your Clojars username and a variable
to the token that permits to deploy on clojars.
In order to create new releases on GitHub we need environment variables on CircleCI. The
GITHUB_USER need to be set in a context called
github-token in the CircleCI UI for the organisation.
Each merge to
main creates a draft release on GitHub and a git tag to point to the merge commit
made when merging a branch into
main. The jar is appended to the Github-release.
- Update the
- Set a new version in build.clj if you want to release a new minor or major version.
For the ordinary patch release you can let the CI automatically increment the patch
- Squash and rebase if you see a need to.
- Create the PR against the
- Once approved, merge the PR into
- a new release on Clojars will be created.
- a new draft release will be created on GitHub.
- Go to GitHub and
- fill in release notes
- release the draft Release.