[Bioc-devel] BiocCheck and version requirement

Henrik Bengtsson henr|k@bengt@@on @end|ng |rom gm@||@com
Thu Apr 8 21:05:37 CEST 2021


On Thu, Apr 8, 2021 at 11:22 AM Kasper Daniel Hansen
<kasperdanielhansen using 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 using 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 using 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 using gmail.com>
>> > Sent: Thursday, April 8, 2021 1:33 PM
>> > To: Kern, Lori <Lori.Shepherd using RoswellPark.org>
>> > Cc: bioc-devel <bioc-devel using 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 using roswellpark.org<mailto:Lori.Shepherd using 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 using r-project.org<mailto:bioc-devel-bounces using r-project.org>> on behalf of Kasper Daniel Hansen <kasperdanielhansen using gmail.com<mailto:kasperdanielhansen using gmail.com>>
>> > Sent: Thursday, April 8, 2021 9:44 AM
>> > To: bioc-devel <bioc-devel using r-project.org<mailto:bioc-devel using 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 using r-project.org<mailto:Bioc-devel using 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 using r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
>
>
> --
> Best,
> Kasper



More information about the Bioc-devel mailing list