Watchapp distribution: UUID, appinfo, versioning and install path #70
Labels
No labels
area:companion
area:docs
area:shared
area:tooling
area:watchapp
blocker
kind:chore
kind:feature
kind:spike
kind:test
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Depends on
#53 Protocol version field in the message contract
robert/PedalPebble
Reference
robert/PedalPebble#70
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Answer "how does anyone other than me install this?". The plan covers building and sideloading via Dev Connect (#3), and nothing else. For a public MIT repository that is a gap.
Acceptance criteria
package.json/appinfocomplete: name, author, version, capabilities,targetPlatformsforemeryandgabbroPROTO_VERSION(docs/PROTOCOL.md section 6) - they are not the same numberFiles
watchapp/package.jsonREADME.mdNotes
PROTO_VERSIONbumps on contract semantics; app versions bump on releases. Conflating them is a trap - most releases change neither side's protocol.Closed by PR #109 (merged). UUID (834379e0-d559-497d-8082-d02546fec8d1) already existed from the original scaffold, verified as a genuine pebble-tool-generated RFC 4122 v4 UUID rather than a hand-typed placeholder -- nothing regenerated, now documented as permanent (D64). PROTO_CONTRACT_VERSION and the watchapp/companion release version are two independent numbers by design (D64) -- one moves on wire-contract changes, the other on every tagged release; kept identical in value between watchapp/package.json and companion/build.gradle.kts right now so a mismatch is visually obvious. Icons are an honest placeholder (25x25 PNG, the SDK's real enforced ceiling per the installed waflib source, not recalled docs) pending Robert's actual design input. Distribution mechanism: Forgejo releases via the already-built dev-artifact/tag-lane CI (D63), not a Rebble/Core Devices store listing.
Bonus real fix: tag-lane.yml's G11 gate grepped package.json for a versionLabel field that only ever exists in the generated appinfo.json -- the check silently never fired since the day it was written. Corrected to the real field name, so G11 now actually enforces the tag-matches-version invariant.
Verified for real: pebble build clean on emery/gabbro/basalt including the new icon resource passing the SDK's dimension check, ./gradlew :companion:assembleDebug clean.