[Rd] R CMD build then check fails on R-devel due to serialization version

Duncan Murdoch murdoch.duncan at gmail.com
Wed Jan 10 21:52:57 CET 2018

On 10/01/2018 1:26 PM, Neal Richardson wrote:
> Hi,
> Since yesterday I'm seeing `R CMD check --as-cran` failures on the
> R-devel daily build (specifically, R Under development (unstable)
> (2018-01-09 r74100)) for multiple packages:
> * checking serialized R objects in the sources ... WARNING
> Found file(s) with version 3 serialization:
> ‘build/vignette.rds’
> Such files are only readable in R >= 3.5.0.
> Recreate them with R < 3.5.0 or save(version = 2) or saveRDS(version =
> 2) as appropriate
> As far as I can tell, revision 74099
> (https://github.com/wch/r-source/commit/d9530001046a582ff6a43ca834d6c3586abd0a97),
> which changes the default serialization format to 3, clashes with
> revision 73973 (https://github.com/wch/r-source/commit/885764eb74f2211a547b13727f2ecc5470c3dd00),
> which checks that serialized R objects are _not_ version 3. It seems
> that with the current development version of R, if you `R CMD build`
> and then run `R CMD check --as-cran` on the built package, it will
> fail.

I think the message basically says:  don't do that.  You should build 
with R-release for now.  You always need to check with R-devel, so life 
is complicated.

If you build with R-devel without forcing the old format, nobody using 
R-release will be able to use your tarball.

Eventually I guess the new format will be accepted by CRAN, but it will 
likely be a while:  nobody expects everyone to instantly upgrade to a 
new R release, let alone to an unreleased development version.

Presumably that particular file (build/vignette.rds) could be 
automatically built in the old format for now, but the new format needs 
testing, so it makes sense to me to leave it as a default, even if it 
makes it more complicated to submit a package to CRAN.

Duncan Murdoch

More information about the R-devel mailing list