Release rpi-loader-ota 0.2.0 - #13
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
applyhalf, behind a feature of its own,plus
ChecksumandProgressalongside it. Nothing in 0.1.0's APIchanged 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-sensorruns this installer on hardware and has beenholding a
[patch.crates-io]override to reach it, because 0.1.0 oncrates.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 smallerthan the repository and its suite does not ship. That is deliberate and
recorded in the changelog: the tests build FAT32 volumes with
mkfs.vfatand judge them with
fsck.vfat, and fail rather than skip withoutdosfstools.