chore(release): bump memf-* to publish the yara-x and lru security fixes - #18
Merged
Conversation
…security fixes PR #17 fixed this repo's tree but published nothing, and the reason is structural rather than a mistake in the commit subject: the squash touched 8 files, none of them under `crates/`, and release-plz runs with `dependencies_update = false`. So no library package changed by its own reckoning, and it correctly declined — logging `no commit matches the release_commits regex` for every member. The consequence is that downstream is still exposed. The PUBLISHED crates declare the old requirements: memf-windows 0.4.4 yara-x ^0.12 -> wasmtime 26.0.1, 18 advisories memf-strings 0.2.2 yara-x ^0.12 -> same memf-core 0.2.5 lru ^0.16 -> below the patched 0.18.2 memf-format 0.3.1 lru ^0.16 -> same `4n6mount` and `issen` consume those published crates, so nothing reaches them until these four are republished. This bump is what makes release-plz's `release` job publish them: it ships any library whose version is ahead of crates.io, regardless of commit type. Bump levels are chosen from whether the dependency is reachable through each crate's PUBLIC API, checked by reading every occurrence rather than by a pattern match: - memf-windows 0.4.4 -> 0.5.0 (MINOR — breaking under 0.x). `pub fn scan_yara(reader, ps_head_vaddr, rules: &yara_x::Rules, ...)` takes a yara-x type across the API boundary. A caller holding a `Rules` built by yara-x 0.12 cannot pass it to a signature expecting 1.7, so this is a breaking change and a patch bump would have shipped it silently. - memf-core 0.2.5 -> 0.2.6, memf-format 0.3.1 -> 0.3.2, memf-strings 0.2.2 -> 0.2.3 (PATCH). In each, the dependency is held behind a private field — `tlb_cache`, `cache`, `rules` — and no public signature mentions it. The compiled dependency set changes; the API does not. The workspace's path-dep declarations move with them: they pin exact versions (`memf-windows = { version = "0.4.4", path = ... }`), and `^0.4.4` cannot match 0.5.0, so leaving them would break the build rather than merely lag. `chore(release):` is deliberate. `release_commits` excludes chore, so this does not trigger a second version bump on top of this one, while the `release` job still publishes on the version-ahead-of-crates.io rule. Verified: `cargo update -w` moves all four in the lock, and `cargo check --workspace --all-features --all-targets` is clean. KNOWN GAP, deliberately not fixed here: published `memf-carve 0.1.5` requires `memf-windows ^0.4` and so cannot resolve 0.5.0. Nothing downstream of this repo currently consumes memf-carve, so it is left for its own release rather than widened blind in a security bump.
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.
chore(release): bump memf-core/format/strings/windows to publish the security fixes
PR #17 fixed this repo's tree but published nothing, and the reason is
structural rather than a mistake in the commit subject: the squash touched 8
files, none of them under
crates/, and release-plz runs withdependencies_update = false. So no library package changed by its ownreckoning, and it correctly declined — logging
no commit matches the release_commits regexfor every member.The consequence is that downstream is still exposed. The PUBLISHED crates
declare the old requirements:
4n6mountandissenconsume those published crates, so nothing reaches themuntil these four are republished. This bump is what makes release-plz's
releasejob publish them: it ships any library whose version is ahead ofcrates.io, regardless of commit type.
Bump levels are chosen from whether the dependency is reachable through each
crate's PUBLIC API, checked by reading every occurrence rather than by a
pattern match:
pub fn scan_yara(reader, ps_head_vaddr, rules: &yara_x::Rules, ...)takesa yara-x type across the API boundary. A caller holding a
Rulesbuilt byyara-x 0.12 cannot pass it to a signature expecting 1.7, so this is a
breaking change and a patch bump would have shipped it silently.
memf-strings 0.2.2 -> 0.2.3 (PATCH). In each, the dependency is held behind
a private field —
tlb_cache,cache,rules— and no public signaturementions it. The compiled dependency set changes; the API does not.
The workspace's path-dep declarations move with them: they pin exact versions
(
memf-windows = { version = "0.4.4", path = ... }), and^0.4.4cannot match0.5.0, so leaving them would break the build rather than merely lag.
chore(release):is deliberate.release_commitsexcludes chore, so this doesnot trigger a second version bump on top of this one, while the
releasejobstill publishes on the version-ahead-of-crates.io rule.
Verified:
cargo update -wmoves all four in the lock, andcargo check --workspace --all-features --all-targetsis clean.KNOWN GAP, deliberately not fixed here: published
memf-carve 0.1.5requiresmemf-windows ^0.4and so cannot resolve 0.5.0. Nothing downstream of thisrepo currently consumes memf-carve, so it is left for its own release rather
than widened blind in a security bump.