How to keep abreast of known bugs and bug fixes in R packages?
Asked Answered
O

1

15

Is there a standard R community resource for keeping up to date on known bugs or bug fixes for packages? My current approach is rather manual. (NB: I'm restricting this to CRAN - see Note 1.)

My use case is basically bug surveillance and the management of package updates. I've been averaging a couple of bug discoveries each month for awhile (which I duly report to the authors ;-)). Since a lot of my work is done with virtual machines, I tend to update the VM images when I have a good handle on the bug status for necessary packages. When a bunch of bugs are fixed, I can remove my workarounds, which is great, and I update the images. When I discover an outbreak of bugs, I don't create a new image.

Here are the sources I'm currently using:

  • NEWS files: Many, but not all, packages have NEWS files. These are certainly a helpful place to start.
  • Package home page: Some packages do not have a NEWS file on CRAN, but separately post a change log on the author's site.
  • R project-hosted mailing lists
  • Google Groups for packages
  • Personal communication with package authors
  • Bug tracking for packages (e.g. a developer may use Bugzilla)

It's one thing to be the first to discover a bug (I grant that bugs happen to all of us), it's another to belatedly discover a bug that is either already known or, better yet, already fixed. Both slow down my own coding, but better bug surveillance (maybe we need a cdc4R package :)) would significantly reduce the impact. Without a standard update alerting system (e.g. an extension to update.packages() that reports on which packages could be updated and links to info on what's changed), it's the user's job to seek out this information.

As such a user, trying to seek out this information, is there some standard resource I've overlooked in the list above? For instance, is there an R mailing list where it's common for developers to post their changes and bug fixes? Or is there a site that aggregates such posts, posts tests (CRAN posts R CMD CHECK output, it seems), or that gives some other feedback?


A few additional notes on other resources, for others' benefit:

  • I see that CRANberries has a terse diff summary on packages, which is new to me. (I am inspired to consider a grep for bug or fix in the diff output.)
  • bug.report() in R is a good way to send a message to R Core or the email address of a package maintainer.
  • Several testing packages worth consideration are: testthat, RUnit, and svUnit.
  • My personal "quick test" is to simply use digest to verify that results match, without having to test equality of very large objects.

Note 1: I'm tagging this because it's impossible to manage the universe of all R packages. For an individual package author, one can distribute a package wherever they'd like, use whatever mailing list or bug tracking system they like, etc. However, that's outside the "mainstream" for R. Were I to release a package and alert users to changes, bugs, bugfixes, I'd go with CRAN + NEWS + Bugzilla + Google Groups + R-Forge (and/or RForge), etc., but is there another standard reporting mechanism that is missing from this list?

In some sense, this note also serves to ask if there's a mechanism that developers are encouraged to use. I suspect there is no standard, as packages by R Core members seem to do many different things regarding bug and change reporting.

Note 2: I'm also adding (though something else may be more apropos), since this also relates to administering R. For reproducibility, administration of packages is quite important; when there are multiple users or more moving pieces, keeping aware of bugs and fixes becomes an administrative task, as well as an important consideration for development that depends on the external packages. If another tag, e.g. is more appropriate, I'm open to a change.

Onomastics answered 16/2, 2012 at 14:10 Comment(5)
this should be somehow a feature of CRAN, shouldn't be? CRAN must know about updates so I feel it should have some RSS channel for them! Place the feature request to CRAN! Or is the problem to distinguish whether the update contains bug fixes or not?Dollar
@Dollar I'm interested in bugs; it's easy to check that packages have been updated. Bugs are a different matter and require attention: I may update to a newer version, revert to an earlier version, or work around them, if they impact my work. Other changes to code, such as performance or interface changes demand less immediate attention in an already working system.Onomastics
I don't think you've missed anything major. I use github for all my packages, so NEWS + github issues are the best places to look.Celinecelinka
I'm a bit too sleepy for looking for references, but you mention svUnit and I thought you might like knowing that svUnit nicely integrates in Jenkins. it can report results from scripts that are written as unit tests but it can also include in the report the traditional R examples.Protege
worth mentioning updateme package which tells you if a new package version is available: https://mcmap.net/q/826457/-in-r-how-can-i-know-if-my-packages-are-up-to-dateMaryleemarylin
C
3

Not a complete answer but here are some thoughts.

In the case of data.table we track bugs (and feature requests) on R-Forge here. I imagine you could query R-Forge's tracker (programatically) for all packages hosted there. To add to your list anyway. That web tracker is where bug.report(package="data.table") points to (not just an email address to maintainer).

Also, anyone can subscribe to any <pkgname>[email protected] mailing list to receive a unified diff and commit message (at the time of commit) for each project on R-Forge. I'm not aware of a general mailing list spanning any commit to any R-Forge project, though.

At the top of ?data.table there is a link to up to the minute NEWS. This is how we communicate to users what is in the latest version (and in development) if they upgrade. That link updates in real-time; i.e., "up to the minute" is meant literally. But, they do have to check there!

Calipee answered 16/2, 2012 at 14:51 Comment(3)
Commits emails have to be enabled by the project though, no? I don't think it is on for every single R-Forge project. But maybe that changed...Aileenailene
@Dirk I thought -commits is created by default but the project admin could turn it off (may well be wrong). I don't think anyone is auto subscribed to it, though, even the admin. So perhaps for the projects where nobody has subscribed to -commits it doesn't send out any message, and so the archive doesn't build up until the first commit after the first subscription. Just guessing.Calipee
Thanks for the suggestions! Your development of data.table and administration of reporting & changes is excellent and much appreciated. It's one of the packages that I depend upon, along with the reporting and tracking facilities you use. I realized I didn't have the same resources across other packages and wondered how I could address that on my end.Onomastics

© 2022 - 2024 — McMap. All rights reserved.