q2
Ten releases in six days, methodically porting Quarto's surface into a Rust binary.
A side-by-side editorial comparison of checkhelper and evaluate — release velocity, themes, recent moves, and the top alternatives to consider.
checkhelper grew from a check wrapper into a CRAN pre-submission auditor.
Two years of near-silence ended with a 1.0.0 that adds a whole audit_* family: audit_downloads(), audit_description(), audit_dontrun() and audit_citation(), each parsing package source statically and returning a tibble of hits paired with a suggested fix. check_n_covr() runs R CMD check and coverage in a single test pass instead of two.
The engine under every knitted R document reached 1.0 by making evaluation behave like the console.
evaluate captures the output, plots, messages and conditions produced by running R code, and it is the layer knitr and R Markdown sit on. The 1.0.0 release changed core semantics — multi-expression input now stops at the first error — and gave results a real class. Since then, releases have been graphics-focused: ragg-based capture when available, grid plot fixes, and a patch for ggplot2 4.0.0.
Two years of near-silence ended with a 1.0.0 that adds a whole audit_* family: audit_downloads(), audit_description(), audit_dontrun() and audit_citation(), each parsing package source statically and returning a tibble of hits paired with a suggested fix. check_n_covr() runs R CMD check and coverage in a single test pass instead of two.
The design commitment is static analysis — AST walks via getParseData(), line-by-line Rd reading, no eval() and no namespace loading — so the tool can report on a package it never runs. The existing fix_globals() was reworked the same way: it merges with an existing R/globals.R instead of overwriting it, and separates data.table and rlang pronouns from real undeclared globals so they get an @importFrom line rather than a globalVariables() entry.
Each additional CRAN incoming-check rule is a candidate for another audit_* function; the open question these notes leave is whether the family ever gets a single combined entry point.
evaluate captures the output, plots, messages and conditions produced by running R code, and it is the layer knitr and R Markdown sit on. The 1.0.0 release changed core semantics — multi-expression input now stops at the first error — and gave results a real class. Since then, releases have been graphics-focused: ragg-based capture when available, grid plot fixes, and a patch for ggplot2 4.0.0.
The package is being tightened rather than expanded. 1.0.0 removed complexity it could not justify, deprecated include_timing, dropped a function testing for an object it never created, and aligned error behaviour with the console; 1.0.4 then moved plot capture toward a faster, more capable device. The recurring theme is reliability of output capture across environments, which is exactly what a document-rendering substrate needs and what local_reproducible_output() exists to enforce.
Expect continued fast-follow patches keyed to graphics-stack releases — ggplot2 and ragg in particular — rather than new API surface.
Other Infra & APIs products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either checkhelper or evaluate.
Ten releases in six days, methodically porting Quarto's surface into a Rust binary.
The metadata cache under pak now speaks to authenticated and corporate repositories.
R's old dependency manager now runs on a vendored copy of its own successor.
A fake web server for tests that keeps closing the gap with the real thing.
Hit 1.0, relicensed to MIT, and has shipped almost nothing but dbplyr compatibility since.
carrier's 0.3.0 quietly rewrites how crated functions see each other — and breaks code that relied on the old rules.
See all checkhelper alternatives → · See all evaluate alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. checkhelper and evaluate are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. checkhelper and evaluate are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Infra & APIs products to evaluate alongside.
Top checkhelper alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "checkhelper alternatives" section above for the current picks, or visit /alternatives/checkhelper for the full list with editorial commentary on each.
Top evaluate alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "evaluate alternatives" section above for the current picks, or visit /alternatives/evaluate for the full list with editorial commentary on each.