To engage in the development of the plugin, follow the minimum requirements shown in the table below.
Tool | Minimum Version |
---|---|
JDK |
Oracle JDK or OpenJDK 8.x, anything higher won’t work with Scala 2.11 |
Gradle |
5.0 or higher |
IDE |
IntelliJ 2018.2 or higher |
The plugin follows the standard conventions of a Java project modeled with Gradle. Furthermore, the project defines a task for running integration tests. To compile the code, execute all tests and build the plugin’s artifact, run the following command.
Linux & MacOSX
./gradlew build
Windows
gradlew.bat build
Importing the project into IntelliJ is straight forward. From the menu select File > Open… > Open as Project and point it to the build.gradle.kts
file. In the following pop-up window, ensure that the default Gradle Wrapper is selected and "Create separate module per source set" is checked.
The project currently doesn’t define a release process that can be triggered by running a single task. Following the process below.
-
Update the release notes and release date in changelog file.
-
Create and push a tag for the source code.
-
Build the binary artifact and publish it to the Gradle Plugin Portal by running the task
publishPlugins
. -
Build and publish the Javadocs and the user guide by running the task
gitPublishPush
. -
Manually update the plugin version for all samples in the directory
src/docs/samples
. Commit and push the changes to GitHub.
The following paragraphs explain some of the steps in more detail.
The markup language for the user guide of this plugin is AsciiDoc. Documentation sources sit in the directory src/docs
. To generate the HTML version of the plugin user guide, run the task asciidoctor
. The generated HTML will be available in the directory build/asciidoc/html5
.
Documentation (user guide & Javadocs) is hosted on GitHub Pages. To publish the documentation to GitHub Pages, execute the task gitPublishPush
. Make sure to provide the required GitHub token by passing the system property -Dorg.ajoberstar.grgit.auth.username=$GH_TOKEN
.