Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Code Quality

Code style checkers

JabRef has three code style checkers in place:

  • Checkstyle for basic checks, such as wrong import order.
  • Gradle Modernizer Plugin for Java library usage checks. It ensures that “modern” Java concepts are used (e.g., one should use Deque instead of Stack).
  • OpenRewrite for advanced rules. OpenRewrite can also automatically fix issues. JabRef’s CI toolchain does NOT automatically rewrite the source code, but checks whether OpenRewrite would rewrite something. As developer, one can execute ./gradlew rewriteRun to fix the issues.

In case a check fails, the CI automatically adds a comment on the pull request.

Monitoring

We monitor the general source code quality at three places:

Up to date dependencies

We believe that updated dependencies are a sign of maintained code and thus an indidcator of good quality. We use GitHub’s dependabot to keep our versions up to date.

Moreover, we try to test JabRef with the latest Java Development Kit (JDK) builds. Our results can be seen at the Quality Outreach page.

Background literature

We strongly recommend reading following two books on code quality:

The principles we follow to ensure high code quality in JabRef is stated at our Development Strategy.