Commit 5cff8d5
feat: migrate from GraalVM Native Image to JAR distribution (#309)
* docs: migrate from GraalVM Native Image to JAR distribution
Complete migration from platform-specific native binaries to universal JAR bundle distribution.
Major Changes:
- Distribution: Single JAR bundle (~20MB) replacing 6 platform binaries (~260MB)
- Runtime: Now requires Java 21+ instead of platform-specific native executables
- Build: Shadow JAR plugin replaces GraalVM Native Image compilation
- CI/CD: Simplified workflow building universal JAR instead of multi-platform binaries
- SBOM: Dual-level approach (source + binary SBOMs)
Documentation Updates:
- Renamed install-jar.ps1 → install.ps1 for consistency
- Removed obsolete native binary docs (install/README.md, install/verify-README.md)
- Updated SBOM verification guide for JAR bundle structure
- Updated security verification guides with JAR-specific instructions
- Created ADR-0017 documenting migration rationale
Technical Cleanup:
- Removed GraalVM Native Image configuration files
- Removed platform-specific build workflows
- Cleaned up obsolete environment variables
- Updated all documentation references
🤖 Generated with [Claude Code](https://claude.ai/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* chore: prevent Gradle cache files from causing spotless lint errors
Add comprehensive protections against Gradle cache lint errors:
- Add .gradle-local/ to .gitignore
- Create scripts/clean-gradle-cache.sh for cleaning all Gradle caches
- Update spotless configuration to exclude .gradle-local/** from all targets
- Exclude package.json from spotless JSON formatting
This prevents the 1079 lint errors that occurred in the previous commit
when pre-commit hooks ran spotless checks on auto-generated Gradle cache
files in .gradle-local/ directory.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: address AI review feedback for JAR distribution
Critical installer fixes:
- Fix bash installer hash verification (extract checksum token properly)
- Fix PowerShell installer hash verification (parse digest from hash file)
- Update script name references in install.ps1 (install-jar.ps1 → install.ps1)
Wrapper script improvements:
- Improve Java version parsing in bash wrapper (support Java 8 format: 1.8.0_xxx)
- Add config file support to batch wrapper (scopes.bat)
- Guard Java version parsing in batch wrapper (handle parse failures gracefully)
- Improve config parsing in bash wrapper (trim whitespace from key=value)
- Enhance PowerShell wrapper error messages (add installation instructions)
Documentation fixes:
- Fix SLSA verification path (add missing verification/ prefix)
- Standardize version placeholders (use vX.X.X consistently)
- Update getting-started.md with correct install instructions
- Add language identifiers to code blocks in ADR-0017
- Fix absolute path in jni-config.md (remove leading slash)
All fixes address specific issues identified in AI code review:
- Hash verification now works correctly on Linux/macOS/Windows
- Java version detection handles both old (1.x) and new (21+) formats
- Config file parsing is robust to whitespace and quotes
- Documentation references are accurate and consistent
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: remove obsolete jni-config.md
The jni-config.md document is no longer applicable after migration
from GraalVM Native Image to JAR distribution. JNI configuration is
not required for standard JVM execution with SQLite JDBC driver.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: remove obsolete GraalVM Native Image feature file
This file was only needed for GraalVM Native Image compilation and is no longer relevant after migrating to JAR distribution. Its presence was causing CodeQL Autobuild to fail with:
- error: package org.graalvm.nativeimage.hosted does not exist
Fixes CodeQL workflow failure on this branch.
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 2da8ec3 commit 5cff8d5
File tree
37 files changed
+2658
-4684
lines changed- .changeset
- .github
- ISSUE_TEMPLATE
- workflows
- apps/scopes
- src/main
- java/org/sqlite/nativeimage
- resources
- META-INF/native-image
- bin
- docs
- explanation
- adr
- security
- setup
- user-stories
- reference
- tutorials
- gradle
- install
- offline
- scripts
37 files changed
+2658
-4684
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
9 | 13 | | |
10 | 14 | | |
11 | 15 | | |
| |||
0 commit comments