[R-pkg-devel] Problems installing dependences of my package
On Mon, 9 Sep 2019 at 16:58, Andrea Vilar Alvarez
<andreavilaralvarez at hotmail.com> wrote:
First of all, I am not sure about the difference between Depends and Imports, but I only use Depends.
Common advice goes the other way around: you should avoid Depends as much as possible, so that your users' search path doesn't get polluted with all your dependencies. Rule of thumb: "Depends: pkg1" is like you are executing "library(pkg1)" in your users' session. You should avoid that unless it's strictly necessary. It's important to invest some time to truly understand the difference between Imports and Depends. Some references: - https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Package-Dependencies - http://r-pkgs.had.co.nz/description.html
My problem is that my package is going to be used at different computers and for different persons so I want that when other person use my package, it can be able to check if the necesary packages are installed and if they are not installed, the package must be able to install them.
That's the whole point of declaring dependencies, and that's how install.packages() works: I install your package and R figures out what's needed and installs it for me.
I supposed that this problem was solved including the necesary packages and their versions at ?Depends?.
As noted above, preferably Imports. But yes, that's correct.
And now, I have another problem because the versions are usually indicated using ?>=?, for example: forecast (>=8.7) but I need to use exactly the versi?n 8.7 because sometimes when packages are updated, they lost some functions. But if I use <= or == and the package is update to versi?n 8.8, my package installation fail. How can I solve this? If I use R normaly (outside my package), I can install older versions of other packages using devtools::install_version() so why when I indicate forecast (<=8.7) at Depends on the DESCRIPTION file, R is not able to install an older version if a new one is avaliable?
That's another story. R does not support exact versioning. You have several options to achieve this though [1, 2, 3, 4]. But if you want to submit your package to CRAN with exact versioning, unfortunately that's not gonna work; but there are good reasons for that. [1] https://cran.r-project.org/package=versions [2] https://cran.r-project.org/package=checkpoint [3] https://cran.r-project.org/package=rbundler [4] https://cran.r-project.org/package=packrat I?aki