0

Is there any way to search for installed packages that depend on a particular version of another package? The dependsOnPkgs function from tools does not seem to support this.

I would like to find all packages on CRAN that depend/import/link Rcpp >= 0.11, such as currently plyr and httpuv. I need this information to "pin" these packages to an older version that worked with Rcpp 0.10.6, until I can upgrade Rcpp on my servers.

Jeroen Ooms
  • 31,998
  • 35
  • 134
  • 207
  • To a first approximation ALL of CRAN that uses Rcpp uses Rcpp (>= 0.11.0). I did fairly extensive tests prior to uploading that version (at the request of CRAN). So they were ALL rebuilt (on Windows), and can all be rebuilt. And in this case, must be rebuilt. So in sum, I think you're asking the wrong question. – Dirk Eddelbuettel Mar 10 '14 at 22:36
  • Ie the other packages that do not list 'Rcpp (>= 0.11.0)' still work with Rcpp, but also require a rebuilt -- the 0.11.0 release had an architectural change which does require rebuilds. [ And yes, I am in the process of doing that on several work servers too ... ] – Dirk Eddelbuettel Mar 10 '14 at 22:45
  • I cannot push `r-cran-rcpp 0.11` to stable/production branches at this point because, as you explained, it causes currently installed packages to break. So for these branches I will have to avoid package versions that require `Rcpp >= 0.11`. – Jeroen Ooms Mar 10 '14 at 23:27
  • @Jeroen perhaps this can help you. https://github.com/hadley/cran-packages – Romain Francois Mar 10 '14 at 23:46

1 Answers1

1

Your comment above helps a little to clarify.

What you need to do is to use something like this script on GitHub which identifies your installed and Rcpp-using packages, and splits it between those from CRAN and elsewhere.

Those from CRAN you can rebuild with a single R command; the others you need to hunt down.

We are sorry for the inconvenience caused, but there is no other way around it. The 0.11.* release series requires a rebuild. All CRAN packages are expected to pass; you just need to spend the few minutes compiling them. If your servers are running the same OS configuration, you can then simply rsync the package directory to the other machines.

Dirk Eddelbuettel
  • 360,940
  • 56
  • 644
  • 725