Skip to content

Release rpi-loader-ota 0.2.0 - #13

Merged
joeferner merged 2 commits into
mainfrom
release-ota-0.2.0
Sep 3, 2026
Merged

joeferner merged 2 commits into
mainfrom
release-ota-0.2.0

Conversation

@joeferner

Copy link
Copy Markdown
Owner

The library alone -- the CLI and the loader images are a separate release
under a v* tag, and nothing here touches them.

A minor bump for an additive release, which is what this project does at
0.x: the whole of 0.2.0 is the apply half, behind a feature of its own,
plus Checksum and Progress alongside it. Nothing in 0.1.0's API
changed shape, so a consumer reading bundles and not installing them can
move up without touching a line.

That consumer is the reason to release it now rather than with the next
CLI. rpi-water-sensor runs this installer on hardware and has been
holding a [patch.crates-io] override to reach it, because 0.1.0 on
crates.io has the container and not the installer. A patch is a
development scaffold, not a dependency -- it is ignored by cargo package, so the project it sits in cannot be built by anyone else.
Publishing is what removes it.

tests/ is excluded from the tarball, so the published crate is smaller
than the repository and its suite does not ship. That is deliberate and
recorded in the changelog: the tests build FAT32 volumes with mkfs.vfat
and judge them with fsck.vfat, and fail rather than skip without
dosfstools.

The library alone -- the CLI and the loader images are a separate release
under a `v*` tag, and nothing here touches them.

A minor bump for an additive release, which is what this project does at
0.x: the whole of 0.2.0 is the `apply` half, behind a feature of its own,
plus `Checksum` and `Progress` alongside it. Nothing in 0.1.0's API
changed shape, so a consumer reading bundles and not installing them can
move up without touching a line.

That consumer is the reason to release it now rather than with the next
CLI. `rpi-water-sensor` runs this installer on hardware and has been
holding a `[patch.crates-io]` override to reach it, because 0.1.0 on
crates.io has the container and not the installer. A patch is a
development scaffold, not a dependency -- it is ignored by `cargo
package`, so the project it sits in cannot be built by anyone else.
Publishing is what removes it.

`tests/` is excluded from the tarball, so the published crate is smaller
than the repository and its suite does not ship. That is deliberate and
recorded in the changelog: the tests build FAT32 volumes with `mkfs.vfat`
and judge them with `fsck.vfat`, and fail rather than skip without
`dosfstools`.
Bumping `ota/Cargo.toml` to 0.2.0 without touching the CLI turned every
job red, not just the packaging one: `cli/Cargo.toml` asks for
`rpi-loader-ota = "0.1.0"` beside its path, and a path dependency has to
satisfy the version written next to it, so cargo refused to resolve the
workspace at all -- `failed to select a version for the requirement
rpi-loader-ota = "^0.1.0"` / `candidate versions found which didn't
match: 0.2.0`.

RELEASING.md's library section had the consequence and not the step. It
explained that CI's package job goes red if this package is bumped
without being released, which is true and is the *second* thing that
happens; the first is that nothing builds. Raising the CLI's requirement
is now step 2, stated as mandatory and in the same change.

The step numbering shifted with it, and the note at the end now says what
the red actually means: from the moment the CLI's requirement moves, the
only failing job is `package verifies`, which asks crates.io for a version
that this release is on its way to publishing. Publishing is the only
thing that clears it, so the merge in step 4 needs `--admin`. That is
worth writing down rather than rediscovering, because a required check
that cannot pass looks exactly like a broken pipeline to anyone who has
not been told otherwise.
@joeferner
joeferner merged commit fddf997 into main Sep 3, 2026
4 of 5 checks passed
@joeferner
joeferner deleted the release-ota-0.2.0 branch September 3, 2026 01:38
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