[R-pkg-devel] Getting a package ready for CRAN - some questions

Henrik Bengtsson henrik.bengtsson at gmail.com
Thu Jun 2 00:20:52 CEST 2016


If it's not feasible to create a fast vignette or to avoid downloading
files, an alternative is to pre-generate the vignette and include it
as a static PDF/HTML vignette, cf.
https://cran.r-project.org/package=R.rsp.  If it's a LaTeX-based
vignette (e.g. Sweave/knitr), you could pre-generate the LaTeX
document and any figures and the use a plain-LaTeX vignette to include
it in the package (also supported by the R.rsp package).  For
reproducibility, I would include the root/source vignette in the
package as well, e.g. in inst/full-vignettes/ with instructions and/or
a function on how to rebuild it.

I second Hadley's recommendation on adjusting it such that you don't
depend on deprecated/archived CRAN packages (unless there is a plan
for that package to reappear on CRAN any time soon).


Berry, it sounds like you're caching computational expensive results
on file such that succeeding runs will load the cached results instead
of redoing them from scratch each time.  This sounds like a perfectly
fine solution to me.  To me it would be fine to also include that
cached file in the package itself (e.g. inst/cache/) so that it is
picked up also the first time the vignette is built.  You can make it
conditional on a system environment variable such that it is possible
to build it completely from scratch, e.g.

if (Sys.getenv("_R_VIGNETTE_FULL_") != "TRUE") {
  # Load cached data here
}

Some may argue that you're package is not fully tested this way, but
that depends on how well your package tests/ are written.  I tend to
look at examples() and vignettes as demos, and tests/ as actually
tests.  All should of course pass R CMD check and run, but the tests/
are what really test the package.

/Henrik

On Wed, Jun 1, 2016 at 2:01 AM, Berry Boessenkool
<berryboessenkool at hotmail.com> wrote:
>
> Regarding data in vignettes:
>
> In one of my vignettes I have a simulation that takes too much computing time.
> The code is excluded from being executed when building the vignette, but if it's run manually, it saves the result as an Rdata file (in the folder "vignettes").
> The next (executed) block of code then loads this small file and visualizes it.
> https://cran.r-project.org/web/packages/extremeStat/vignettes/extremeStat.html#truncation-effect
>
> I'm absolutely NOT sure if this is good practice, but it worked well for me...
>
> Berry
>
> PS: If I'm doing stupid stuff, feel free to tell me...
>
>
>
>
>> From: h.wickham at gmail.com
>> Date: Tue, 31 May 2016 13:21:42 -0400
>> To: roy.mendelssohn at noaa.gov
>> CC: r-package-devel at r-project.org
>> Subject: Re: [R-pkg-devel] Getting a package ready for CRAN - some questions
>>
>> On Mon, May 30, 2016 at 7:10 PM, Roy Mendelssohn - NOAA Federal
>> <roy.mendelssohn at noaa.gov> wrote:
>> > Hi All:
>> >
>> > I am in the midst of some minor revisions to my xtractomatic package, which up till now has only been on github.  Since ncdf4 for Windows is now available from CRAN  (and many thanks to whomever is responsible for that) I thought I would try to get it into CRAN.  Some questions:
>> >
>> > 1.  The vignette uses a lot of packages that the main code does not - I put those in the DESCRIPTION file, under  “Suggests”, is this correct?
>>
>> Yes.
>>
>> > 2. The vignette uses ggfortify, which was in CRAN for 3.2.x, but is not in CRAN for 3.3.x.  Do I assume then that a submission will fail, or will the submission work but just without the vignette?  Or can I include in the vignette the command to install from github  (using devtools), and then that will build?
>>
>> You definitely do not want to install packages when running a vignette.
>>
>> Given that ggfortify has been archived
>> (https://cran.r-project.org/web/packages/ggfortify/index.html), I'd
>> recommend using a different package (maybe broom?).
>>
>> > 3. On a remote build, my vignette is likely to fail to build.  That is because the vignette downloads a large amount of data in many requests, and if for any reason any one of the downloads fail or times out, the vignette build will fail.  As above, will this cause the entire submission to fail, or just the vignette to fail?  And is there anyway to provide a pre-built vignette in the submission?
>>
>> You shouldn't be downloading data in a vignette. Can you make a
>> separate data package that just bundles the data?
>>
>> Hadley
>>
>> --
>> http://hadley.nz
>>
>> ______________________________________________
>> R-package-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
>         [[alternative HTML version deleted]]
>
>
> ______________________________________________
> R-package-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



More information about the R-package-devel mailing list