Repository navigation
ci: add lightweight pull-request R validation - #13
Conversation
sbalci
left a comment
There was a problem hiding this comment.
Verdict: approve the workflow. The red run is a pre-existing false positive in a test, not a problem with this file.
R CMD checkpassed (1 NOTE).- The only failure is the dependency guard that the umbrella generates (
test-zzz-dependency-declaration.R:527).- It flags
atopinas.expression(bquote(atop(.(expr), .(text))))atR/utils-ggstatsplot.R:157. - That is plotmath inside
bquote(): R never evaluates it, and nothing exports it. So the suggestedimportFromfix is impossible.
- It flags
- Fix it in the umbrella's
_updateModules_test_dependency_guard.Rand regenerate.- Prefer exempting plotmath tokens over skipping
quote()/bquote()bodies wholesale. - Skipping those bodies would also stop checking evaluated templates such as
eval(bquote(.(d) %>% head())). That is exactly the bare-%>%shape this guard exists to catch. - The updater's
verify_module()evaluates the same guard, so it would likely stop jjstatsplot too.
- Prefer exempting plotmath tokens over skipping
- Merging before that fix makes master red.
- About the NOTE.
V8andconcavemanare in Imports but used only throughrequireNamespace(), which is deliberate for jamovi. A possible follow-up forhullplot: ggforce 0.5.0 no longer needs concaveman forgeom_mark_hull().
Optional polish (same file in all five submodule PRs)
- Failure output is truncated.
reporter = "summary"prints details for only the first 10 failures (testthat.summary.max_reports); OncoPath's red run printed 10 of 38.reporter = "check"prints every failure plus the[ FAIL | WARN | SKIP | PASS ]totals line. - Master runs can cancel each other.
cancel-in-progress: truecombined with thegithub.reffallback in the group key also cancels master runs, so a quick second merge leaves the first commit with no result. Key non-PR runs ongithub.run_id, or usecancel-in-progress: ${{ github.event_name == 'pull_request' }}. - Two inputs do nothing. The
dependencies:input equals the default here (no module declaresEnhances), andneeds: checkhas noConfig/Needs/checkto read. Both can go. actions/checkout@v4runs on the deprecated Node 20. v5 and later use Node 24.- Worth stating in the PR text:
- Nearly every example is
\dontrun, so "checking examples … OK" covers almost nothing. - A green run does not mean the module loads in jamovi, because
jamovi/is.Rbuildignored andjmvtools::prepare()does not run.
- Nearly every example is
🤖 Reviewed with Claude Code. The workflow inputs were checked against the r-lib/actions v2 sources and the CI logs were triaged; each claim was re-checked by an independent verifier. GitHub does not let an author approve their own pull request, so this approval is posted as a comment.
- Use testthat's check reporter: every failure is printed (the summary reporter stops at 10) and a totals line closes the run. - Cancel only superseded pull-request runs; each push or dispatch run gets its own concurrency group. - Drop no-op inputs: dependencies equals the default here and no DESCRIPTION has Config/Needs/check. - actions/checkout@v5 (Node 24; v4 triggers the Node 20 deprecation). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Follow-up: the review's polish is pushed. The workflow now uses testthat's check reporter, which prints every failure (the summary reporter stopped at 10) plus a totals line. Only superseded PR runs are cancelled, so push and dispatch runs no longer cancel each other. The two no-op inputs are gone, and it runs on
Not merged from the review session: the automation's permission policy blocks merging. This is ready to squash-merge. 🤖 Follow-up by Claude Code. |
Summary
Validation
609b641ce29942937686e78d69c230701d76d45a.This draft intentionally exposes the package's current baseline. Source-tree tests run after a failed package check when dependency setup succeeded, and neither failure is suppressed. Existing skips remain in place, including the test for pending umbrella-only analyses. Manual generation, vignettes and broader --as-cran checks are omitted to keep this initial validation focused.