build: replace local Wire codegen with org.meshtastic:protobufs SDK#5
Draft
jamesarich wants to merge 2 commits into
Draft
build: replace local Wire codegen with org.meshtastic:protobufs SDK#5jamesarich wants to merge 2 commits into
jamesarich wants to merge 2 commits into
Conversation
Remove the :proto module and its Wire codegen infrastructure in favor of the published org.meshtastic:protobufs:2.7.25-SNAPSHOT artifact. This aligns with the same transition made in Meshtastic-Android, MQTTastic- Client-KMP, and TAKPacket-SDK. Changes: - Remove :proto module (build.gradle.kts, source, ABI files, submodule) - Remove .gitmodules (protobufs submodule no longer needed) - Remove Wire Gradle plugin and ProtoConventionPlugin - Add org.meshtastic:protobufs dependency to :core (api scope) - Add Sonatype snapshots repository for SNAPSHOT resolution - Update BOM to drop sdk-proto constraint - Update architecture enforcement (no project deps allowed in :core) - Remove proto from dokka, kover, libraryModules, and spotless excludes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: James Rich <james.a.rich@gmail.com>
wire-runtime is now provided transitively via org.meshtastic:protobufs. Keep wireMoshiAdapter (used by samples/cli for JSON serialization). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: James Rich <james.a.rich@gmail.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.
Summary
Replace the in-tree
:protomodule (Wire codegen + protobufs git submodule) with the publishedorg.meshtastic:protobufs:2.7.25-SNAPSHOTartifact. This aligns with the same transition already made in Meshtastic-Android #5675, MQTTastic-Client-KMP #50, and TAKPacket-SDK #42.Type of change
Related issue / discussion
Refs meshtastic/Meshtastic-Android#5675, meshtastic/MQTTastic-Client-KMP#50, meshtastic/TAKPacket-SDK#42
Affirmations
git commit -s).CONTRIBUTING.md../gradlew updateKotlinAbiand committed the regeneratedapi/*.apifiles.docs/protocol.mdand cited firmware / sibling-app sources for verification.docs/decisions/../gradlew checklocally and it passes.How was this verified?
./gradlew :core:compileCommonMainKotlinMetadata-- confirms proto types resolve from the published artifact./gradlew jvmTest-- all JVM tests pass (core, transports, storage)./gradlew :samples:cli:compileKotlin-- CLI sample still compiles withwireMoshiAdapter./gradlew :core:dependencies --configuration jvmRuntimeClasspath-- confirmedwire-runtimearrives transitivelyNotes for reviewers
What was removed:
:protomodule entirely (build script, Wire config, ABI baselines, submodule ref).gitmodules(protobufs submodule no longer needed)ProtoConventionPlugin, andwireRuntimecatalog entryprotoreferences from dokka, kover, BOM, spotless excludes, andlibraryModulesWhat was added:
org.meshtastic:protobufs:2.7.25-SNAPSHOTasapidependency on:corehttps://central.sonatype.com/repository/maven-snapshots/)Kept:
wireversion +wireMoshiAdapterin the version catalog (used bysamples/clifor JSON serialization)wire-runtimecomes transitively through the protobufs artifactArchitecture enforcement update:
The
:core:verifyModuleBoundarytask now rejects any project dependency (previously allowed:proto). Proto types are now an external library dependency.Once the protobufs artifact publishes a stable release, the version should be updated from SNAPSHOT.