rollupTree
The recursive-computation engine under massProps grows the accessors its consumer needed
A side-by-side editorial comparison of checkhelper and tf — release velocity, themes, recent moves, and the top alternatives to consider.
checkhelper grew from a check wrapper into a CRAN pre-submission auditor.
1.0.0 added 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. The package is now defending that position: 1.0.1 rc1 is a submission candidate answering a CRAN archival notice, after roxygen2 8.x moved DESCRIPTION's RoxygenNote field and broke a find_missing_tags() test fixture.
tf gave functional data a second dimension: curves whose values are vectors.
tf supplies the vector classes underneath the tidyfun stack — tfd for raw functional observations, tfb for basis-represented ones, both built on vctrs so curves sit in a data frame column and behave like any other vector. Until July that codomain was scalar. The 0.5.0 release adds tfd_mv and tfb_mv, classes for functions whose values are vectors in R^d, and rebuilds the analysis verbs to match.
1.0.0 added 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. The package is now defending that position: 1.0.1 rc1 is a submission candidate answering a CRAN archival notice, after roxygen2 8.x moved DESCRIPTION's RoxygenNote field and broke a find_missing_tags() test fixture.
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. That commitment is what made the roxygen2 8.x break survivable: the audit pipeline itself was verified correct under 8.1.0 and only the test scaffolding had to go, now guarded by a dedicated regression test. fix_globals(write = TRUE) is being sanded down in parallel, no longer flattening per-function grouping comments or writing a degenerate empty globalVariables() shell.
The immediate move is the 1.0.1 submission itself, clearing the archival notice. Beyond that, each additional CRAN incoming-check rule remains a candidate for another audit_* function; the open question these notes still leave is whether the family ever gets a single combined entry point.
tf supplies the vector classes underneath the tidyfun stack — tfd for raw functional observations, tfb for basis-represented ones, both built on vctrs so curves sit in a data frame column and behave like any other vector. Until July that codomain was scalar. The 0.5.0 release adds tfd_mv and tfb_mv, classes for functions whose values are vectors in R^d, and rebuilds the analysis verbs to match.
The package is widening what a functional observation can be, then porting the toolkit onto it. Registration arrived first in 0.4.0 for univariate curves and immediately gained an srvf_mv method for aligning components jointly, and tfb_mfpc() ports principal component analysis to the multivariate case with a single set of scores shared across components. Alongside that runs steady dependency shedding — mvtnorm and pracma both replaced by inlined samplers that reproduce prior draws bit-for-bit, glue dropped for cli in the previous release — and an unusually long tail of NA-handling and edge-case fixes, several caught in pre-release review of the new classes.
The new classes ship with FPCA, registration and shape alignment but the release notes describe tidyfun::tf_unnest() as the consumer of one new export, so the visible next step is the rest of the tidyfun stack catching up to vector-valued columns. Expect follow-up patches on the vctrs casting paths, which is where most of this release's late fixes clustered.
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 tf.
The recursive-computation engine under massProps grows the accessors its consumer needed
A mass-properties rollup spends a year on documentation and follows its sibling's API
Six months of releases and not one of them touched the scoring models
A cognitive-science sampling package ships once, then goes quiet for eighteen months
A Bayesian volatility sampler in its maintenance decade, paying for its own speed
A black-box interpreter reaches CRAN, then learns multi-class and survival responses
See all checkhelper alternatives → · See all tf alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
Both compete on the same themes — r-packages — within Infra & APIs. checkhelper is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. 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 is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. 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 tf alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "tf alternatives" section above for the current picks, or visit /alternatives/tf for the full list with editorial commentary on each.