[R-pkg-devel] Notifying users of major changes
Duncan Murdoch
murdoch@dunc@n @end|ng |rom gm@||@com
Mon Feb 28 20:32:16 CET 2022
On 28/02/2022 9:51 a.m., William Becker wrote:
> Dear All,
>
> I'm new to this list so my apologies if a similar question has been asked recently.
>
> I'm the maintainer of a package released last year (COINr). I am working on some major upgrades to the package which will unfortunately change a lot of the syntax. I know this will disrupt the users but the upgrades are substantial improvements and the underlying code is a lot more stable and robust. Moreover the package is high level so there are no reverse dependencies, and I thought I might as well get this done as early as possible so as to minimise the number of people affected. Obviously this is a one-off and in future the package will be backwards compatible.
>
> Anyway to the question: I would like to warn users up front about the upcoming disruptive changes. What's the best way to do this? I can put a notice on the package's GitHub page. Or would it make sense to release a minor update with a package startup message warning about the impending upgrade? Or is there another way?
>
I don't think there's a good way to connect with your users, other than
printing a notice in the startup code and trying to recognize that they
are using syntax that doesn't work in the new version. I wouldn't
bother with the minor update that just warns about upcoming changes,
because at the point the user sees those, they won't be able to do
anything about them.
I would put warnings or errors about using obsolete syntax into the new
version if you can recognize it. Include a vignette that shows old and
new ways to do some of the common operations, and tell users which is
the last version that supports the old syntax in case they are desperate
and need to switch back.
If your changes mean that the old syntax works but does something
different now, well, I'd advise against that. You could really mess up
users who are using your package to automatically produce reports.
In the extreme, you could create a new package (e.g. COINr2), and have
one last update of COINr that tells users they should switch because you
are going to stop maintaining it. But it is better all around if you
make all your changes in the existing package.
Duncan Murdoch
More information about the R-package-devel
mailing list