Skip to content
Back to formatted view

Raw Message

Message-ID: <AC80C057-E97A-4401-A6F7-3D6FCC0814B6@dcn.davis.ca.us>
Date: 2019-09-25T14:00:59Z
From: Jeff Newmiller
Subject: [R-pkg-devel] What counts as an API change?
In-Reply-To: <CAARY7khF5Xk2+tdsKnY9HubvO3kkTUL_TQGi0M4W=pSKunCxVw@mail.gmail.com>

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 <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

-- 
Sent from my phone. Please excuse my brevity.