Both of your examples are incompatible. foo <- function (a, b, c, d, e = NA )
(add with default value) would be compatible. Your second example cannot be made compatible even with default values because the positional behaviour has changed. On September 25, 2019 6:51:58 AM PDT, David Hugh-Jones <davidhughjo...@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@r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-package-devel -- Sent from my phone. Please excuse my brevity. ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel