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
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel