Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split package io.matthewnelson.encoding.builders #124

Closed
craigraw opened this issue Jun 19, 2023 · 2 comments · Fixed by #127
Closed

Split package io.matthewnelson.encoding.builders #124

craigraw opened this issue Jun 19, 2023 · 2 comments · Fixed by #127

Comments

@craigraw
Copy link

The package io.matthewnelson.encoding.builders is split across 3 jars. When using Java modules, these jars become modules, and this results in a split package which is disallowed by JPMS. This results in errors at runtime for example: Package io.matthewnelson.encoding.builders in both module encoding.base16.jvm and module encoding.base32.jvm.

There are two solutions - either package the encoding-base*-jvm jars as one jar, or change the package name in each of the jars, for example: io.matthewnelson.encoding.builders16, io.matthewnelson.encoding.builders32, io.matthewnelson.encoding.builders64.

@05nelsonm
Copy link
Owner

05nelsonm commented Jun 20, 2023

This is related to kmp-tor, yah?

I really do not want to break the current API and hope there is a solution via a deprecation cycle.

If I were to:

  • copy/paste the current builder classes/functions to a new package (e.g., ...encoding.base16.Builders.kt)
  • deprecate classes/functions in encoding.builders package
    • Want to leave them there to not break consumers' APIs
  • Release version 1.2.3
  • Update kmp-tor to use the new Builders.kt package path

Would you be able to update your module config in Sparrow Wallet to no longer export the ...builders path, and only export the ...builders.base* packages?

@05nelsonm
Copy link
Owner

05nelsonm commented Jun 21, 2023

Deprecation cycle did not work. JPMS is still throwing exception even when no references are had to the .builders package. Will need to remove the .builders packages from base16, base32, and base64 modules.

POA:

  • Release 1.2.3 with deprecation notices and a way for library consumers to gracefully update to new builder functions package locations.
  • Release 2.0.0 with API breaking changes (...encoding.builders package removed).
  • Add migration notes to the CHANGELOG and release notes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants