-
Before writing any code take a look at the existing issues. If none of them is about the changes you want to contribute, open up a new issue. Fixing a typo requires no issue though, just submit a Pull Request.
-
If you're looking for an open issue to fix, check out labels
help wanted
andgood first issue
on GitHub. -
If you plan to work on an issue open not by you, write about your intention in the comments before you start working.
-
Follow the GitHub fork & pull request flow.
-
Install Leiningen
-
Make changes to the code.
-
Make sure code formatters, linters, tests and code coverage pass locally:
# Code formatting
$ lein cljfmt fix
# Linters
$ lein clj-kondo
# Tests with a code coverage report
$ lein cloverage
Code coverage is not expected to be lower than in the main branch (unless you have very solid grounds to let it drop a bit - to be dicussed on the code review).
-
Open a pull request, refer to the issue you solve.
-
Make sure GitHub Checks (Actions) pass. They should if you followed p.4.
- Follow the SemVer conventions for the release number.
- Update the project version.
- Update the CHANGELOG.
- Update the README if needed:
- check if the
Help
section is in line withlein run
output, especially if CLI options are updated - check if versions mentioned in the text are still relevant
- Merge the changes to the
main
branch. - Push a version-specific tag, e.g.
2.1.9
:
$ git tag 2.1.9
$ git push origin 2.1.9
- Draft a new release on the GitHub. Make sure the version-specific tag and the changelog are used for the release notes. Start a discussion thread for the release. Publish links to the testing if needed (may be a good idea for release candidates).
- Clojars package is to be uploaded automatically as a part of the GitHub Actions CI/CD
- Docker image is built and uploaded to the Docker Hub
using its
Automated Builds
triggers for SemVer tags and themain
branch pushes.