On Fri, Mar 21, 2014 at 8:43 AM, Therneau, Terry M., Ph.D. <
therneau@mayo.edu> wrote:
[...]>
> Gabor Csardi discussed the problems with maintaining a package with lots
> of dependencies.
> I maintain the survival package which currently has 246 reverse
> dependencies and take a slightly different view, which could be described
> as "the price of fame". I feel a responsiblity to not break R.
I have
> automated scripts which download the latest copy of all 246, using the
> install-tests option, and run them all. Most updates have 1-3 issues.
> About 25% of the time it turns out to be a problem that I introduced, and
> in all the others I have found the other package authors to be responsive.
> It is a nuisance, yes, but also worth it. I've built the test scripts
> over several years, with help from several others; a place to share this
> information would be a useful addition.
>
Well, maybe you are just a better programmer and maintainer than me, and I
am alone with my problems. I hope that this is the case.
I actually do run automated tests against the reverse dependencies. It
downloads ~3GB of packages, the output is 500KB (much of it is the
compilation of my package, though), and it contains the word 'error' ~
80
and the word 'warning' ~ 270 times:
http://pave.igraph.org/job/igraph-r-check-deps/15/consoleFull
This process also keeps me honest about any updates that are not
backwards> compatable.
Not really, this would only be true if all the 246 package had proper tests
for all of their survival uses. Unlikely. It definitely helps, I am not
saying that it does not, but I also think that it is up to the maintainer
of the package to test it, including testing it against newer versions of
its dependencies. Simply because the maintainers know best how their
packages are supposed to work, and how it is supposed to be tested.
The other thing is that quite often I do want to break the API, and this
would be much easier with having a CRAN-devel, so that there is some time
for the problems to come up.
Gabor
There is hardly a single option that is not used by some other
package,> somewhere.
[...]
[[alternative HTML version deleted]]