简体   繁体   English

如何及时了解R包中的已知错误和错误修复?

[英]How to keep abreast of known bugs and bug fixes in R packages?

Is there a standard R community resource for keeping up to date on known bugs or bug fixes for packages? 是否有标准的R社区资源来跟踪已知的错误或包的错误修复? My current approach is rather manual. 我目前的方法是手动的。 (NB: I'm restricting this to CRAN - see Note 1.) (注意:我将此限制为CRAN - 请参阅注释1)

My use case is basically bug surveillance and the management of package updates. 我的用例基本上是bug监控和包更新管理。 I've been averaging a couple of bug discoveries each month for awhile (which I duly report to the authors ;-)). 我每个月都会发现一些bug发现(我会及时向作者报告;-))。 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. 由于我的很多工作都是通过虚拟机完成的,所以当我能够很好地处理必要软件包的bug状态时,我倾向于更新VM映像。 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. 当我发现爆发的bug时,我不会创建新的图像。

Here are the sources I'm currently using: 以下是我目前使用的来源:

  • NEWS files: Many, but not all, packages have NEWS files. 新闻文件:许多(但不是全部)包都有NEWS文件。 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. 包主页:某些包在CRAN上没有NEWS文件,但是在作者的站点上单独发布更改日志。
  • R project-hosted mailing lists R项目托管的邮件列表
  • Google Groups for packages Google网上论坛的套餐
  • Personal communication with package authors 与包裹作者的个人交流
  • Bug tracking for packages (eg a developer may use Bugzilla) 包的错误跟踪(例如开发人员可能使用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. 两者都减慢了我自己的编码速度,但更好的错误监控(也许我们需要cdc4R包:))会显着减少影响。 Without a standard update alerting system (eg 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. 如果没有标准的更新警报系统(例如, update.packages()的扩展,报告可以更新的软件包以及有关更改内容的信息的链接),用户的工作就是查找此信息。

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? 例如,是否有一个R邮件列表,开发人员通常会发布他们的更改和错误修复? 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? 或者是否有一个网站聚合这样的帖子,帖子测试(CRAN帖子R CMD CHECK输出,似乎),或者提供一些其他反馈?


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. 我看到CRANberries在包装上有一个简洁的diff摘要,这对我来说是新的。 (I am inspired to consider a grep for bug or fix in the diff output.) (我的灵感是考虑到一个grep for bugfix diff输出。)
  • bug.report() in R is a good way to send a message to R Core or the email address of a package maintainer. R中的bug.report()是向R Core或包维护者的电子邮件地址发送消息的好方法。
  • Several testing packages worth consideration are: testthat , RUnit , and svUnit . 值得考虑的几个测试包是: testthatRUnitsvUnit
  • My personal "quick test" is to simply use digest to verify that results match, without having to test equality of very large objects. 我个人的“快速测试”是简单地使用digest来验证结果是否匹配,而不必测试非常大的对象的相等性。

Note 1: I'm tagging this because it's impossible to manage the universe of all R packages. 注1:我正在标记这个因为无法管理所有 R包的范围。 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? 对于单个软件包作者,可以随时随地分发软件包,使用他们喜欢的任何邮件列表或错误跟踪系统等。但是,这不是R的“主流”。我是否要发布软件包并提醒用户对于更改,错误,错误修正,我会选择CRAN + NEWS + Bugzilla + Google Groups + R-Forge(和/或RForge)等,但此列表中是否还有其他标准报告机制?

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. 我怀疑没有标准,因为R Core成员的软件包似乎在bug和变更报告方面做了很多不同的事情。

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; 注2:我也在增加 (虽然其他东西可能更适合),因为这也与管理R有关。为了再现性,管理包非常重要; 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, eg is more appropriate, I'm open to a change. 如果另一个标签,例如更合适,我愿意接受改变。

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 . data.table的情况下,我们在这里跟踪R-Forge上的错误(和功能请求)。 I imagine you could query R-Forge's tracker (programatically) for all packages hosted there. 我想你可以查询R-Forge的跟踪器(以编程方式)查看托管在那里的所有软件包。 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). 该web跟踪器是bug.report(package="data.table")指向的地方(不仅仅是维护者的电子邮件地址)。

Also, anyone can subscribe to any <pkgname>-commits@lists.r-forge.r-project.org mailing list to receive a unified diff and commit message (at the time of commit) for each project on R-Forge. 此外,任何人都可以订阅任何<pkgname>-commits@lists.r-forge.r-project.org邮件列表,以便为R-Forge上的每个项目接收统一的差异和提交消息(在提交时)。 I'm not aware of a general mailing list spanning any commit to any R-Forge project, though. 但是,我不知道任何R-Forge项目的任何提交的通用邮件列表。

At the top of ?data.table there is a link to up to the minute NEWS . ?data.table的顶部有一个指向最新消息的链接。 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; 该链接实时更新; ie, "up to the minute" is meant literally. 也就是说,“达到分钟”是字面上的意思。 But, they do have to check there! 但是,他们必须检查那里!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM