Replace local Wire codegen with org.meshtastic:protobufs SDK#42
Draft
jamesarich wants to merge 2 commits into
Draft
Replace local Wire codegen with org.meshtastic:protobufs SDK#42jamesarich wants to merge 2 commits into
jamesarich wants to merge 2 commits into
Conversation
Drop the Wire plugin and local atak.proto codegen in favor of the published protobufs SDK (2.7.25-SNAPSHOT). The dependency uses `implementation` scope so proto types are NOT re-exported to consumers, eliminating the historical pruning/duplicate-class issues (#5, #6). Changes: - Remove Wire plugin and wire {} configuration block - Replace api(wire-runtime) with implementation(protobufs SDK) - Remove JVM JAR Team/MemberRole class exclusion task (no longer needed) - Bump jvmToolchain 17 -> 21 (matches protobufs SDK class format) - Add Sonatype snapshots repository for SNAPSHOT resolution Consumers must now bring their own org.meshtastic:protobufs dependency to get proto types on their compile classpath. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
With Wire codegen removed, the iOS targets have no source to compile. The actual SDK code (CotXmlParser, TakCompressor, etc.) is JVM-only (java.time, XmlPullParser, zstd-jni). iOS consumers get proto types directly from the protobufs SDK. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The KMP protobufs SDK (meshtastic/protobufs) now publishes all Wire-generated models including atak.proto types. This removes the local Wire codegen from TAKPacket-SDK and consumes those types from the published artifact instead.
What changed
wire {}configuration blockapi(wire-runtime)withimplementation(org.meshtastic:protobufs:2.7.25-SNAPSHOT)jvmToolchain(17)to21(matches protobufs SDK class format)Key design decision
The protobufs SDK is an
implementationdependency, NOTapi. This means proto types do NOT leak transitively to consumers. Consumers (e.g. Meshtastic-Android) bring their ownorg.meshtastic:protobufsdependency, giving exactly one source of truth on the classpath.This eliminates the historical pruning/duplicate-class dance between this SDK and consumers (issues #5, #6).
Breaking change for consumers
Consumers that previously got
org.meshtastic.proto.*types transitively from this SDK must now depend onorg.meshtastic:protobufsdirectly. See meshtastic/Meshtastic-Android#5675 for the companion PR.