JAR size is up from 1.7MB at version 1.17.0
- Dominant language
- Java
- Stars
- 13
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
#### Software versions
Validate v1.19.0, Java v1.8, macOS
#### Problem description
Update: we could still reduce the size by removing most classes form the CSV parsing library and Kotlin. I'll leave this issue open for now.
Background, most addressed by https://github.com/getodk/validate/pull/93
The `jar` produced by `./gradlew jar` at version 1.17.0 was 1.7MB. For version 1.18.0, it grew to 5.6MB because of the inclusion of jackson to support geoJSON parsing. This is only applicable for external secondary instances so is not necessary. For version 1.19.0, it grew to 13MB, primarily because of the inclusion of `bouncycastle` for the `extract-signed` function. The function doesn't really need to be evaluated when running Validate but if the dependency is just excluded, it will crash. There's also a `kotlin` folder that adds 1.5MB for annotations.
Ideally we could reduce that size.
Contributor guide
Research direction
Start by running ./gradlew jar and inspecting the generated JAR and its dependency contents. Review the Jackson, Bouncy Castle, CSV parsing, and Kotlin-related inclusions described in the issue, then identify which are unnecessary for Validate. Done means the JAR is smaller without breaking the relevant application functions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, kotlin
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100