On 17/03/2023 6:19 a.m., Ruff, Sergej wrote:
In my example I have the following lines:


### Differential expression analysis with limma
group = gl(2, n)
design = model.matrix(~ group)
fit1 = limma::lmFit(X, design)
fit = limma::eBayes(fit1)

The R CMD Check returns no Errors or Notes if Limma is pre-installed. If limma is not pre-installed I get an error, reminding me that Limma is not available.

That's a problem, and will cause your package to be rejected. It should not raise an error during the tests when a suggested package is missing. Ivan gave you good advice on how to fix this.

I'd recommend testing your package a few times on Winbuilder and fixing things until you get clean results. That won't guarantee acceptance on CRAN; new packages get a manual inspection as well, and they'll often find some problem that the automatic tests don't find, e.g. stylistic issues in the Description field of the DESCRIPTION file. Here's a note I received recently when I submitted a new package (RmdConcord):

----------------
The Description field is intended to be a (one paragraph) description of
what the package does and why it may be useful. Please add more details
about the package functionality and implemented methods in your
Description text.

Please always write package names, software names and API (application
programming interface) names in single quotes in title and description.
e.g: --> 'R Markdown'
Please note that package names are case sensitive.

Please do not start the description with "This package", "Functions
for", package name, title or similar.
---------------


Duncan Murdoch



Thats the source of my worries. Will the same error appear when CRAN checks the examples of my package? Or should I not be worried?


With regards,


Sergej

------------------------------------------------------------------------
*Von:* Duncan Murdoch <murdoch.dun...@gmail.com>
*Gesendet:* Freitag, 17. März 2023 11:14:25
*An:* Ruff, Sergej; Martin Morgan; Ivan Krylov
*Cc:* r-package-devel@r-project.org
*Betreff:* Re: [R-pkg-devel] How to declare Bioconductor Dependencies in the Description File of my R Package
On 17/03/2023 6:06 a.m., Ruff, Sergej wrote:
I was wondering how CRAN will handle Limma when running the automatic check.


I am worried that my package will be rejected if Limma won�t install from 
Bioconductor on a clean version of R. Leading to an Error and Note during the 
check.


I am using Limma only for an example in my functions description, not inside my 
actual function.


How would CRAN�s System handle that when checking my package for submission?

If you have it in the Suggests list you should have written your code to
work (i.e. not trigger an error) whether it is installed or not, so you
shouldn't worry about it.

Duncan Murdoch



with regards,


Sergej

________________________________
Von: Martin Morgan <mtmorgan.b...@gmail.com>
Gesendet: Donnerstag, 16. M�rz 2023 20:12:51
An: Ivan Krylov; Ruff, Sergej
Cc: r-package-devel@r-project.org
Betreff: Re: [R-pkg-devel] How to declare Bioconductor Dependencies in the 
Description File of my R Package

I would not follow the instructions in RTIGER�s README for installing 
Bioconductor packages.

BiocManager::install(�RTIGER�) would install both CRAN and Bioconductor 
dependencies of RTIGER, and would be my preferred instruction in a README or 
INSTALL file. A complete instruction might be to install your package as if it 
were on Bioconductor �

If (!requireNamepace(�BiocManager�, quietly = TRUE))
      install.packages(�BiocManager�)
BiocManager::install(�<your package>�)

It does not make sense to me to have instructions in .onAttach / .onLoad or in 
each function for the user to install a �Suggests:� package, when actually the 
package is required for use and belongs in Imports: or perhaps Depends:.

The instruction to use �version = �3.14�� of Bioconductor in the RTIGER document is not universally correct, since different Bioconductor versions are tied to specific R versions (see https://bioconductor.org/about/release-announcements/
<https://bioconductor.org/about/release-announcements/> ). On one version of R I am currently using, I get

BiocManager::install(version = "3.14")
Error: Bioconductor version '3.14' requires R version '4.1'; use
    `BiocManager::install(version = '3.17')` with R version 4.3; see
   https://bioconductor.org/install <https://bioconductor.org/install>

The instruction to install a vector of Bioconductor packages is also unnecessary for Bioconductor packages in the Imports: or Depends: field of <your package>, or if one were to pass the argument `dependencies = TRUE` to either BiocManager::install() or install.packages() (to get the Suggests: packages of <your package> to be installed, as
well as Depends:, Imports: and LinkingTo:).

Briefly, installation requires R to know the correct repositories. The command

BiocManager::repositories()

Returns a vector of Bioconductor and CRAN repositories relevant to your version 
of R. If one is averse to using BiocManager::install(�RTIGER�), a reasonable 
alternative, though still requiring that the BiocManager package is installed, 
is

install.packages(�RTIGER�, repos = BiocManager::repositories())

Base R also provides a mechanism for specifying Bioconductor repositories, via `setRepositories()` called before install.packages(). However, this is not recommended because, as can be seen on the web page mentioned above, there are two versions of Bioconductor for each version of R � one always gets the �old� Bioconductor
version, even when a newer version is available.

From: R-package-devel <r-package-devel-boun...@r-project.org> on behalf of Ivan 
Krylov <krylov.r...@gmail.com>
Date: Thursday, March 16, 2023 at 2:15 PM
To: Ruff, Sergej <sergej.r...@tiho-hannover.de>
Cc: r-package-devel@r-project.org <r-package-devel@r-project.org>
Subject: Re: [R-pkg-devel] How to declare Bioconductor Dependencies in the 
Description File of my R Package
On Thu, 16 Mar 2023 17:01:55 +0000
"Ruff, Sergej" <sergej.r...@tiho-hannover.de> wrote:

Last question: How does CRAN work with Bioconductor Dependencies?
Will CRAN accept limma as a dependency or will my submission be
rejected?

It's not explicitly spelled out in the CRAN policy
<https://cran.r-project.org/web/packages/policies.html
<https://cran.r-project.org/web/packages/policies.html>>, but
Bioconductor and CRAN are the "mainstream repositories" for the
purposes of the following rule:

Packages on which a CRAN package depends should be available from a
mainstream repository

(Even non-mainstream repositories are allowed for optional dependencies
if you follow a few additional rules.)

Here's an example of a CRAN package with a strong dependency on a
Bioconductor package: <https://CRAN.R-project.org/package=RTIGER
<https://CRAN.R-project.org/package=RTIGER>>. You
can see the extra instructions for installing the Bioconductor
dependencies in its README.

--
Best regards,
Ivan

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

        [[alternative HTML version deleted]]


______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
<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