Skip to content

Fix R 4.7.0 (devel) build failure caused by lazyeval transitive dependency#179

Merged
hreinwald merged 2 commits intodevfrom
copilot/replace-lazyeval-with-rlang
Mar 27, 2026
Merged

Fix R 4.7.0 (devel) build failure caused by lazyeval transitive dependency#179
hreinwald merged 2 commits intodevfrom
copilot/replace-lazyeval-with-rlang

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 27, 2026

lazyeval 0.2.2 fails to compile on R 4.7.0 devel (undefined symbol: PREXPR). It's pulled in transitively via covr → rex → lazyeval — drc never uses lazyeval directly.

Changes

  • DESCRIPTION: Remove covr from Suggests to break the transitive dep chain. The test-coverage.yaml workflow already installs covr independently via extra-packages: any::covr, so coverage is unaffected.

This is the minimal fix — no other changes are needed since drc has zero direct references to lazyeval. Adding rlang to Imports or bumping the R dependency to >= 4.7.0 was ruled out because rlang 1.1.7 also suffers from the same PREXPR undefined symbol issue on R 4.7.0 devel, and requiring R >= 4.7.0 would break all non-devel CI jobs (release, oldrel, etc.).


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…bust.R

- Remove covr from Suggests (breaks transitive dep: covr → rex → lazyeval)
- Add rlang to Imports in DESCRIPTION
- Add importFrom(rlang, .data, .env) to NAMESPACE
- Use .env pronoun in dplyr::mutate() calls in ED_robust.R
- Update R dependency from >= 4.0.0 to >= 4.7.0
- No lazyeval references existed in drc code (was only transitive)

Agent-Logs-Url: https://github.com/hreinwald/drc/sessions/baca55f0-92b5-4c76-ae0e-340721b30e9b

Co-authored-by: hreinwald <115988583+hreinwald@users.noreply.github.com>
@hreinwald
Copy link
Copy Markdown
Owner

All tests R-CMD-check and test-coverage are failing now. Review these issues @copilot

… from Suggests

The R >= 4.7.0 requirement broke all non-devel CI jobs (release, oldrel, etc).
Adding rlang to Imports failed on devel because rlang 1.1.7 also has the
same PREXPR undefined symbol issue on R 4.7.0.

The minimal correct fix is simply removing covr from Suggests to break
the transitive dependency chain (covr -> rex -> lazyeval). The
test-coverage workflow already installs covr independently via
extra-packages: any::covr.

Agent-Logs-Url: https://github.com/hreinwald/drc/sessions/210cacd6-0b79-4134-849a-0fe7f7248972

Co-authored-by: hreinwald <115988583+hreinwald@users.noreply.github.com>
Copy link
Copy Markdown
Author

Copilot AI commented Mar 27, 2026

All tests R-CMD-check and test-coverage are failing now. Review these issues @copilot

Investigated the CI failures — two issues with my initial commit:

  1. R >= 4.7.0 requirement broke all non-devel jobs (release R 4.5.x, oldrel R 4.4.x, etc.) since R 4.7.0 only exists as devel.
  2. rlang 1.1.7 also has the same PREXPR undefined symbol issue on R 4.7.0 devel, so adding it to Imports broke the devel build too.

Fixed in 68ee522 — reverted the R version bump and rlang additions. The only change is now removing covr from Suggests, which breaks the transitive chain (covr → rex → lazyeval) that pulls in lazyeval. The test-coverage workflow already installs covr independently via extra-packages: any::covr.

Copilot AI requested a review from hreinwald March 27, 2026 15:53
@hreinwald hreinwald merged commit e65dd9a into dev Mar 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants