getodk / getodk/validate

JAR size is up from 1.7MB at version 1.17.0

Open
#92 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.