Skip to content
Go to file
Cannot retrieve contributors at this time
105 lines (66 sloc) 2.29 KB

Contributing guide


All original contributions to Doma are licensed under the ASL - Apache License, version 2.0 or later.

Reporting an issue

This project uses GitHub issues to manage the issues. Open an issue directly in GitHub.

Write the issue in English to share it with many people.

Before you contribute

To contribute, use GitHub Pull Requests, from your own fork.


  • Install Git and configure your GitHub access
  • Install JDK 8
    • We recommend that you use SDKMAN to get JDKs


Clone the repository and navigate to the root directory. Then run the Gradle build task:

$ git clone
$ cd doma
$ ./gradlew build

Using snapshots

Instead of building Doma from the master branch, you may want to use snapshots. To use snapshots, define a Maven repository in your build.gradle as follows:

repositories {
    maven {url ''}

Snapshots are published when each pull request is merged into the master branch. You can check the last publication date here:


IntelliJ IEDA

Import the root directory as a Gradle project.


Before importing, run the Gradle eclipse command in the root directory:

$ ./gradlew eclipse

Code Style

We use spotless and google-java-format 1.7 for code formatting.

To format, just run the Gradle build task:

$ ./gradlew build

To run google-java-format in your IDE, see


We use Sphinx to generate documents. The generated documents are hosted on the ReadTheDocs.

To use Sphinx, you need Python.

Install Sphinx

Navigate to the docs directory and run the pip install command:

$ cd docs
$ pip install -r requirements.txt

Generate HTML files

Execute the sphinx-autobuild command in the docs directory:

$ sphinx-autobuild . _build/html

Visit the webpage served at

You can’t perform that action at this time.