chore(deps): dedupe cooklang-find and drop uniffi#372
Conversation
cooklang-reports 0.2.2 pinned cooklang-find 0.5, so cookcli compiled cooklang-find twice (0.5 and 0.6). Both lines pulled uniffi, which exists for the iOS/Android bindings and is dead weight here. Bump to cooklang-reports 0.5.1 (on cooklang-find 0.6.1 with default-features = false) and opt out of the ffi feature on our own cooklang-find dependency. The API we use - Config and render_template_with_config - is unchanged across the 0.2 -> 0.5 jump. Single cooklang-find 0.6.1, uniffi gone: 412 -> 396 crates on the default path, 225 -> 201 with --no-default-features. Refs #366
Review of #372 (chore(deps): dedupe cooklang-find and drop uniffi)The diff only touches What this actually does (confirmed):
Feedback:
Security: No concerns — this change only reduces dependency surface (dropping uniffi and its transitive deps). No secrets or credentials involved. Overall this is a sound, well-targeted dependency cleanup. My main suggestion is to consider re-running |
The last link in the dependency chain for #366. Both upstream releases are now on crates.io, so this is unblocked.
What was wrong
cooklang-reports0.2.2 pinnedcooklang-find0.5, while cookcli depends on 0.6 directly — so we compiledcooklang-findtwice. Fittingly,cooklang_findis the crate named in the original build failure in #366.Worse, both lines pulled in
uniffiunconditionally. It exists to generate the iOS/Android bindings and is pure dead weight for a CLI, but it dragged in a whole bindgen chain:uniffi_bindgen,goblin,weedle2,cargo_metadata,scroll,bincode,basic-toml,fs-err.The chain
uniffibehind an optionalffifeature (published as 0.6.1,default = ["ffi"]so the mobile bindings are unaffected)cooklang-find0.6 withdefault-features = false(published as 0.5.1)cooklang-reports0.5.1 and opt out offfion our owncooklang-finddependencyResult
Single
cooklang-find0.6.1 in the graph.--no-default-featuresOn the 0.2.2 → 0.5.1 jump
Three majors, but a non-event in practice: we use exactly two symbols,
config::Configandrender_template_with_config, and both signatures are unchanged.Verification (against the CI toolchain, 1.97)
cargo clippy --all-targets -- -D warnings— 0 issuescargo fmt --check— cleancargo test— 13 suites pass, snapshots unchangedRefs #366