[R-pkg-devel] Semantic versioning and maintenance releases

Dirk Eddelbuettel edd at debian.org
Wed Oct 25 22:01:52 CEST 2017


On 25 October 2017 at 11:23, Shivaram Venkataraman wrote:
| Hello
| 
| We have an R package that uses semantic versioning -- i.e. version numbers
| are of the form major_version.minor_version.patch_version
| 
| One of the ways we use the patch_versions is to make maintenance releases
| or security fixes that users can apply without worrying about any
| functionality changes. For example if our users were on 1.6.2 it is often
| easier for them to upgrade to 1.6.3 which has a security fix rather than
| 1.7.0
| 
| On the other hand our development continues towards the next minor version
| and we sometimes have cases where say 1.6.3 is released after 1.7.0.
| 
| While running `R CMD check --as-cran` for version 1.6.3 we find that this
| leads to a warning which looks like 'Insufficient package version (submitted:
| 1.6.3, existing: 1.7.0)'.
| 
| Our question is whether it is okay to upload these maintenance releases to
| CRAN and if there is some way we can mark that the version numbers follow
| semantic versioning.

CRAN allows you one version, with strictly monotonic ordering.  So once 1.7.0
is there, all you can do is have 1.7.1, or 1.7.0.1, or ...

"Branch release" as as you suggested do not fit.  So you could have kept CRAN
at 1.6.2 with an update to 1.6.3 and then offer 1.7.0 "for now" via a
different repository.

That is "sort of" what I do with test releases for Rcpp and RcppArmadillo,
albeit irregularly.

The drat package on CRAN makes creation of auxiliary repos pretty easy.

Hth, Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



More information about the R-package-devel mailing list