proto-bump

Updates the org.meshtastic:protobufs Maven pin in the Gradle version catalog and verifies with tests.

1.8k|511|Updated Jan 20, 2020
One-click install
npx skills add https://github.com/meshtastic/Meshtastic-Android --skill proto-bump
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: proto-bump
Source: https://github.com/meshtastic/Meshtastic-Android/tree/main/.claude/skills/proto-bump
Command: npx skills add https://github.com/meshtastic/Meshtastic-Android --skill proto-bump

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Upgrading the Meshtastic protobufs dependency is error-prone: tracking an unreleased develop-SNAPSHOT causes Gradle to silently downgrade the test runtime classpath to a tagged version, producing NoSuchFieldError failures that compilation alone never catches. This Skill encodes the exact procedure to bump or re-pin the protobufs dependency safely.

Core Features & Use Cases

  • Two bump modes: Switch to a tagged release (mergeable PR) or track develop-SNAPSHOT (draft PR) with the correct transitive resolution-force block added or removed.
  • Runtime-safe verification: Runs test/allTests via the gradle-runner subagent, not just compilation, to catch the transitive classpath downgrade.
  • Surface audit and PR automation: Audits newly added proto fields against current usage and opens a properly labeled PR following repository conventions.
  • Use Case: A new field you need only exists on protobufs develop. Use this Skill to pin develop-SNAPSHOT, add the force block to build.gradle.kts, verify with allTests, and open a draft PR that un-blocks once the tag ships.

Quick Start

Ask the assistant to bump the Meshtastic protobufs dependency to a specific tag or to develop-SNAPSHOT and open the corresponding PR.

Frequently Asked Questions about proto-bump

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I bump the Meshtastic protobufs dependency version?

Edit the meshtastic-protobufs pin in gradle/libs.versions.toml to the target tag, remove any transitive force block from the root build.gradle.kts, then verify with test/allTests before opening a mergeable PR.

How do I use a protobufs develop-SNAPSHOT before it is released?

Set meshtastic-protobufs to develop-SNAPSHOT and add the resolutionStrategy force block to the root build.gradle.kts so every org.meshtastic:protobufs variant resolves to the snapshot. Open the PR as a draft until the tag ships.

Why do tests fail with NoSuchFieldError after a protobufs snapshot bump?

takpacket-sdk transitively pins a tagged protobufs, and Gradle ranks numeric tags above develop-SNAPSHOT, downgrading the test runtime classpath while compilation uses the snapshot. The force block aligns compile and runtime versions.

Does assembleDebug catch protobuf version mismatches?

No. The transitive downgrade is a runtime classpath problem invisible to assembleDebug and detekt. Only running test and allTests exercises the mismatched proto-generated classes and surfaces the failure.

Should I hand-edit generated protobuf code in this repository?

No. Protobuf models are not generated in this repo; they come from the org.meshtastic:protobufs Maven artifact built with Square Wire. A bump is only a catalog edit plus verification and call-site adaptation.