On 2018-03-20 06:17, Johannes Ranke wrote:
...

The idea exposed by Dirk is the same: requireNamespace will find the
package on CRAN and will set eval=TRUE. What you want though is to
avoid running a chunk on CRAN, even if the package is available. So
you need to set eval=FALSE *unconditionally*.
Or conditional on the package version (as Dirk proposed regarding tests) or on
an environment variable NOT_CRAN which you can set to true on the machine
where you do want to run the code (as used by devtools).


      The function "fda::CRAN" allows package developers to run tests themselves that should not run on CRAN or with "R CMD check –as-cran".  Several of my packages have code in "\examples" that include something like the following:


if(!fda::CRAN()){
    #Code I do not want run if a certain parameter is in Sys.getenv()
}


      I have not tried this, but I think you could set a parameter, e.g., '-no-vignette' via either Sys.setenv('-no-vignette'=1) or "R CMD check -no-vignette", then bracket code snippets in the vignette with "if(!fda::CRAN('-no-vignette', '-no-vignette')){...}".


      This will NOT turn off compiling the vignette, but it will allow you to suppress running code snippets in the vignette that take time.


      Hope this helps.
      Spencer


p.s.  I just tested "Sys.setenv('-no-vignette'=1);  tst2 <- CRAN('-no-vignette', '-no-vignette')" and got TRUE, when CRAN() returned FALSE.  When I tried print(tst2) I got:


 [1] TRUE
attr(,"Sys.getenv")
Error in formatDL(x, ...) : unused argument (digits = 7)


      I do not understand this error message, but it does not seem to be a problem I have to fix right now, so I won't.

Johannes

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to