[R-pkg-devel] What counts as an API change?
On 26/09/2019 4:22 a.m., neonira Arinoem wrote:
Very interesting thread. Indeed just got one question in relationship with SEMVER and API. For a given package, does CRAN adapt the control and acceptance processes according to SEMVER, when submitting a new package version ? Any reference material about CRAN control and acceptance processes are welcome. Haven't found any yet online.
CRAN requires that your new version is greater than the existing one; it also flags high version numbers, e.g. those that follow Hadley's recommendation of using 9000 to signal "in-development". I imagine it would also flag non-standard version numbers, i.e. ones that the package_version(strict = TRUE) function doesn't accept. Other than that, it more or less ignores the version number. I'm not sure what you mean by "control and acceptance processes". Do you mean internal processes, or the rules submitters need to follow? The latter are documented in the CRAN policies document. Duncan Murdoch
Neonira Le jeu. 26 sept. 2019 ? 01:24, Hugh Parsonage <hugh.parsonage at gmail.com> a ?crit :
The approach I take is a major version increment is required if it requires an existing unit test to be changed or if it requires a reverse dependency to change a unit test. (With the exception of tests marked explicitly as unstable.) In my view the test suite is a good way to advertise exactly what developers can rely on in minor version upgrades. On Wed, 25 Sep 2019 at 11:52 pm, David Hugh-Jones < davidhughjones at gmail.com> wrote:
Hi all, Philosophical question. My package follows semantic versioning ( https://semver.org). Incompatible API changes should trigger a major version upgrade. OK, but what counts as an incompatible change to an R API? Suppose my current function signature is foo <- function (a, b, c, d) and the new one is foo <- function (a, b, c, d, e) is that compatible? What if I add an argument, but not at the end: foo <- function (a, b, c, e, d) That would be incompatible if people have been calling the arguments by order rather than by name. But sometimes that is unlikely: I doubt if
many
people write lm(y ~ x, mydata, z==3, f, na.omit, "qr", FALSE, FALSE, TRUE, TRUE,
FALSE)
Should I be strict or relaxed about this?
Cheers,
David
[[alternative HTML version deleted]]
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
[[alternative HTML version deleted]]
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
[[alternative HTML version deleted]]
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel