Skip to content

Release 0.2.0 - #5

Merged
joeferner merged 1 commit into
mainfrom
release-0.2.0
Aug 30, 2026
Merged

joeferner merged 1 commit into
mainfrom
release-0.2.0

Conversation

@joeferner

Copy link
Copy Markdown
Owner

Adds eeprom-write/eeprom-read and the wire commands behind them, so a feature release rather than a patch. Nothing this project treats as breaking moved: no existing command byte, header layout, chunk framing or error code changed -- 9 and 10 and the new error codes take unused numbers -- no subcommand or flag was renamed or made required, the load addresses are the same, and both MSRVs stay where they were.

The handshake's protocol version does go to 2, in both halves, which is a bump for an addition the version byte cannot express as one. It earns it by naming the mismatch this project actually produces: the loader is flashed once and left on the card for months while the CLI is reinstalled from crates.io whenever, so a newer CLI meeting an older loader is ordinary. Before, eeprom-write against a 0.1.0 loader returned error code 0 -- an unknown command byte answered with FAIL, then its arguments read as further commands -- which reads as a fault on the I2C bus rather than a stale image on the card. Now the handshake says so first, and still only warns, so an older CLI keeps driving a newer loader for everything they share.

Covered by a test, since the bump is worth nothing if the warning does not appear: the fake device claims one version behind, and the CLI has to both name it and carry the command through.

Adds `eeprom-write`/`eeprom-read` and the wire commands behind them, so
a feature release rather than a patch. Nothing this project treats as
breaking moved: no existing command byte, header layout, chunk framing or
error code changed -- 9 and 10 and the new error codes take unused
numbers -- no subcommand or flag was renamed or made required, the load
addresses are the same, and both MSRVs stay where they were.

The handshake's protocol version does go to 2, in both halves, which is a
bump for an addition the version byte cannot express as one. It earns it
by naming the mismatch this project actually produces: the loader is
flashed once and left on the card for months while the CLI is
reinstalled from crates.io whenever, so a newer CLI meeting an older
loader is ordinary. Before, `eeprom-write` against a 0.1.0 loader
returned `error code 0` -- an unknown command byte answered with `FAIL`,
then its arguments read as further commands -- which reads as a fault on
the I2C bus rather than a stale image on the card. Now the handshake says
so first, and still only warns, so an older CLI keeps driving a newer
loader for everything they share.

Covered by a test, since the bump is worth nothing if the warning does
not appear: the fake device claims one version behind, and the CLI has to
both name it and carry the command through.
@joeferner
joeferner merged commit 9dfb9e5 into main Aug 30, 2026
4 checks passed
@joeferner
joeferner deleted the release-0.2.0 branch August 30, 2026 14:35
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