Problem
cargo test on a fresh clone does not compile:
error[E0061]: this function takes 2 arguments but 3 arguments were supplied
--> examples/quickstart.rs:180:5
error[E0061]: this function takes 1 argument but 2 arguments were supplied
--> examples/quickstart.rs:183:5
error: could not compile `hotdata` (example "quickstart") due to 2 previous errors
examples/quickstart.rs defines fetch_arrow and one_shot_arrow twice: a real version behind #[cfg(feature = "arrow")] and a stub behind #[cfg(not(feature = "arrow"))]. The call sites take three and two arguments; the stubs take two and one. The stubs have drifted.
Why it survived
Every workflow builds with --all-features:
integration-tests.yml: cargo test --all-features --test '*'
publish.yml: cargo publish --dry-run --all-features, then cargo publish --all-features
With arrow enabled the stubs are never compiled, so nothing on CI has ever built the default feature set. The green suite means "we did not build that configuration", not "that configuration works.
arrow is not a default feature, so this is what a consumer gets from cargo add hotdata without opting in.
Fix
Two parts:
- Correct the two stub signatures so they match their call sites.
- Add a CI job that builds and tests with default features, so the non-arrow configuration cannot silently rot again. A
cargo check --no-default-features alongside it would also cover the minimal set.
Noticed while working on #138; deliberately left out of that PR since it is unrelated to the change there.
Problem
cargo teston a fresh clone does not compile:examples/quickstart.rsdefinesfetch_arrowandone_shot_arrowtwice: a real version behind#[cfg(feature = "arrow")]and a stub behind#[cfg(not(feature = "arrow"))]. The call sites take three and two arguments; the stubs take two and one. The stubs have drifted.Why it survived
Every workflow builds with
--all-features:integration-tests.yml:cargo test --all-features --test '*'publish.yml:cargo publish --dry-run --all-features, thencargo publish --all-featuresWith
arrowenabled the stubs are never compiled, so nothing on CI has ever built the default feature set. The green suite means "we did not build that configuration", not "that configuration works.arrowis not a default feature, so this is what a consumer gets fromcargo add hotdatawithout opting in.Fix
Two parts:
cargo check --no-default-featuresalongside it would also cover the minimal set.Noticed while working on #138; deliberately left out of that PR since it is unrelated to the change there.