Bump vctrs/rlang pins to fix CI compile failure - #151
Conversation
…nux binary for the current runner and fails compiling from source (vendored rlang code references R_NamespaceRegistry, which R no longer exposes publicly).
Thank you!Thank you for your pull request 😃 🤖 This automated message can help you check the rendered files in your submission for clarity. If you have any questions, please feel free to open an issue in {sandpaper}. If you have files that automatically render output (e.g. R Markdown), then you should check for the following:
Rendered Changes🔍 Inspect the changes: https://github.com/LibraryCarpentry/lc-r/compare/md-outputs..md-outputs-PR-151 The following changes were observed in the rendered markdown documents: What does this mean?If you have source files that require output and figures to be generated (e.g. R Markdown), then it is important to make sure the generated figures and output are reproducible. This output provides a way for you to inspect the output in a diff-friendly manner so that it's easy to see the changes that occur due to new software versions or randomisation. ⏱️ Updated at 2026-08-22 23:32:18 +0000 |
vctrs 0.7.2 and S7 0.2.1 fail to compile against R 4.4+ because their vendored rlang C code references R_NamespaceRegistry, which R no longer exposes publicly (fixes LibraryCarpentry#150). Posit Package Manager only serves a prebuilt linux binary for the current CRAN release of each package, so any other compiled package pinned below its current version falls back to a source build that may hit the same or similar failures. Scanned the lockfile for every NeedsCompilation: yes / CRAN-sourced package with no current-version PPM binary and bumped all of them to their current CRAN release: bit64, cli, curl, data.table, fs, glue, openssl, processx, ps, purrr, readxl, rlang, S7, stringi, vctrs, xfun, xml2.
readxl 1.5.0 requires cpp11 >= 0.5.5; the lockfile still pinned 0.5.4, which renv's pre-flight validation now rejects. Scanned the rest of the lockfile for the same class of problem (a pinned version failing another package's Depends/Imports/LinkingTo floor) and found none.
Closes #150.
Problem
CI was failing while restoring the renv cache, with compilation errors in
vctrsandS7:Root cause:
vctrs 0.7.2andS7 0.2.1(pinned inrenv/profiles/lesson-requirements/renv.lock) vendor a copy of rlang's C internals that referenceR_NamespaceRegistry, a symbol R no longer exposes publicly as of 4.4+. Posit Package Manager only serves a prebuilt linux binary for the current CRAN release of each package, so these older pins fall back to a source compile that fails against the runner's R version.Fix
Scanned the lockfile for every
NeedsCompilation: yes/ CRAN-sourced package with no current-version PPM binary, and bumped all of them (not just vctrs/S7) to their current CRAN release, to avoid hitting this same failure mode piecemeal across future CI runs:bit64,cli,curl,data.table,fs,glue,openssl,processx,ps,purrr,readxl,rlang,S7,stringi,vctrs,xfun,xml2.Each entry's metadata was regenerated from the real DESCRIPTION file for that version (not hand-typed), so the diff matches what
renv::snapshot()would produce.Confirmed this failure pre-dates and is unrelated to #149 — same error hits
01 Maintain: Build and Deploy Siteonmainon 2026-08-11 and 2026-08-18.