Skip to content

Add native image support for check-consistency and check-integrity commands#15959

Draft
wanling0000 wants to merge 35 commits into
JabRef:mainfrom
wanling0000:feat/jabkit-native-check-consistency-and-integrity
Draft

Add native image support for check-consistency and check-integrity commands#15959
wanling0000 wants to merge 35 commits into
JabRef:mainfrom
wanling0000:feat/jabkit-native-check-consistency-and-integrity

Conversation

@wanling0000

@wanling0000 wanling0000 commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Related issues and pull requests

Closes no related issue.

This PR is part of JabRef components as native images project.

PR Description

Add GraalVM native image reachability metadata for check-consistency and check-integrity commands, including picocli field reflection and SnuggleTeX resources.

See the metadata provenance doc for details.
jabref-contrib-policy:4.2:reviewed​:ok

Steps to test

  1. Build native binary: ./gradlew :jabkit:nativeCompile
  2. Run: jabkit/build/native/nativeCompile/jabkit check consistency --input=<path-to>.bib ./build/native/nativeCompile/jabkit check consistency
    Expected: consistency report
  3. Run: jabkit/build/native/nativeCompile/jabkit check integrity --input=<path-to>.bib
    Expected: integrity report
  4. Run smoke tests via clitest:
         cd jabkit && clitest src/test/nativeimage/jabkit.md
    Expected: all 3 tests pass (--help, check-consistency, check-integrity)

AI usage

Claude Code (claude-sonnet-4-6) was used for discussion and emotional support.

Checklist

  • I own the copyright of the code submitted and I license it under the MIT license
  • If AI tools were used, I disclosed them in the "AI usage" section and reviewed, understood, and take full ownership of all AI-generated code
  • 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 added a screenshot in the PR description showing a library with a single entry with me as author and as title the issue number
  • [/] I described the change in CHANGELOG.md in a way that can be understood by the average user (if change is visible to the user)
  • [/] I checked the user documentation for up to dateness and submitted a pull request to our user documentation repository

wanling0000 added 30 commits May 7, 2026 11:19
- :jabkit:nativeCompile succeeds
- native jabkit --help exits with code 0

Runtime issue:
- tinylog reports RollingFileWriter constructor issue
- not fatal for --help
- likely caused by dynamic tinylog writer initialization in JabKitLauncher
…ta.json` to avoid manually added resource-config.json
groovy.lang.Closure, java.lang.System(console), BreakIterator locale resources are unconditional picocli probes with graceful fallback when absent.
This reverts commit b33e7ec, reversing
changes made to bc7de9f.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants