It is good to see so much interest in version numbers! R doesn't require Calendar versioning (https://calver.org/), Semantic Versioning or Debian versions. The package_version describe the version numbers as:
> Numeric versions are sequences of one or more non-negative integers, usually > (e.g., in package ‘DESCRIPTION’ files) represented as character strings with > the elements of the sequence concatenated and separated by single ‘.’ or > ‘-’ characters. R package versions consist of at least two such integers The R-extension manual describes them in the section "The DESCRIPTION file": > This is a sequence of at least two (and usually three) non-negative integers > separated by single ‘.’ or ‘-’ characters. The canonical form is as shown in > the example, and a version such as ‘0.01’ or ‘0.01.0’ will be handled as if > it were ‘0.1-0’. Note that here there are some versions with a leading 0 (which package_version accepts!). I think fully supporting any of these versions schemes would involve changing how R itself resolves dependencies for packages (mainly to cover the [:alpha:] characters). This is a much larger patch/project than what I asked for and in any way R still would need to manipulate (and compre) them easily. In terms of implementation if the attribute approach is added it could be used by format.numeric_version. But I'm not sure if any package relies on this to remove any "-" and leading 0 present... >From a quick check on the first 40 packages from 100 that use the function none would be impacted as it is primarily used to enable or disable features according to the versions of dependencies installed. Missatge de Charles Plessy <[email protected]> del dia dg., 18 de gen. 2026 a les 2:40: > > Le Sat, Jan 17, 2026 at 11:02:12AM -0800, Josiah Parry a écrit : > >It would be really nice if the full semantic versioning spec was supported > >in R. I can understand why only major.minor.patch would be supported for > >CRAN. But for an R package in a development stage, it would be wonderful to > >support pre-release and build metadata. > > > >Use of `-` in semver to determine pre-release: > >https://semver.org/#spec-item-9 > > In Debian we have long handled this use‑case by using a tilde (~) in > version strings—well before semver was formalized. If you like the > semantics of pre‑release identifiers but want to avoid changing the > meaning of - in existing R versioning, adopting ~ might be a practical > alternative. > > Relevant documentation: > https://www.debian.org/doc/debian-policy/ch-controlfields.html#version > > Have a nice week-end, > > Charles Plessy > > ______________________________________________ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
