tealeaves
A leaf-temperature model that finished its job in 2020 and has stayed finished
A side-by-side editorial comparison of gh and testdat — release velocity, themes, recent moves, and the top alternatives to consider.
gh spent its last two releases making failures and interruptions recoverable.
The GitHub API client rebuilt on httr2 in 1.4.0, then took a security-driven breaking change in 1.5.0: response headers are no longer stored in returned objects, because they can carry sensitive information. The 1.6.0 release made interrupted pagination recoverable and downgraded personal access token format validation from an error to a warning.
Unit testing for datasets, built on testthat and now bending to its next release.
testdat applies the testthat idiom to data rather than code: expectations that assert properties of a data frame, run as a suite, with results exportable to Excel. Recent releases have been about correctness and upstream compatibility. Expectations are now constructed via new_expectation() ahead of testthat 3.3.0, and expect_base() errors on a missing variable instead of silently passing.
The GitHub API client rebuilt on httr2 in 1.4.0, then took a security-driven breaking change in 1.5.0: response headers are no longer stored in returned objects, because they can carry sensitive information. The 1.6.0 release made interrupted pagination recoverable and downgraded personal access token format validation from an error to a warning.
The direction is tolerance for partial and unusual outcomes rather than new endpoint coverage. Interrupting a paginated call now raises a classed condition carrying the records already fetched; a 304 Not Modified returns an empty response with headers intact instead of erroring; an unrecognised token format warns and proceeds. A fake_github_app() built on webfakes ships for testing, and is offered to other package authors.
Token format handling is now configurable rather than fixed, so the next likely work is following GitHub's credential formats as they change, not expanding the client surface.
testdat applies the testthat idiom to data rather than code: expectations that assert properties of a data frame, run as a suite, with results exportable to Excel. Recent releases have been about correctness and upstream compatibility. Expectations are now constructed via new_expectation() ahead of testthat 3.3.0, and expect_base() errors on a missing variable instead of silently passing.
The package reached its shape early and has spent the years since sanding it. The design decisions worth noting are all in the past: the move to tidyselect at 0.3.0, the test data pipe at 0.4.0, and the failure messages at 0.4.1 that name which variable failed rather than just reporting a count. Since then activity is sparse and reactive, tracking testthat and R-devel. The two 0.4.3 and 0.4.4 tags arriving ninety minutes apart on the same day is the signature of a release caught by an upstream deadline.
The immediate work is finishing the testthat 3.3.0 adaptation. Beyond that the notes give no evidence of new expectation families; the package looks maintained rather than developed.
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 gh or testdat.
A leaf-temperature model that finished its job in 2020 and has stayed finished
A credential platform assembled two or three pull requests at a time, never a headline
Search without knowing the field — SigNoz keeps lowering the cost of not knowing your schema
A NOAA Fisheries colour palette that ships when the branding guide changes
A genetic-mapping mainstay that now points new users toward MAPpoly at load time
Relative-risk regression that converges where glm fails, under an unreadable tag order
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. gh 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. gh 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 gh alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "gh alternatives" section above for the current picks, or visit /alternatives/gh for the full list with editorial commentary on each.
Top testdat alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "testdat alternatives" section above for the current picks, or visit /alternatives/testdat for the full list with editorial commentary on each.