Hi Gabor, I am the maintainer of rTRM, a Bioconductor package that depends on igraph. I would like to express my opinion on the issue of removing igraph from CRAN.
If I understand correctly from your email, the problem is that many packages depend on igraph, and so pushing changes to CRAN that disrupt the API may make a lot of packages to fail to build, potentially creating a lot of disruption. My opinion is that yes, usually changing the API or making other big changes will cause problems. A potential solution is to add a dependency on a particular igraph version (e.g. igraph <= 0.6). But this will not solve the problem if the user has other packages that were updated to use igraph 0.7, as it is not straightforward to have/maintain both versions of the package in a single installation (AFAIK). This problem will still exists if you remove igraph from CRAN, as different maintainers will adopt igraph 0.7 or future versions at different paces. It will only make slightly more painful to install packages that depend on future versions of igraph. A better solution is actually what you did when igraph 0.6 came out and changed the index system in R. You released igraph0, which was actually 0.5, to support legacy code. This required a small change in the dependencies that most people were probably willing to do at any time. Indeed, my Bioconductor package (rTRM) was originally created using igraph 0.5 and when igraph 0.6 was released I was swamped with many deadlines and could not take the time to go through all the code to check the new system- so I moved to igraph0 until the time was right for me to make the changes. Having igraph0 really helped me at that moment. Of course, this solution is not completely bulletproof, as some other packages I was using depended on igraph 0.6 and the different API were conflicting when both packages were loaded at the same time. Maybe having warnings at package loading (after checking if igraph/igraph0 is already loaded) may help detect these problems. The main problem with CRAN is that, unlike Bioconductor, there is no such a concept of "CRAN releases". In CRAN the latest version of a package is available irrespective of whether that breaks all the dependent packages. In Bioc, each release ensures that a particular version of a package works with a particular version of a dependency. Of course, this only applies to packages in the Bioconductor environment. As a side comment, it is nice that you take the time to check that the dependencies work or not after you update igraph. But as you mentioned, many packages may fail for reasons other that igraph. After all it is not your responsibility to maintain all those packages. In summary, I do not think moving igraph from CRAN will solve the problem. If the new code disrupts a considerable amount of packages then using the igraph0 approach may be a much useful way to make the transition smoothly for package maintainers. Just my 2 cents. Cheers, Diego On Tue, Jan 28, 2014 at 11:21 PM, Gábor Csárdi <[email protected]> wrote: > Hi! > > Soon. It is basically ready, but to submit to CRAN, I need to test all > dependent packages with it, which is a lot of work. It is 149 packages > between CRAN and BioConductor. Of course many of these are failing the tests > for reasons beyond igraph, so it takes time.... > > I am actually looking into the possibilities of "removing" igraph from CRAN, > but I don't really see a good way of allowing CRAN packages to depend on it, > if it is not on CRAN. > > For current dependent packages, there will be no problem, because I would > keep the current version there, I just wouldn't update it any more. But this > is still the more distant future, I am just bringing it up here to see if > anyone here has an opinion about this. > > Best, > Gabor > > > On Mon, Jan 27, 2014 at 9:07 PM, Andrei Boutyline > <[email protected]> wrote: >> >> Hello igraph gurus, >> >> I am curious if there are any plans for pushing igraph 0.7 to CRAN as the >> official release of igraph? I am asking because I am working on an R >> package that depends on 0.7, and so I am wondering when end users will be >> able to install igraph 0.7 easily from CRAN. >> >> (And by the way, thank you for all the great work on igraph!) >> >> Best, >> Andrei >> >> -- >> Andrei Boutyline >> University of California, Berkeley >> PhD Candidate, Sociology >> www.ocf.berkeley.edu/~andrei >> >> _______________________________________________ >> igraph-help mailing list >> [email protected] >> https://lists.nongnu.org/mailman/listinfo/igraph-help >> > > > _______________________________________________ > igraph-help mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/igraph-help > _______________________________________________ igraph-help mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/igraph-help
