Skip to content

chore(release): v0.1.0 publish prep - #16

Merged
shbmx merged 8 commits into
mainfrom
feat/publish-prep
Aug 15, 2026
Merged

chore(release): v0.1.0 publish prep#16
shbmx merged 8 commits into
mainfrom
feat/publish-prep

Conversation

@shbmx

@shbmx shbmx commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Summary

Everything the v0.1.0 publish needs, staged so the user's part is four commands.

  • packages/moth + tools/mothc: pub.dev-ready pubspecs (repo links, executables: mothc), package READMEs, CHANGELOGs, licenses. Dry-runs pass; moth archives at 14KB.
  • Scaffold fallback flips to hosted moth: ^0.1.0 — safe exactly because this branch merges at publish time (RELEASING.md sequences claiming the name first).
  • RELEASING.md: the ordered runbook, including the stranger's sanity loop.
  • getting-started opens with dart pub global activate mothc; clone remains the path to the simulator/boards.
  • Release notes for the GitHub tag in docs/release-notes-v0.1.0.md.

Test plan

  • make test green; site builds; both dry-runs pass (only warning: pre-commit dirty state, resolved by this commit).
  • create/natives tests re-run after the fallback flip.

Merge at publish time, not before — the hosted dependency becomes true when step 4 of RELEASING.md runs.

shbmx added 8 commits August 15, 2026 10:20
Both packages are pub.dev-ready: real pubspecs (repository, issue
tracker, executables: mothc), package READMEs written for their pub.dev
pages, CHANGELOGs, and the MIT license in each package directory.
Dry-runs pass with the only warning being the uncommitted state this
commit resolves; package:moth archives at 14KB.

The scaffold's no-checkout fallback flips to the hosted `moth: ^0.1.0`
— the exact change the last review flagged as dangerous BEFORE
publishing is what makes pub-global installs work AFTER it, which is
why this branch merges at publish time and not before (RELEASING.md
step 4 claims the name first).

RELEASING.md records the order that matters: green suite, versions
agree, dry-runs, publish moth then mothc, tag, repo public, then the
stranger's sanity loop. getting-started opens with the pub-global
path; the clone remains the route to the simulator and boards.
Release notes for the tag live in docs/release-notes-v0.1.0.md.
The moth README promised checks 'on every save'; the scaffold wires a
BUILD task (Ctrl/Cmd-Shift-B), invoked manually — the wording now
matches mothc's own careful latency claim. The image CHANGELOG line
regains the stored-program qualifier PR 14's code comment kept. And
RELEASING step 4 now states the load-bearing reason for moth-then-mothc:
the scaffold writes the hosted name the moment mothc is installable.
The publish prep predated three merged PRs; the package pages and
release notes now describe what actually ships. mothc installs TWO
names via the executables map — `moth` (the friendly entry the README
now leads with: moth create, moth run) and `mothc` (every existing doc
stays true). The mothc README's hero is the flutter-run loop with the
measured numbers; the CHANGELOG covers run/devices/check/create/push.
package:moth's CHANGELOG gains Prefs, Servo and bulk I2C. The release
notes lead with `moth run`, extend the hardware story to both
firmwares sharing one native set, and the honest-limits paragraph now
names attachInterrupt and SPI explicitly. RELEASING's stranger loop
runs `moth run` under the alias name specifically, since the alias
only exists installed. Both dry-runs: 0 issues beyond the dirty state
this commit resolves; 15KB and 57KB archives.
162ms appeared in two sample blocks and nowhere in any measurement
record — likely a transcription slip of the recorded 163. Replaced
with 178ms, the number recorded publicly in PR #17's on-board
verification comment, so the figure a reader meets first is one they
can trace. (Timing samples stay hand-checked: unlike byte counts they
are samples of a distribution, not constants a test can pin.)
The first file a newcomer reads still led with make ui and bare
mothc --push — both superseded by moth run as the hero flow. WiFi
stays on mothc --push because run has no network target; claiming
one here would be the drift the docs rules exist to prevent.
Two GIFs recorded off the real S3, terminal and board camera composited
live in one OBS canvas so the timing between 'pushed in 174ms' and the
panel changing is genuine: the moth run loop with the device picker and
an r-restart to a new color, and controls.dart tracking a finger.
Captions claim only what is legible in frame — the restart figure
scrolled off, so the text does not cite one. examples/ui/hello.dart is
the clip's program (identical to the mothc create scaffold), committed
so a cloner can moth run it directly.
Review round on the GIF commit: the caption cited a 174ms line the
three-row pane never displays (board logs overwrite it within one
frame) — clause dropped. 'exactly what mothc create scaffolds'
softened to 'the same program' (headers differ deliberately). The
scaffold README stopped calling the pubspec editor-only: outside a
checkout the compiler resolves package:moth through the package
config pub get writes from it, so deleting it breaks compiles.
Accepted as-is: 12.2MB of clip weight per clone — front-page proof
is worth it and neither published package carries it.
@shbmx
shbmx merged commit e9e4615 into main Aug 15, 2026
2 checks passed
@shbmx
shbmx deleted the feat/publish-prep branch August 15, 2026 19:57
shbmx added a commit that referenced this pull request Aug 15, 2026
* chore(release): publish prep for v0.1.0

