[R-pkg-devel] package API change

Dirk Eddelbuettel edd at debian.org
Wed Jan 18 14:55:53 CET 2017


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.

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

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



More information about the R-package-devel mailing list