Some breaking changes planned - feedback welcome #101
atsushieno
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I have been stumbled upon some backward compatibility issues that I want to break (bring in breaking changes). I hope they are relatively minor issues, but need to be addressed and discussed before they actually take place. Feedbacks are welcome.
(1) Deprecating and removing
rtmidi-javacpp
: unlike our Panama-based binding (libremidi-panama), javacpp-based bindings involve native library resolution issue that we still need rtmidi .DLL/.dylib/.so installed locally. It is practically non-issue onalsa-javacpp
(aslibasound
should be almost always there), rtmidi-javacpp remains problematic. Since libremidi-panama works fairly well and it covers MIDI 2.0 as well, I'm leaning towards simply removing rtmidi binding.(2)
ktmidi-ci
(in)dependency: Currentlyktmidi-ci
module is independent ofktmidi
because MIDI-CI is merely SysEx processing and transport agnostic. However we have a lot of utility functions and constants inktmidi
and I need them inktmidi-ci
if I want to move a handful of features inktmidi-ci-tool
that I believe are not specific to that particular application (e.g.MidiCIDeviceModel
without ComposeMutableState
dependencies). The next version ofktmidi-ci
will be dependent onktmidi
(3) migration to Kotlin 2.1+ ABI: unlike migration to Kotlin 2.0, migration to Kotlin 2.1 involves ABI incompatibility, which means that apps whose codebase and/or its Gradle builds (including plugins) that have compatibility issue with Kotlin 2.1 ABI will be unable to upgrade to the newer version. It would have already happened who cannot depend on Java 22+ for Panama dependency, but (unlike Panama) we don't really need Kotlin 2.1+ features so far. But I will have more difficulty in updating dependency packages if I keep ABI backward compatibility (e.g. I cannot upgrade kotlinx-coroutines already).
Beta Was this translation helpful? Give feedback.
All reactions