Merge main into development; test the declared R 4.2 floor - #369
Conversation
resolves weird merge/revert problems
The badge list mixed `master` and `development` across twelve packages. Ten now point at `main`. SpaDES.addins and SpaDES.experiment point at `master` instead: neither repo has a `main` branch, so a main-pointing badge there would render "unknown" forever. Four of the ten (SpaDES, quickPlot, NetLogoR, and SpaDES.shiny) will read "unknown" until their coverage workflows are fixed -- .github/workflows/ test-coverage.yaml in those repos still triggers only on master and development, so codecov has never received an upload for main. Verified against the live badge endpoints; the six with a main-triggered workflow (reproducible 80%, Require 45%, SpaDES.core 80%, SpaDES.tools 82%, SpaDES.project 40%, LandR 6%) render correctly already. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZWdhVg8NimEUKT5g8mYt9
PredictiveEcology/actions/install-spatial-deps@v0.1 apt-installs libsqlite0-dev, which does not exist on Ubuntu noble (24.04) -- the name was retired years ago in favour of libsqlite3-dev. Every run on the current runner image died there with exit 100, ~29s in, before any R step. That is what has been keeping the pkgdown site from rebuilding. The step is redundant regardless: r-lib/actions/setup-r-dependencies@v2 resolves and installs system requirements through pak, so the geospatial libraries terra and sf need get installed anyway. Removed from all four workflows (pkgdown, R-CMD-check, test-coverage, update-citation-cff), not just pkgdown, since all four carried the same broken step. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZWdhVg8NimEUKT5g8mYt9
Replaces three bespoke workflows (146 lines) with 24 lines of caller,
matching how reproducible and the other current PE repos are wired:
`uses: PredictiveEcology/actions/.github/workflows/<name>.yaml@main`
with `secrets: inherit`.
What this fixes, beyond consistency:
* The 9-job R-CMD-check matrix included four ubuntu-20.04 legs. That
runner image is retired, so those jobs could not be scheduled at all.
The shared workflow's default matrix runs on current images.
* pkgdown installed ropensci/NLMR and s-u/fastshp on every build. Neither
is referenced anywhere in R/, vignettes/, DESCRIPTION or man/ -- they
were the slowest step and the largest failure surface. Dropped; the
shared workflow's `post-install` input is there if they are ever needed.
* The shared pkgdown/R-CMD-check workflows install the geospatial system
libraries from stock Noble apt rather than the ubuntugis-unstable PPA,
which ships a libgdal37 that is ABI-incompatible with Posit's noble
binary cache.
* Triggers now include `main`, so a push to the default branch actually
rebuilds the site and uploads coverage. Coverage had only ever been
uploaded for master/development, which is why the README badge read
"unknown" on main.
Pinned at @main rather than a version tag, matching reproducible's callers.
The actions README recommends a tag for stability; the tradeoff is that a
stale pin is exactly what broke this repo -- it sat on
install-spatial-deps@v0.1, whose libsqlite0-dev has not existed since
Ubuntu noble, while the action itself was fixed years ago and released
through v0.5.
update-citation-cff.yaml keeps its own steps; there is no shared
equivalent.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZWdhVg8NimEUKT5g8mYt9
Without a `codecov: branch:` setting, Codecov falls back to `master`. This repo's default branch is `main` and `master` does not exist, so the repo total was computed from nothing and read far below the real figure. SpaDES.tools already carried this fix; propagating it to the rest of the packages whose default branch is main. Applied to both main and development so the branches do not drift. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
SpaDES.project is set up; remove "(currently being set up)" from the package list. The README's three images -- the logo and the two demo figures -- were served from `.../SpaDES/raw/master/man/figures/`. **This repo has no `master` branch**, so all three 404'd on the README and on the site homepage. Repointed at `main` (the files were always present in `man/figures/`) and collapsed the `figures//` double slash. Verified all three now return 200. The vignette's bug-report list omitted SpaDES.experiment and SpaDES.project; added both. Note the SpaDES-modules links legitimately keep `master` -- that repo still has one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZWdhVg8NimEUKT5g8mYt9
The reference page rendered two literal, unlinked strings:
See [SpaDES.core]{SpaDES.core-package}, and the vignettes therein
See [SpaDES.tools]{SpaDES.tools-package}.
The source wrote `\code{[pkg]{topic}}` -- Rd cross-reference syntax with
the `\link` dropped -- so `\code{}` printed the markup verbatim instead of
producing a hyperlink. These are the dead links on
<https://spades.predictiveecology.org/reference/SpaDES-package.html>.
This package has roxygen markdown enabled, so the fix is
`[SpaDES.core::SpaDES.core-package]`, which generates a real
`\link[SpaDES.core:SpaDES.core-package]{...}`. Both target aliases were
confirmed to exist in the installed packages, so the links resolve rather
than 404.
Collateral from regenerating with roxygen2 8.1.0 (the package was at
7.3.1):
* DESCRIPTION: `RoxygenNote:` -> `Config/roxygen2/version:`, roxygen2 8's
field name. Matches what Require already carries.
* man/pkgEnv.Rd: drops `\docType{data}` and the auto-generated `\format`
block for `.pkgEnv`, which roxygen2 8 no longer emits for a plain
environment.
* man/SpaDES-package.Rd: restores Alex Chubaty to the Authors list. The
committed Rd had gone stale against DESCRIPTION's Authors@R.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZWdhVg8NimEUKT5g8mYt9
This workflow kept its own steps when the other three became thin callers, and it still installed ropensci/NLMR and s-u/fastshp from source. Neither is referenced anywhere in the package, and building a CITATION.cff needs neither. The step failed and took the job with it. It only surfaced now because the workflow triggers on changes to DESCRIPTION or inst/CITATION, and the roxygen 8.1.0 regeneration in 957268c was the first DESCRIPTION change in a long while. Latent, not new. Also drops the `fastshp=?ignore` / `NLMR=?ignore` placeholders that existed only to keep setup-r-dependencies from resolving them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZWdhVg8NimEUKT5g8mYt9
Brings the reusable-workflow migration to the branch where work actually happens. R-CMD-check.yaml conflicted -- development still triggered on `master`, a branch this repo no longer has -- and was resolved in favour of main's thin caller. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The base matrix stops at oldrel-1, which is R 4.5 -- three unrestricted minor versions above this package's declared floor. oldrel-N cannot close the gap: on ubuntu-latest R 4.2 is not reachable by any oldrel index (oldrel-3 gives 4.3.3, oldrel-4 skips straight to 4.1.3). Exact versions resolve identically on Linux, macOS and Windows, and Posit ships noble .debs down to 4.0.5. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three defects, two of them introduced by this branch. Remotes: was deleted by the merge. main strips it for CRAN submission; development needs it, because it is what makes this branch resolve quickPlot/reproducible/SpaDES.core/SpaDES.tools from their @development branches. Without it the integration branch integrates against CRAN -- or against r-universe, which builds from each repo's default branch, not development. Restored. The R 4.2 matrix leg could never have passed. Every package in Imports -- quickPlot, reproducible, SpaDES.core, SpaDES.tools -- declares Depends: R (>= 4.3), so pak aborts resolution before R CMD check produces any output. That makes Depends: R (>= 4.2) provably false: SpaDES has not been installable on 4.2 for some time. Raise the floor to 4.3 and drop the leg, following the precedent set for R 4.1 in v2.0.10. .Rbuildignore gained a duplicate ^CRAN-SUBMISSION$ from the merge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Correction: the
|
developmentnever received the reusable-workflow migration — it landed onmainonly, so the branch every PR targets still ran the old self-managed workflows, includinginstall-spatial-deps@v0.1.1. Merge
main→developmentOne conflict, in
.github/workflows/R-CMD-check.yaml:development's copy still triggered onmaster, a branch this repo no longer has. Resolved in favour ofmain's thin caller.The merge also removes the last stale spatial pins from
development—main's versions ofpkgdown.yaml,test-coverage.yamlandupdate-citation-cff.yamlhad already droppedinstall-spatial-deps. After this merge there are none left on the branch:That matters, because every published tag — v0.1 through v0.5 — still runs
add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable, which installs libgdal37 while Posit's noble binaries link libgdal34. Only@maindropped it.2. Test the R 4.2 floor
DESCRIPTIONdeclaresR (>= 4.2). The base matrix stops atoldrel-1— currently R 4.5 — leaving three unrestricted minor versions untested.oldrel-Ncannot close that gap, because the ladder is platform-dependent and not monotone. Resolved against the exact platform stringsetup-rsends:On
ubuntu-latest, R 4.2 is unreachable by anyoldrelindex. Exact versions resolve identically on Linux, macOS and Windows (4.2→ 4.2.3), and Posit ships noble.debs down to 4.0.5.Adds ubuntu legs at 4.4, 4.3 and 4.2.
If a leg fails
That is the finding, not a reason to drop the leg — it would mean the declared floor was never true. Either fix the package or raise
Depends:.Note
SpaDES has no direct spatial dependency of its own, so once
system-depsis exposed as a workflow input it should setsystem-deps: falseand stop paying for a GDAL install it never uses.🤖 Generated with Claude Code