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

Reply via email to