2012-02-16 7 views
15

既知のバグやパッケージのバグ修正について最新の情報を得るための標準的なRコミュニティリソースはありますか?私の現在のアプローチはむしろマニュアルです。 (注:私はこれをCRANに制限しています - 注1を参照してください)Rパッケージの既知のバグやバグ修正をどのように維持するか?

私のユースケースは、基本的にはバグの監視とパッケージの更新の管理です。私はしばらくの間毎月2つのバグの発見を平均してきました(私は正式に著者に報告します;-))。私の仕事の多くは仮想マシンで行われているので、必要なパッケージのバグの状態をよく把握すると、VMイメージを更新する傾向があります。バグのバグが修正されたら、私は自分の回避策を削除することができます。これは素晴らしいことです。イメージを更新します。私がバグの勃発を発見したとき、私は新しいイメージを作成しません。パッケージはNEWSファイルを持って、多くの、すべてではない:

  • NEWSファイル:

    は、ここで私が現在使用しているソースです。これらは確かに役立つ場所です。

  • パッケージホームページ:パッケージによっては、CRANにNEWSファイルはありませんが、作成者のサイトに変更ログを別途投稿するものがあります。パッケージのパッケージの
  • Rプロジェクトでホストされているメーリングリスト
  • Googleグループは、パッケージの作者と
  • パーソナル通信
  • バグ追跡(例えば、開発者は、Bugzillaのを使用することができます)

それがために一つのことです最初にバグを発見する(私はバグがすべての人に起こることを認めています)、すでに知られているか、すでによく修正されているバグを後天的に発見するのは別です。どちらも自分のコーディングを遅くしますが、より良いバグ監視(たぶんcdc4Rパッケージが必要です:))は、影響を大幅に軽減します。標準アップデートアラートシステム(例えば、更新可能なパッケージと変更内容に関する情報を報告するupdate.packages()への拡張)がないと、この情報を探すことはユーザーの仕事です。

このようなユーザーは、この情報を探し出す際に、上のリストで見落とした標準的なリソースがありますか?たとえば、開発者が変更やバグの修正を投稿するのが一般的なRメーリングリストはありますか?または、そのような投稿、投稿テスト(CRAN投稿R CMD CHECK出力)を集約するサイト、または他のフィードバックを与えるサイトがありますか?他人の利益のために他のリソースに


いくつかの追加の注意事項、:

  • 私はCRANberriesは私にとって新しいパッケージの簡潔なdiff要約を、持っていることがわかります。 (diff出力でbugまたはfixのgrepを検討するよう奨励しています)
  • bug.report()は、Rコアにメッセージを送信するか、パッケージメンテナーの電子メールアドレスに送信するのに適しています。
  • 考慮すべきいくつかのテストパッケージは、testthat,RUnitおよびsvUnitです。
  • 私の個人的な「クイックテスト」は、非常に大きなオブジェクトの等価性をテストすることなく、結果が一致するかどうかを確認するために単にdigestを使用することです。

注1:それはすべて Rパッケージの世界を管理することは不可能ですので、私はこのをタグ付けしています。個々のパッケージ作成者にとっては、好きな場所にパッケージを配布し、好きなメーリングリストやバグ追跡システムなどを使うことができます。しかし、これはRの「主流」の外にあります。パッケージをリリースして、バグ、バグ修正、私はCRAN + NEWS + Bugzilla + Google Groups + R-Forge(および/またはRForge)などに行くでしょうが、このリストにはない別の標準的な報告メカニズムがありますか?

このメモには、開発者が使用することが推奨される仕組みがあるかどうかを尋ねる機能もあります。私はRのコアメンバーによるパッケージがバグと変更の報告に関して多くの異なることをしているように見えるので、標準はないと思われます。

注2:私はも追加しています(これは他にもあります)。再現性のために、パッケージの管理は非常に重要です。複数のユーザーまたはより多くの動く部分がある場合は、バグや修正を認識したまま管理することが、外部パッケージに依存する開発の重要な考慮事項となります。別のタグ、例えばがより適切です、私は変更に開いています。

+1

これは何とかCRANの機能でなければならないのですか? CRANは更新について知っていなければならないので、私はRSSチャンネルをいくつか持っているべきだと感じています!機能要求をCRANに配置してください!または、アップデートにバグ修正が含まれているかどうかを区別するのは問題ですか? – TMS

+0

@Tomas私はバグに興味があります。パッケージが更新されたことを確認するのは簡単です。バグは別の問題であり、注意が必要です。私の仕事に影響を与えるならば、私は新しいバージョンに更新し、以前のバージョンに戻したり、回避したりすることがあります。パフォーマンスやインターフェイスの変更など、コードに対するその他の変更は、既に稼働しているシステムでは直ちに注意を払う必要はありません。 – Iterator

+0

私はあなたが何か大事なことを逃したとは思わない。私はすべてのパッケージにgithubを使用しているので、NEWS + githubの問題は見た目に最適な場所です。 – hadley

答えて

3

完全な答えではありませんが、ここにいくつかの考えがあります。

data.tableの場合は、バグ(および機能要求)を追跡しますon R-Forge here。私はあなたがそこにホストされているすべてのパッケージのR-Forgeのトラッカー(プログラム的に)に問い合わせることができると思います。とにかくあなたのリストに追加する。そのウェブトラッカーは、bug.report(package="data.table")が(メンテナにメールするだけでなく)を指しています。

また、誰でも<pkgname>[email protected]メーリングリストに登録して、R-Forgeのプロジェクトごとに統合差分とコミットメッセージ(コミット時)を受け取ることができます。私は、どんなR-Forgeプロジェクトへのコミットにも関わらず、一般的なメーリングリストを知らない。

?data.tableの先頭には、up to the minute NEWSへのリンクがあります。これは、アップグレードする場合、最新のバージョン(および開発中のバージョン)にあるものをユーザーに伝える方法です。そのリンクはリアルタイムで更新されます。すなわち、「分まで」は文字通り意味される。しかし、彼らはそこにチェックする必要があります!

+0

プロジェクトによってコミットされた電子メールを有効にする必要がありますか?私はR-Forgeプロジェクトごとにそれがオンであるとは思わない。しかし、おそらくそれが変更されました... –

+0

@Dirk私は、コミットがデフォルトで作成されたと思っていましたが、プロジェクト管理者はそれを無効にできます(間違っている可能性があります)。私は誰もそれが自動的に購読しているとは思わない、でも、管理者。したがって、誰も購読していないプロジェクトでは、メッセージを送信しないので、アーカイブは最初のサブスクリプション後の最初のコミットまでビルドされません。ちょうど推測。 –

+0

提案していただきありがとうございます!あなたの 'data.table'の開発と報告と変更の管理は非常に高く評価されています。それは私が依存しているパッケージの1つであり、使用するレポート機能と追跡機能もあります。私は他のパッケージでも同じリソースを持っていないことに気付き、私の目的のためにどのように対処できるか疑問に思っていました。 – Iterator

関連する問題