Goal
.github/workflows/harvest.yaml: a weekly harvest whose output arrives as one pull request for the maintainer to merge.
Rewritten 2026-09-04 per dev/decisions-2026-09.md. Start from .github/workflows-pending/harvest.yaml on the closed PR #15 branch, minus the direct push, the registry sync and the failure issue.
Workflow
- Triggers:
schedule cron 0 3 * * 1 and workflow_dispatch
- Steps: checkout main; r-lib/actions setup-r and setup-r-dependencies with
needs: harvest; Rscript data-raw/harvest.R with the GitHub backend and LANG=C.UTF-8; roxygen2::roxygenise(); testthat::test_local(stop_on_failure = TRUE) as the gate; if anything under R/sysdata.rda, inst/extdata/, data-raw/packages.json, data-raw/harvest_report.md, man/ or DESCRIPTION changed, open or update a pull request on a fixed branch harvest (for example with peter-evans/create-pull-request), body from harvest_report.md
- The built-in
GITHUB_TOKEN is enough. A pull request opened with it triggers no pull_request workflows, so the gate runs inside this job and R-CMD-check plus pkgdown run on main after the merge. Do not make R-CMD-check a required status on main, or the harvest PR can never merge.
- Failure surfacing: a failed run is red in the Actions tab and opens no PR. No issue automation.
Acceptance criteria
- A
workflow_dispatch run opens a pull request with a bumped version and date, or reports no changes
- Merging that pull request rebuilds the site through the pkgdown workflow
- A forced gate failure (temporarily break a schema test) leaves the run red and opens no PR
Goal
.github/workflows/harvest.yaml: a weekly harvest whose output arrives as one pull request for the maintainer to merge.Rewritten 2026-09-04 per dev/decisions-2026-09.md. Start from
.github/workflows-pending/harvest.yamlon the closed PR #15 branch, minus the direct push, the registry sync and the failure issue.Workflow
schedulecron0 3 * * 1andworkflow_dispatchneeds: harvest;Rscript data-raw/harvest.Rwith the GitHub backend andLANG=C.UTF-8;roxygen2::roxygenise();testthat::test_local(stop_on_failure = TRUE)as the gate; if anything underR/sysdata.rda,inst/extdata/,data-raw/packages.json,data-raw/harvest_report.md,man/orDESCRIPTIONchanged, open or update a pull request on a fixed branchharvest(for example withpeter-evans/create-pull-request), body fromharvest_report.mdGITHUB_TOKENis enough. A pull request opened with it triggers nopull_requestworkflows, so the gate runs inside this job and R-CMD-check plus pkgdown run on main after the merge. Do not make R-CMD-check a required status on main, or the harvest PR can never merge.Acceptance criteria
workflow_dispatchrun opens a pull request with a bumped version and date, or reports no changes