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

时间:2012-02-16 14:10:05

标签: r bug-tracking administration cran

是否有标准的R社区资源,可以及时更新已知错误或错误修复程序包?我目前的方法是手动的。 (注意:我将此限制为CRAN - 请参阅注释1。)

我的用例基本上是错误监控和包更新管理。我每个月都会发现一些bug发现(我会及时向作者报告;-))。由于我的很多工作都是通过虚拟机完成的,所以当我能够很好地处理必要软件包的bug状态时,我倾向于更新VM映像。当修复了一堆错误时,我可以删除我的解决方法,这很好,我更新了图像。当我发现爆发的bug时,我不会创建新的图像。

以下是我目前使用的来源:

  • NEWS文件:许多(但不是全部)软件包都有NEWS文件。这些肯定是一个有用的起点。
  • 包主页:某些包在CRAN上没有NEWS文件,但在作者的网站上单独发布更改日志。
  • R项目托管的邮件列表
  • Google Groups for packages
  • 与包裹作者的个人交流
  • 对软件包进行错误跟踪(例如开发人员可能使用Bugzilla)

成为第一个发现错误的人是一回事(我承认错误发生在我们所有人身上),这是另一个姗姗来迟地发现一个已知或已经修复过的错误。两者都减慢了我自己的编码速度,但更好的错误监控(可能我们需要一个cdc4R包:))会显着减少影响。如果没有标准的更新警报系统(例如update.packages()的扩展程序,报告可以更新哪些软件包以及指向更改内容的信息的链接),用户的工作就是找到这些信息。

作为这样的用户,试图找到这些信息,是否有一些标准资源我在上面的列表中忽略了?例如,是否有一个R邮件列表,开发人员通常会发布他们的更改和错误修复?或者是否有一个网站汇总了这些帖子,帖子测试(CRAN帖子R CMD CHECK输出,似乎),或者提供了一些其他反馈?


关于其他资源的一些补充说明,为了其他人的利益:

  • 我看到CRANberries在软件包上有一个简洁的diff摘要,这对我来说是新的。 (我鼓励在diff输出中考虑bugfix的grep。)
  • R中的
  • bug.report()是向R Core或软件包维护者的电子邮件地址发送邮件的好方法。
  • 值得考虑的几个测试包包括:testthatRUnitsvUnit
  • 我个人的“快速测试”是简单地使用digest来验证结果是否匹配,而不必测试非常大的对象的相等性。

注1:我正在标记此,因为无法管理所有 R包的范围。对于单个软件包作者,可以随时随地分发软件包,使用他们喜欢的任何邮件列表或错误跟踪系统等。但是,这不是R的“主流”。我是否要发布软件包并提醒用户更改,错误,错误修正,我会使用CRAN + NEWS + Bugzilla + Google Groups + R-Forge(和/或RForge)等,但此清单中是否还有其他标准报告机制?

在某种意义上,本说明还可以询问是否存在鼓励开发人员使用的机制。我怀疑没有标准,因为R Core成员的软件包似乎在bug和变更报告方面做了很多不同的事情。

注2:我还添加(虽然其他东西可能更适合),因为这也与管理R有关。为了重现性,管理包非常重要;当有多个用户或更多移动件时,保持意识到错误和修复成为一项管理任务,以及依赖于外部包的开发的重要考虑因素。如果是其他标签,例如更合适,我愿意改变。

1 个答案:

答案 0 :(得分:3)

不是一个完整的答案,但这里有一些想法。

如果是data.table,我们会跟踪错误(和功能请求)on R-Forge here。我想你可以查询R-Forge的跟踪器(以编程方式)查看托管在那里的所有软件包。无论如何要添加到您的列表中。该网络跟踪器是bug.report(package="data.table")指向的地方(不仅仅是维护者的电子邮件地址)。

此外,任何人都可以订阅任何<pkgname>-commits@lists.r-forge.r-project.org邮件列表,以便为R-Forge上的每个项目接收统一的差异和提交消息(在提交时)。但是,我不知道任何R-Forge项目提交的一般邮件列表。

?data.table的顶部有一个指向up to the minute NEWS的链接。这就是我们如何在升级时向用户传达最新版本(以及开发中)的内容。该链接实时更新;即,“最多分钟”是字面上的意思。但是,他们必须检查那里!