[R-pkg-devel] CRAN packages dependency on bioconductor packages

Sebastian Meyer @eb@meyer @end|ng |rom |@u@de
Thu May 16 12:25:04 CEST 2024


Am 16.05.24 um 11:34 schrieb Duncan Murdoch:
> On 2024-05-16 4:15 a.m., Sebastian Meyer wrote:
>> Am 15.05.24 um 00:09 schrieb Lluís Revilla:
>>> Hi Junhui,
>>>
>>> There is a separate log for checking if your package works without
>>> suggested packages: in the StepReg results
>>> The noSuggests title leads to:
>>> https://www.stats.ox.ac.uk/pub/bdr/noSuggests/StepReg.out
>>> Where you can see that it fails if a user don't have BiocStyle 
>>> installed.
>>> I don't know if it is possible to use a vignette output conditionally 
>>> with
>>> knitr: In any case it seems that it would be a requirement (Imports, or
>>> Depends).
>>
>> Yes, I'd consider the package providing the vignette output format for
>> the rmarkdown engine, here BiocStyle, as a strong dependency of that
>> vignette.
> 
> It is documented in WRE as a soft dependency of the package: "As Sweave 
> is the only engine supplied with the R distribution, the package 
> providing any other engine must be specified in the ‘VignetteBuilder’ 
> field of the package DESCRIPTION file, and also specified in the 
> ‘Suggests’, ‘Imports’ or ‘Depends’ field (since its namespace must be 
> available to build or check your package)."
> 
> I forget now, but presumably the thinking at the time was that Suggested 
> packages would always be available for building and checking vignettes.
> 
> With most soft dependencies, it's up to the package writer to handle the 
> possibility that it is missing, but here, I think it has to be the check 
> code that does it, skipping the vignette test if the builder is missing.

Yes, re-building vignettes is skipped when a VignetteBuilder package is 
unavailable.

In the present case, the VignetteBuilder package that provides the 
engine is knitr and BiocStyle is used for an alternative rmarkdown 
output format. Not sure if the latter should be declared as an 
additional VignetteBuilder even if it does not provide the vignette 
engine, but you are right that it comes very close.

> 
> Alternatively, it could be required to be a hard dependency, but that 
> seems too strong:  most package users don't need to rebuild vignettes.

Agreed. Declaring it as part of the vignette's \VignetteDepends is what 
I'd do to solve the check issue.

	Sebastian Meyer

> 
> Duncan Murdoch
> 
> 
>   The error from the additional "noSuggests" check
>> (<https://www.stats.ox.ac.uk/pub/bdr/noSuggests/README.txt>) shows it
>> cannot be rebuild if BiocStyle is unavailable.
>>
>> The 'StepReg' vignette could use a metadata line to declare strong
>> vignette dependencies, for example:
>>
>>       %\VignetteDepends{StepReg, BiocStyle, kableExtra}
>>
>> (I haven't checked if this list is complete.)
>>
>> This avoids spurious check errors in incomplete setups, such as when
>> mass-checking packages (e.g., reverse dependencies) without some of the
>> suggested packages being installed.
>>
>> Best,
>>
>>     Sebastian Meyer
>>
>>>
>>> However, it is best to not use the Bioconductor style for a package in
>>> CRAN.
>>> You could use the *_vignette or *_document format directly (from 
>>> rmarkdown
>>> if I recall correctly).
>>> You will remove a dependency and avoid this problem entirely.
>>>
>>> Best,
>>>
>>> Lluís
>>>
>>>
>>> On Tue, 14 May 2024 at 22:48, Li, Junhui <Junhui.Li11 using umassmed.edu> 
>>> wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> I recently developed an R package called 'StepReg' and used the
>>>> Bioconductor R package 'BiocStyle' in my vignettes, as shown below:
>>>>
>>>> output:
>>>>     BiocStyle::html_document:
>>>>       toc_float: true
>>>>     BiocStyle::pdf_document: default
>>>>
>>>> In my DESCRIPTION file, I added 'BiocStyle' to the Suggests field and
>>>> included a new line 'biocViews:', as follows:
>>>>
>>>> VignetteBuilder: knitr
>>>> biocViews:
>>>> Suggests:
>>>>       knitr,
>>>>       testthat,
>>>>       BiocStyle,
>>>>       kableExtra
>>>>
>>>> You may find all those information here:
>>>> https://github.com/JunhuiLi1017/StepReg/tree/dev
>>>>
>>>> There were no error messages when checking with 'R CMD check' and on
>>>> https://win-builder.r-project.org/upload.aspx. However, an error 
>>>> message
>>>> occurred when I attempted to upload it to CRAN:
>>>>
>>>> * checking re-building of vignette outputs ... ERROR
>>>> Error(s) in re-building vignettes:
>>>> --- re-building 'StepReg.Rmd' using rmarkdown
>>>> Error: processing vignette 'StepReg.Rmd' failed with diagnostics:
>>>> there is no package called 'BiocStyle'
>>>> --- failed re-building 'StepReg.Rmd'
>>>>
>>>> SUMMARY: processing the following file failed:
>>>>      'StepReg.Rmd'
>>>>
>>>> Error: Vignette re-building failed.
>>>> Execution halted
>>>>
>>>> For version 1.5.0 (
>>>> https://cran.r-project.org/web/packages/StepReg/index.html), I
>>>> successfully uploaded it to CRAN without including 'biocViews:' in the
>>>> DESCRIPTION file two months ago. However, I'm encountering difficulties
>>>> this time. Any insights or suggestions on resolving this issue would be
>>>> greatly appreciated.
>>>>
>>>> Thanks,
>>>> Junhui
>>>>
>>>>           [[alternative HTML version deleted]]
>>>>
>>>> ______________________________________________
>>>> R-package-devel using r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>
>>>
>>>     [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-package-devel using r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>
>> ______________________________________________
>> R-package-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>



More information about the R-package-devel mailing list