Skip to content

Add checkerframework to jablib#13967

Merged
Siedlerchr merged 15 commits into
mainfrom
add-checkerframework
Oct 9, 2025
Merged

Add checkerframework to jablib#13967
Siedlerchr merged 15 commits into
mainfrom
add-checkerframework

Conversation

@calixtus

@calixtus calixtus commented Sep 24, 2025

Copy link
Copy Markdown
Member

Follow up to #13873
Fixes https://github.com/JabRef/jabref-issue-melting-pot/issues/870

  • Added ADR about which framework to use
  • Integrated Errorprone with NullAway
  • Errorlevel set to warning for easier implementation in the code
  • Disabled other errorprone checks

Steps to test

Mandatory checks

  • I own the copyright of the code submitted and I license it under the MIT license
  • [.] I manually tested my changes in running JabRef (always required)
  • [.] I added JUnit tests for changes (if applicable)
  • [.] I added screenshots in the PR description (if change is visible to the user)
  • [.] I described the change in CHANGELOG.md in a way that is understandable for the average user (if change is visible to the user)
  • [.] I checked the user documentation: Is the information available and up to date? If not, I created an issue at https://github.com/JabRef/user-documentation/issues or, even better, I submitted a pull request updating file(s) in https://github.com/JabRef/user-documentation/tree/main/en.

@calixtus calixtus added dev: build-system dev: code-quality Issues related to code or architecture decisions labels Sep 24, 2025
@trag-bot

trag-bot Bot commented Sep 24, 2025

Copy link
Copy Markdown

@trag-bot didn't find any issues in the code! ✅✨

@Siedlerchr

Copy link
Copy Markdown
Member

/Users/runner/work///jablib/src/main/java/org//model/entry/BibEntry.java:142: error: [method.invocation] call to setCitationKey(java.lang.String) not allowed on the given receiver.
this.setCitationKey(citationKey);
^
found : @UnderInitialization(org.
.model.entry.BibEntry.class) @nonnull BibEntry
required: @initialized @nonnull BibEntry
100 errors

@calixtus

Copy link
Copy Markdown
Member Author

Checkerframework goes brrrrrrrrrr with our sources. That's going to be a fun refactor.

@calixtus

Copy link
Copy Markdown
Member Author

And that is only jablib.

@koppor

koppor commented Sep 30, 2025

Copy link
Copy Markdown
Member

Regarding any ADR - JUnit recommends Error Prone and NullAway:

https://github.com/junit-team/junit-framework/wiki/Upgrading-to-JUnit-6.0#null-safety

@Siedlerchr

Copy link
Copy Markdown
Member

ADR looks good. I suggest removing the Checker Framework and trying out errorprone

@calixtus calixtus requested review from Siedlerchr and koppor October 7, 2025 22:11
@calixtus calixtus marked this pull request as ready for review October 7, 2025 22:17
@calixtus calixtus added status: ready-for-review Pull Requests that are ready to be reviewed by the maintainers dev: binaries Binary builds should be uploaded to builds.jabref.org labels Oct 7, 2025
@koppor

koppor commented Oct 8, 2025

Copy link
Copy Markdown
Member

Historical note: error prone removed at 346e105 (found via #5240)

koppor
koppor previously approved these changes Oct 9, 2025
@koppor koppor enabled auto-merge October 9, 2025 09:08
@koppor koppor added this pull request to the merge queue Oct 9, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 9, 2025
@Siedlerchr Siedlerchr enabled auto-merge October 9, 2025 18:41
@Siedlerchr Siedlerchr added this pull request to the merge queue Oct 9, 2025
@github-actions

github-actions Bot commented Oct 9, 2025

Copy link
Copy Markdown
Contributor

The build of this PR is available at https://builds.jabref.org/pull/13967/merge.

Merged via the queue into main with commit 1fb1b94 Oct 9, 2025
54 checks passed
@Siedlerchr Siedlerchr deleted the add-checkerframework branch October 9, 2025 19:18
Shanaya-1981 pushed a commit to Shanaya-1981/jabref that referenced this pull request Oct 13, 2025
* Add checkerframework to jablib

* Add ADR

* Refine

* Revise endorsement for nullness checking framework

Updated endorsement reference to JUnit 6 with a link.

* Migrate to Errorprone with NullAway

* Refine ADR

* Remove jakarta.inject dependency

* Add architecture test

* No eclipse jgit nullable annotations

* Fix architecture test

---------

Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com>
Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
Co-authored-by: Christoph <siedlerkiller@gmail.com>
merlinymy pushed a commit to merlinymy/jabref that referenced this pull request Nov 19, 2025
* Add checkerframework to jablib

* Add ADR

* Refine

* Revise endorsement for nullness checking framework

Updated endorsement reference to JUnit 6 with a link.

* Migrate to Errorprone with NullAway

* Refine ADR

* Remove jakarta.inject dependency

* Add architecture test

* No eclipse jgit nullable annotations

* Fix architecture test

---------

Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com>
Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
Co-authored-by: Christoph <siedlerkiller@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev: binaries Binary builds should be uploaded to builds.jabref.org dev: build-system dev: code-quality Issues related to code or architecture decisions status: ready-for-review Pull Requests that are ready to be reviewed by the maintainers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants