[R-pkg-devel] package API change

Paul Gilbert pgilbert902 at gmail.com
Wed Jan 18 22:54:17 CET 2017



On 01/18/2017 08:55 AM, Dirk Eddelbuettel wrote:
>
> On 18 January 2017 at 13:49, Thierry Onkelinx wrote:
> | Another solution is to start a new package. This is what Hadley did with
> | the ggplot package (https://cran.r-project.org/src/contrib/Archive/ggplot/).
> | The new version (ggplot2) would break existing code. Users were informed
> | that the old package is not longer maintained. So the user has the choice
> | between using the old version which still works but no longer maintained or
> | the switched to the new version which is maintained but will break existing
> | code.
>
> AFAIK that practice of package inflation is outlawed by CRAN Policy now:
>
>      * Changes to CRAN packages causing significant disruption to other
>        packages must be agreed with the CRAN maintainers well in advance of
>        any publicity. Introduction of packages providing back-compatibility
>        versions of already available packages is not allowed.
>
Perhaps CRAN maintainers could provide some clarification on this policy 
statement. I do not read it with the same interpretation as Dirk. My 
interpretation is that a package which is back-compatibility can be left 
in place and a new package with a new name can be introduced for going 
forward. What is not allowed is using the old package name going 
forward, or rather, the complementary part of introducing a new package 
name for the back-compatibility version. Dirk's reply suggests his 
interpretation is that any back-compatibility version is not allowed.

Paul

> R itself has mechanisms for this: .Deprecated was already mentioned.
>
> Many other packages "warn now", phase in new code and then offer a toggle
> (maybe via options()) to get the old behaviour.
>
> As package authors, we have a "contract" with our users. Sure, we can break
> it willy-nilly (and the informal reputation mechanism may make us pay for
> this) or we can try to hold the contract and accomodate.
>
> It's programming.  There is always another layer we can insert.
>
> Dirk
>



More information about the R-package-devel mailing list