Both packages are pub.dev-ready: real pubspecs (repository, issue
tracker, executables: mothc), package READMEs written for their pub.dev
pages, CHANGELOGs, and the MIT license in each package directory.
Dry-runs pass with the only warning being the uncommitted state this
commit resolves; package:moth archives at 14KB.

The scaffold's no-checkout fallback flips to the hosted `moth: ^0.1.0`
— the exact change the last review flagged as dangerous BEFORE
publishing is what makes pub-global installs work AFTER it, which is
why this branch merges at publish time and not before (RELEASING.md
step 4 claims the name first).

RELEASING.md records the order that matters: green suite, versions
agree, dry-runs, publish moth then mothc, tag, repo public, then the
stranger's sanity loop. getting-started opens with the pub-global
path; the clone remains the route to the simulator and boards.
Release notes for the tag live in docs/release-notes-v0.1.0.md.

* docs(release): review round 1 — capability claims match what ships

The moth README promised checks 'on every save'; the scaffold wires a
BUILD task (Ctrl/Cmd-Shift-B), invoked manually — the wording now
matches mothc's own careful latency claim. The image CHANGELOG line
regains the stored-program qualifier PR 14's code comment kept. And
RELEASING step 4 now states the load-bearing reason for moth-then-mothc:
the scaffold writes the hosted name the moment mothc is installable.

* chore(release): refresh v0.1.0 artifacts for run, devices and parity

The publish prep predated three merged PRs; the package pages and
release notes now describe what actually ships. mothc installs TWO
names via the executables map — `moth` (the friendly entry the README
now leads with: moth create, moth run) and `mothc` (every existing doc
stays true). The mothc README's hero is the flutter-run loop with the
measured numbers; the CHANGELOG covers run/devices/check/create/push.
package:moth's CHANGELOG gains Prefs, Servo and bulk I2C. The release
notes lead with `moth run`, extend the hardware story to both
firmwares sharing one native set, and the honest-limits paragraph now
names attachInterrupt and SPI explicitly. RELEASING's stranger loop
runs `moth run` under the alias name specifically, since the alias
only exists installed. Both dry-runs: 0 issues beyond the dirty state
this commit resolves; 15KB and 57KB archives.

* docs(release): the sample push time is a recorded one

162ms appeared in two sample blocks and nowhere in any measurement
record — likely a transcription slip of the recorded 163. Replaced
with 178ms, the number recorded publicly in PR #17's on-board
verification comment, so the figure a reader meets first is one they
can trace. (Timing samples stay hand-checked: unlike byte counts they
are samples of a distribution, not constants a test can pin.)

* docs(create): the scaffold teaches moth run, not the pre-run flow

The first file a newcomer reads still led with make ui and bare
mothc --push — both superseded by moth run as the hero flow. WiFi
stays on mothc --push because run has no network target; claiming
one here would be the drift the docs rules exist to prevent.

* docs(readme): the clips — moth run and touch, one unedited take each

Two GIFs recorded off the real S3, terminal and board camera composited
live in one OBS canvas so the timing between 'pushed in 174ms' and the
panel changing is genuine: the moth run loop with the device picker and
an r-restart to a new color, and controls.dart tracking a finger.
Captions claim only what is legible in frame — the restart figure
scrolled off, so the text does not cite one. examples/ui/hello.dart is
the clip's program (identical to the mothc create scaffold), committed
so a cloner can moth run it directly.

* docs: claim only what the clip shows; the pubspec is load-bearing

