This guide outlines core essentials for developing in this project.
Run the code quality script.
./development/code_quality.shThis will run the automated test suite and other automation such as linters and formatters. As a side effect all required dependencies will be downloaded. After running the script, please take a look in the generated IDE configuration file. It contains a list of suggested plugins and configuration for various editors and IDEs, e.g. VS Code and IntelliJ.
-
Install plugins:
-
shell-format version 7.2.5
Note 1: There is a known issue with version 7.2.8 of shell-format preventing it from being detected as a formatter for shell scripts. Please use version 7.2.5 until the issue is fixed.
Note 2: You need to have the
shfmtbinary installed in order to use the plugin. On Ubuntu you can install it withsudo apt-get install shfmt.
-
Open workspace settings - settings.json (for example with Ctrl+Shift+P → Preferences: Workspace Settings (JSON)) and add:
"editor.formatOnSave": true, "java.checkstyle.configuration": "development/lint/google_checks.xml", "java.checkstyle.version": "1x.xx.x", "java.format.settings.profile": "GoogleStyle", "java.format.settings.url": "development/format/eclipse-java-google-style.xml", "javaPMD.rulesets": [ "development/sast/pmd_default_java.xml" ], "shellformat.path": "<path to shfmt>", "[markdown]": { "editor.defaultFormatter": "DavidAnson.vscode-markdownlint" }, "[java]": { "editor.defaultFormatter": "redhat.java", }
-
Code Style
- Settings →
Editor → Code Style → Java - Click gear →
Import Scheme → Eclipse XML Profile - Select
development/format/eclipse-java-google-style.xml
- Settings →
-
Checkstyle
- Install "CheckStyle-IDEA" plugin
- Settings →
Tools → Checkstyle - Click the built-in Google Style Check
Configure your pom.xml file with:
<repositories>
<repository>
<name>Central Portal Snapshots</name>
<id>central-portal-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>Run Maven verification:
mvn clean verifyGenerate Javadocs:
mvn javadoc:javadocView documentation in your browser:
<browser> target/reports/apidocs/index.htmlWhen submitting a PR, CI will automatically run several checks. To avoid surprises, run these checks locally first.
-
Run the quality check script:
./development/code_quality.sh
-
Fix any identified issues
-
Update your PR with fixes
-
Verify CI passes in the updated PR
- Linting with megalinter: BASH, Java, Markdown, XML, YAML, GitHub Actions, security scanning
- License Compliance: REUSE tool ensures proper copyright information
- Commit Structure: Conform checks commit messages for changelog generation
- Dependency Analysis: Scans for vulnerabilities, outdated packages, and license issues
- OpenSSF Scorecard: Validates security best practices
If any checks fail in the CI pipeline:
- Review the CI error logs
- Run checks locally to reproduce the issues
- Make necessary fixes in your local environment
- Update your Pull Request
- Verify all checks pass in the updated PR