多くの場合、オープンソースソフトウェアプロジェクトには「contrib」というフォルダーがあります。たとえば、Djangoには1つあります。それはなんのためですか?
Contrib
プロジェクトで見続けるこのフォルダーは何ですか?」-「なぜ、またはなぜプロジェクトにないのですか?」-「これについて知っておくべき標準的な規則はありますか?」
多くの場合、オープンソースソフトウェアプロジェクトには「contrib」というフォルダーがあります。たとえば、Djangoには1つあります。それはなんのためですか?
Contrib
プロジェクトで見続けるこのフォルダーは何ですか?」-「なぜ、またはなぜプロジェクトにないのですか?」-「これについて知っておくべき標準的な規則はありますか?」
回答:
それはされているソフトウェアのためにあるのcontribプロジェクトにutedますが、これは実際にはコア開発者によって維持されない場合があります。「contrib」または「Contrib」と命名することは長い間確立された慣習ですが、実際にはその名前について特別なことはなく、通常はかなり大きなプロジェクトでのみ使用されます。
念頭に置いて人気のあるオープンソースプロジェクトを見ると、「contrib」フォルダーについては何も言及されていません。
「contrib」フォルダーがあるのはDjangoだけです。Djangoの場合、このフォルダーの役割は既にドキュメントで説明されています。
Djangoは、Pythonの「バッテリーを含む」という哲学に従うことを目指しています。一般的なWeb開発の問題を解決するさまざまな追加のオプションツールが付属しています。
このコード
django/contrib
はDjangoディストリビューションに含まれています。このドキュメントでは、contrib内のパッケージの概要と、それらのパッケージの依存関係を示します。
Django Bookの第16章には、このディレクトリの役割とコンテンツのリストのより詳細な説明が含まれています。
別の例はSolrです。を使用してgitstats
、貢献者に関する統計を取得できます。
Robert Muir 22.09%
Michael McCandless 13.60%
Mark Robert Miller 9.73%
Uwe Schindler 8.17%
Yonik Seeley 5.56%
Steven Rowe 5.55%
次に、次をcontrib
実行してディレクトリのみを選択できます。
git filter-branch --subdirectory-filter solr/contrib --prune-empty
統計をもう一度取得します。
Robert Muir 19.62%
Steven Rowe 8.87%
Mark Robert Miller 8.33%
Uwe Schindler 8.06%
James Dyer 7.80%
したがって、トップ著者は実質的に同じです。つまり、それらは部外者からの貢献ではありません。contrib
フォルダ内のディレクトリを見ると、Djangoとまったく同じように、「さまざまな追加のオプションツール」であるように見えます。たとえば、Solrを機能させるためにデータインポートリクエストハンドラは必要ありませんが、データベースまたはXMLからデータをインポートする場合は、contrib
フォルダに入れておくと便利です。map-reduceでも同じですが、必ずしも必要ではないかもしれませんが、必要な場合があります。
それらのプラグインまたはアドオンはありますか?この用語は使用しません。プラグインとアドオンには、メインアプリケーションとの特定の統合があります。たとえば、プラグインはスタンドアロンで実行されることは想定されていませんが、メインアプリケーション内でホストされます。一方、contrib
おそらくスタンドアロンで実行できるツールが含まれています。
Contrib
(Akka.NETで現在別のフォルダーを探しています)!-なぜそのような名前のフォルダーがあるのか、この命名規則の規則は何なのかわかりません。-これまで述べてきたことはどれも、私が「contrib」の使用を見てきたすべての方法に当てはまるとは思えません。-すべてのプロジェクトには完全に異なるものが含まれているようです(Akka.Netはコードベースのかなりの部分をそこに配置しているようです:Akka.Clustering、Logging、DI、Persistence、TestKitsなど)。
これは、プロジェクトに貢献しているが、所有されていない、またはプロジェクト自体の一部ではないライブラリまたはコンポーネントを対象としています。私はいつもそれを、使用しているサードパーティのライブラリを置くための共通または共有の場所として使用しています。
たとえば、次のものがあります。
次に、相対パスを使用して各プロジェクトコンポーネントでそれらを参照します。そのため、ビルドする前に必要なセットアップや構成は一切ありません。ローカルでチェックアウトされた場所に関係なく、リポジトリから直接ビルドされます。
vendor
またはを使用しますthirdparty
。
Gitは、この規則を使用するオープンソースソフトウェアの優れた例です。
https://github.com/git/git/tree/master/contrib
そのREADME.mdファイルからの関連する抜粋を次に示します。
寄贈ソフトウェア
これらのピースは公式のgitソースツリーの一部として入手できますが、ステータスは多少異なります。意図は、ここでgitの周りに興味深いツール(おそらく実験的なツール)を保持し、ユーザーがより簡単にアクセスできるようにし、ツールをより広く公開して、より速く改善できるようにすることです。
私はこれらにそれほど触れることを期待していません。私の日常業務に関する限り、これらのサブディレクトリはそれぞれの主要著者が所有しています。これらのコンポーネントのユーザーおよびcontrib /サブツリーの「所有者」に解決すべき技術的/設計上の問題がある場合、私は喜んで支援しますが、物事を修正および/または強化するイニシアチブはサブツリーの所有者側になければなりません。