[Bioc-devel] BiocCheck and version requirement
On Thu, Apr 8, 2021 at 11:22 AM Kasper Daniel Hansen
<kasperdanielhansen at gmail.com> wrote:
R CMD check sometimes wants dependency on specific R versions, for example when the file format changed (forgot which version .. was it 3.6). But that warning is emitted when it tests the package utilizes version-specific stuff.
Yes, serialization format v3 was introduced in R 3.5.0. If there are R binary files with that version, then 'R CMD build' will check and warning about this, and automatically inject an explicit Depends: R (>= 3.5.0) in the built tarball. Example: $ R CMD build teeny ... * checking for empty or unneeded directories NB: this package now depends on R (>= 3.5.0) WARNING: Added dependency on R >= 3.5.0 because serialized objects in serialize/load version 3 cannot be read in older versions of R. File(s) containing such objects: ?teeny/inst/pi.rds? * building ?teeny_0.1.0.tar.gz? But that's not a *check* error. If you'd submit to CRAN, they would not notice because it's fixed in the source tarball. On Bioconductor, you'd see it in the build logs, because that builds from the package source folder. I don't know if there are additional checks for this in 'R CMD check' - could be - but I guess you would have to do some tricks to circumvent 'R CMD build' in order to get a source tarball without the dependency. Note that if the R binary files are in serialization version 2, then there is no such warning. In other words, a package developer can very well keep their package backward compatible with R (< 3.5.0) by not updating/resaving/regenerating binary files in version 3. To stay with version 2, one can use, e.g. saveRDS(x, file, version=2). /Henrik
I get that Bioc doesn't check under older versions. That is intentional. But that is different from the check asking for a specific version for no particular reason (as far as I can ascertain). Best, Kasper On Thu, Apr 8, 2021 at 8:13 PM Henrik Bengtsson <henrik.bengtsson at gmail.com> wrote:
I believe in the past we tried suggesting removing a R dependency altogether but that R CMD check complained not having an R dependency? Maybe someone remembers more about this.
There are no such requirements in 'R CMD check'. The only requirement around 'Depends: R (>= x.y.z)', if specified, is with 'R CMD check --as-cran' that requires z == 0. In other words, you can submit a package to CRAN that depends on a specific patch version, e.g. either R (>= 4.0.0) or R (>= 4.1.0) but not say R (>= 4.0.2) resulting in: * checking DESCRIPTION meta-information ... WARNING Dependence on R version ?4.0.2? not with patchlevel 0 In the bigger picture: I argue that Bioconductor's dependency on R version is a major, unnecessary(*) disadvantage and adds barriers between the Bioconductor community and the rest of the R community resulting in many lost opportunities and cross-pollination. (*) I know the arguments, but I think there are better solutions already available that do not enforce specific R versions on users and thereby limit them, e.g. when they want to a single Bioconductor package with zero dependencies in their workflow. As a way forward, I'd suggest that Bioconductor makes it a long-term target to make it possible for any R user to install Bioc packages with a regular install.packages() call - I think that can be achieved. /Henrik On Thu, Apr 8, 2021 at 10:39 AM Kern, Lori <Lori.Shepherd at roswellpark.org> wrote:
From a Bioconductor R perspective, we can't tell if the package would work with a lesser version of R or lower versions of any package dependencies. We accept packages and have requirements to ensure packages can run. You can always have another github branch.... I believe in the past we tried suggesting removing a R dependency altogether but that R CMD check complained not having an R dependency? Maybe someone remembers more about this. Lori Shepherd Bioconductor Core Team Roswell Park Comprehensive Cancer Center Department of Biostatistics & Bioinformatics Elm & Carlton Streets Buffalo, New York 14263
________________________________
From: Kasper Daniel Hansen <kasperdanielhansen at gmail.com>
Sent: Thursday, April 8, 2021 1:33 PM
To: Kern, Lori <Lori.Shepherd at RoswellPark.org>
Cc: bioc-devel <bioc-devel at r-project.org>
Subject: Re: [Bioc-devel] BiocCheck and version requirement
But why is it even a warning? The submission policy is that warnings are discouraged. This means that developers will adapt to this warning.
The check is also against the policies on the website which state you don't need a formal dependency.
Best,
Kasper
On Thu, Apr 8, 2021 at 3:53 PM Kern, Lori <Lori.Shepherd at roswellpark.org<mailto:Lori.Shepherd at roswellpark.org>> wrote:
This requirement has been around for awhile. New package submissions are checked against the devel version of Bioconductor. At the moment this is R devel (R 4.1) and Bioconductor packages in devel for 3.13. Given that Bioconductor releases are closely tied to a R release, and changes in R can (and have) had great consequences for package functionality, we can not guarantee a package will work on any previous version of R or with previous versions of packages.
It is why it is a warning and not an error
Lori Shepherd
Bioconductor Core Team
Roswell Park Comprehensive Cancer Center
Department of Biostatistics & Bioinformatics
Elm & Carlton Streets
Buffalo, New York 14263
________________________________
From: Bioc-devel <bioc-devel-bounces at r-project.org<mailto:bioc-devel-bounces at r-project.org>> on behalf of Kasper Daniel Hansen <kasperdanielhansen at gmail.com<mailto:kasperdanielhansen at gmail.com>>
Sent: Thursday, April 8, 2021 9:44 AM
To: bioc-devel <bioc-devel at r-project.org<mailto:bioc-devel at r-project.org>>
Subject: [Bioc-devel] BiocCheck and version requirement
The latest BiocCheck (well, it may have been around for a bit) _requires_
the package to have a R >= 4.1 dependency.
That seems new to me. Right now it's a bit irritating, because if you're
submitting a package that works with latest stable release, you are now
prohibited from installing it from Github into your stable Bioc version.
Traditionally, we have not enforced this I think, even though we all know
of the implicit dependency.
--
Best,
Kasper
[[alternative HTML version deleted]]
_______________________________________________
Bioc-devel at r-project.org<mailto:Bioc-devel at r-project.org> mailing list
https://secure-web.cisco.com/1Zqtuoo0O2aKBea_yHofM_QCv72B3JNIupD47xAVitntUD9FgXVvT4yX66u57RWFhMonvou61R_vk6u1LgIM5J8qpHXw4gXWyAxGlZFJEH--5tT-UESMe6_L4bbB6jIcOfYl0J5FI0gucNH0boaxPdv4-It-V5j3TPd2bd5Er3K7MHNVFhqgA5bs84nYYGnvBuOVns86_d2q_mkKzVTHay7GQUxlJhDGVxQbxlwyKvaVPNraVZJKI3lQzwTpavNpm7CpFuIOaDv9a9-euSOlKn3NYMdkPxNfAHv3u2sI1vZ_1ww4KU4c5TgGsp-ard5Ix/https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fbioc-devel
This email message may contain legally privileged and/or confidential information. If you are not the intended recipient(s), or the employee or agent responsible for the delivery of this message to the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or use of this email message is prohibited. If you have received this message in error, please notify the sender immediately by e-mail and delete this email message from your computer. Thank you.
--
Best,
Kasper
This email message may contain legally privileged and/or confidential information. If you are not the intended recipient(s), or the employee or agent responsible for the delivery of this message to the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or use of this email message is prohibited. If you have received this message in error, please notify the sender immediately by e-mail and delete this email message from your computer. Thank you.
[[alternative HTML version deleted]]
_______________________________________________
Bioc-devel at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
-- Best, Kasper