fix(deps): drop ggpubr for cowplot; unbreaks R-CMD-check on oldrel-2 - #36
Merged
Merged
Conversation
R-CMD-check has failed on the ubuntu oldrel-2 leg (R 4.4.3) since late July,
on every branch. The visible error was a vignette failure, but that is a
downstream symptom:
derive_simplif.cpp:376:28: error: 'R_ClosureFormals' was not declared
ERROR: compilation failed for package 'Deriv'
...
Error in loadVignetteBuilder(pkgdir, TRUE)
Deriv 4.3.0 (published 2026-07-23, a month after this repo's last green run
on 2026-06-21) uses R_ClosureFormals, an R >= 4.5 C-API entry point, while
declaring only `Depends: Rcpp` with no minimum R version. So it builds on the
R 4.5.x legs and fails to compile on R 4.4.x. The dependency install aborts,
the vignette builder is never installed, and rcmdcheck then dies in
loadVignetteBuilder() -- which is why this reads as a vignette problem.
Deriv reaches this package only through a single plotting call:
fireSenseUtils -> ggpubr -> car -> pbkrtest -> doBy -> Deriv
and ggpubr was used in exactly one line, arranging a plain list of ggplots.
cowplot::plot_grid() takes the same `plotlist` argument, and cowplot was
already a Suggests, already used by plot_summaries.R behind a
requireNamespace() guard.
- R/DEoptim_fns.R: ggpubr::ggarrange(plotlist = ff) -> cowplot::plot_grid()
- DESCRIPTION: drop ggpubr from Imports; move cowplot Suggests -> Imports
Removes 14 packages from the dependency tree: ggpubr, car, carData, pbkrtest,
doBy, Deriv, lme4, quantreg, SparseM, MatrixModels, nloptr, minqa, abind,
Formula.
No NAMESPACE or roxygen change: both packages were used via `::`, neither had
an @importFrom.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3NTQTNStSLZ3mA3CsLcon
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unblocks #34, #35 and every other PR: the
ubuntu-latest (oldrel-2)leg has failed on every branch since late July, and it is not caused by any of them.The failure is not what it looks like
The visible error is a vignette failure, but that is downstream:
Deriv 4.3.0was published 2026-07-23 — a month after this repo's last green run (development, 2026-06-21). It usesR_ClosureFormals, an R >= 4.5 C-API entry point, while declaring onlyDepends: Rcppwith no minimum R version. So it builds on the R 4.5.x legs and fails to compile on oldrel-2's R 4.4.3. The dependency install aborts, the vignette builder is never installed, andrcmdcheckthen dies inloadVignetteBuilder().That explains the whole pattern: devel / release / oldrel-1 (all R 4.5.x) pass, oldrel-2 (R 4.4.3) fails, and it presents as a vignette error on a package whose vignette was not the problem.
Why we were pulling in Deriv at all
ggpubrwas used in exactly one line of the package:ffis a plain list of ggplots.cowplot::plot_grid()takes the sameplotlistargument, andcowplotwas already a Suggests — already used byplot_summaries.R(:323,:329) behind arequireNamespace()guard.The change
R/DEoptim_fns.R:ggpubr::ggarrange(plotlist = ff)→cowplot::plot_grid(plotlist = ff)DESCRIPTION: dropggpubrfrom Imports; movecowplotSuggests → ImportsRemoves 14 packages from the dependency tree: ggpubr, car, carData, pbkrtest, doBy, Deriv, lme4, quantreg, SparseM, MatrixModels, nloptr, minqa, abind, Formula.
No NAMESPACE or roxygen change — both packages were used via
::, neither had an@importFrom.Notes
plot_grid()'s default spacing/alignment is not identical toggarrange()'s.visualizeDE()arranges parameter histograms, so this is cosmetic, but it is a real difference rather than a pure no-op.requireNamespace("cowplot")guard atplot_summaries.R:185is now redundant (cowplot is an Import). Left in place — harmless, and out of scope here.Deriv's missingR (>= 4.5)constraint is an upstream CRAN bug and worth reporting to its maintainer, since it will bite anything else on R 4.4.