feat: jvm 바인딩 추가 - #181
Conversation
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
|
커버리지 이슈를 확인해주세요 |
|
Rust 테스트 3,727개는 모두 통과했지만, 새 JVM 크레이트가 Cargo workspace에 포함되면서 JNI bridge 코드 51줄이 Rust coverage 대상에 추가됐습니다. 이 코드는 별도의 Gradle/JUnit 테스트에서 실행되지만 해당 결과가 Rust coverage에는 반영되지 않아, coverage가 99.63%로 집계됩니다. Ubuntu에서만 실패하는 이유는 Linux에만 100% threshold가 적용되기 때문입니다. 혹시 JNI 코드를 coverage에서 제외하지 않고, JVM 테스트 결과가 Rust coverage에 반영되도록 CI 구조를 조정하는 방향으로 진행해도 괜찮을까요? |
|
https://github.com/dev-five-git/vespera 위 repo를 보면 조금 도움이 될 것 같습니다. 같은 jvm에 rust인데 커버리지 이슈를 해결한 것으로 알고 있습니다. |
|
확인해보니 Vespera는 JVM 테스트 결과를 Rust coverage에 병합하는 방식이 아니라, JNI 크레이트를 tarpaulin 산정에서 제외하고 별도의 jni-e2e job에서 검증하고 있는 것 같습니다. Braillify도 동일하게 JVM 크레이트를 Rust coverage에서 제외하고, 기존 Gradle/JUnit 테스트를 별도 필수 검증으로 유지하는 방향으로 수정하는 방식으로 진행해도 괜찮을지 여쭙니다. |
|
동의합니다, 그렇게 진행합시다! |
braillify 라이브러리를 Java 및 Kotlin 환경에서 사용할 수 있도록 JVM 바인딩을 추가합니다.
주요 구성
encode,translateToUnicode,translateToBrailleFont지원배포
JVM에서는 사용자가 JAR을 직접 관리하는 것보다 Gradle 또는 Maven에서 의존성 한 줄로 추가하는 방식이 편할 것 같아 Maven Central 배포로 구현했습니다.
Maven Central 배포를 포함하는 현재 방향이 괜찮을지, 아니면 GitHub Release artifact만 제공하는 편이 나을지 의견 부탁드립니다.
Maven Central 방식을 유지한다면 프로젝트에서 사용할 namespace와
groupId확인이 필요합니다.테스트