1. Build Automation

See UsingGradle.adoc to learn how to use Gradle for build automation.

2. Continuous Integration

We use Travis CI to perform Continuous Integration on our projects. See UsingTravis.adoc for more details.

3. Documentation Previews

When a pull request has changes to asciidoc files, we use Netlify to see a preview of how the HTML version of those asciidoc files will look like when the pull request is merged. See UsingNetlify.adoc for more details.

4. Making a Release

Here are the steps to create a new release.

  1. Update the version number in MainApp.java.

  2. Generate a JAR file using Gradle.

  3. Tag the repo with the version number. e.g. v0.1

  4. Create a new release using GitHub and upload the JAR file you created.

5. Managing Dependencies

A project often depends on third-party libraries. For example, Notably depends on the Jackson library for JSON parsing. Managing these dependencies can be automated using Gradle. For example, Gradle can download the dependencies automatically, which is better than these alternatives:

  1. Include those libraries in the repo (this bloats the repo size)

  2. Require developers to download those libraries manually (this creates extra work for developers)