Review round on the GIF commit: the caption cited a 174ms line the
three-row pane never displays (board logs overwrite it within one
frame) — clause dropped. 'exactly what mothc create scaffolds'
softened to 'the same program' (headers differ deliberately). The
scaffold README stopped calling the pubspec editor-only: outside a
checkout the compiler resolves package:moth through the package
config pub get writes from it, so deleting it breaks compiles.
Accepted as-is: 12.2MB of clip weight per clone — front-page proof
is worth it and neither published package carries it.
shbmx added a commit that referenced this pull request Aug 15, 2026
* chore(release): publish prep for v0.1.0

Both packages are pub.dev-ready: real pubspecs (repository, issue
tracker, executables: mothc), package READMEs written for their pub.dev
pages, CHANGELOGs, and the MIT license in each package directory.
Dry-runs pass with the only warning being the uncommitted state this
commit resolves; package:moth archives at 14KB.

The scaffold's no-checkout fallback flips to the hosted `moth: ^0.1.0`
— the exact change the last review flagged as dangerous BEFORE
publishing is what makes pub-global installs work AFTER it, which is
why this branch merges at publish time and not before (RELEASING.md
step 4 claims the name first).

RELEASING.md records the order that matters: green suite, versions
agree, dry-runs, publish moth then mothc, tag, repo public, then the
stranger's sanity loop. getting-started opens with the pub-global
path; the clone remains the route to the simulator and boards.
Release notes for the tag live in docs/release-notes-v0.1.0.md.

* docs(release): review round 1 — capability claims match what ships

The moth README promised checks 'on every save'; the scaffold wires a
BUILD task (Ctrl/Cmd-Shift-B), invoked manually — the wording now
matches mothc's own careful latency claim. The image CHANGELOG line
regains the stored-program qualifier PR 14's code comment kept. And
RELEASING step 4 now states the load-bearing reason for moth-then-mothc:
the scaffold writes the hosted name the moment mothc is installable.

* chore(release): refresh v0.1.0 artifacts for run, devices and parity

The publish prep predated three merged PRs; the package pages and
release notes now describe what actually ships. mothc installs TWO
names via the executables map — `moth` (the friendly entry the README
now leads with: moth create, moth run) and `mothc` (every existing doc
stays true). The mothc README's hero is the flutter-run loop with the
measured numbers; the CHANGELOG covers run/devices/check/create/push.
package:moth's CHANGELOG gains Prefs, Servo and bulk I2C. The release
notes lead with `moth run`, extend the hardware story to both
firmwares sharing one native set, and the honest-limits paragraph now
names attachInterrupt and SPI explicitly. RELEASING's stranger loop
runs `moth run` under the alias name specifically, since the alias
only exists installed. Both dry-runs: 0 issues beyond the dirty state
this commit resolves; 15KB and 57KB archives.

* docs(release): the sample push time is a recorded one

162ms appeared in two sample blocks and nowhere in any measurement
record — likely a transcription slip of the recorded 163. Replaced
with 178ms, the number recorded publicly in PR #17's on-board
verification comment, so the figure a reader meets first is one they
can trace. (Timing samples stay hand-checked: unlike byte counts they
are samples of a distribution, not constants a test can pin.)

* docs(create): the scaffold teaches moth run, not the pre-run flow

The first file a newcomer reads still led with make ui and bare
mothc --push — both superseded by moth run as the hero flow. WiFi
stays on mothc --push because run has no network target; claiming
one here would be the drift the docs rules exist to prevent.

* docs(readme): the clips — moth run and touch, one unedited take each

Two GIFs recorded off the real S3, terminal and board camera composited
live in one OBS canvas so the timing between 'pushed in 174ms' and the
panel changing is genuine: the moth run loop with the device picker and
an r-restart to a new color, and controls.dart tracking a finger.
Captions claim only what is legible in frame — the restart figure
scrolled off, so the text does not cite one. examples/ui/hello.dart is
the clip's program (identical to the mothc create scaffold), committed
so a cloner can moth run it directly.

* docs: claim only what the clip shows; the pubspec is load-bearing

Review round on the GIF commit: the caption cited a 174ms line the
three-row pane never displays (board logs overwrite it within one
frame) — clause dropped. 'exactly what mothc create scaffolds'
softened to 'the same program' (headers differ deliberately). The
scaffold README stopped calling the pubspec editor-only: outside a
checkout the compiler resolves package:moth through the package
config pub get writes from it, so deleting it breaks compiles.
Accepted as-is: 12.2MB of clip weight per clone — front-page proof
is worth it and neither published package carries it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant