パッケージングの個人的なトリガーは次のとおりです。
@JohnRosには、パッケージの作成とパッケージの公開にはかなりの違いがあることに同意します。
私は通常、早期にパッケージ化しますが、パッケージは「半公開」のみにします。つまり、内部サーバー(またはr-forge)で使用できるため、同僚がパッケージにアクセスできます。しかし、CRANに公開するのは、パッケージが親しい同僚によって数か月または数年使用された後のみです。@Nick Coxのポイント#3によると、すべてのバグが発生するわけではありませんが、かなりの量です。
パッケージのバージョン(バージョン番号のダッシュの後に日付を入れます)により、物事を簡単に修正できます(「これを行うには、少なくとも先週のバージョンをインストールしてください」)
私の労働契約によれば、私の雇用主は、パッケージを外の世界に公開できるかどうか、そしてどのように公開できるかについての最後の言葉を持っています。
私がまだパッケージングの良い戦略を持っていないのはデータです。
理由リストへのコメント:
私が必要なことをするパッケージを見つけられないと、コードを書くきっかけになりますが、パッケージ化するかどうかの決定とは関係ありません。
- 他の研究者と交換し、実験の再現性を可能にする必要性;
間違いなく。おそらく、私が使用する複数のコンピューター間で共有する必要があります。
そして、反対の決定につながる可能性のあるポイントの中で:
- 既に使用されているメソッドの一部は、他のいくつかのパッケージに既に存在します。
これらのメソッドをパッケージ/コードにインポートできます。これはそのようなコードを書くことに対するポイントですが、パッケージングに間接的に関係しているだけです。
- 新しい独立したパッケージを作成するのに十分ではない新しい関数の数。
私にとって、パッケージを開始するための関数の最小数はありません。私の経験では、パッケージは「自動的に」成長する傾向があります。それどころか、新しいパッケージを別のパッケージから数回分岐させることに気付いた後(たとえば、最終的にいくつかのヘルパー関数がテーマ的に異なり、他の状況でも役立つことが判明したため)、私は今ではなく新しいパッケージをすぐに作成します。
また、ドキュメントとテストを作成しなかった場合、パッケージを作成するための「十分な」数の関数が蓄積した場合、これは非常に多くの作業になる可能性があります。
(すぐにそれらを記述する場合、ワークフローを知っていれば、パッケージに追加する追加の労力は無視できます)。