「contrib」フォルダーには何がありますか?


42

多くの場合、オープンソースソフトウェアプロジェクトには「contrib」というフォルダーがあります。たとえば、Djangoには1つあります。それはなんのためですか?


あなたの研究を共有することは皆を助けます。試したことと、それがニーズに合わなかった理由を教えてください。これは、あなたが時間をかけて自分自身を助けようとしていること、明白な答えを繰り返すことから私たちを救うこと、そして何よりもあなたがより具体的で関連性のある答えを得ることを助けることを示しています。参照してください掲載する方法
GNAT

11
質問は非常に明確でした、IMO。-「Contribプロジェクトで見続けるこのフォルダーは何ですか?」-「なぜ、またはなぜプロジェクトにないのですか?」-「これについて知っておくべき標準的な規則はありますか?」
BrainSlugs83

回答:


17

それはされているソフトウェアのためにあるのcontribプロジェクトにutedますが、これは実際にはコア開発者によって維持されない場合があります。「contrib」または「Contrib」と命名することは長い間確立された慣習ですが、実際にはその名前について特別なことはなく、通常はかなり大きなプロジェクトでのみ使用されます。


2
これは正解です。
Blrfl

私は、contribにあるものが時々contribに進まないことにも気づきました。これが意味するところは、より積極的なサポートと開発のためにプロジェクトのメインラインに採用されたということでしょうか?
立ち会う

1
@fostandy:はい、それは正しいです。
ブライアンオークリー

15

念頭に置いて人気のあるオープンソースプロジェクトを見ると、「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おそらくスタンドアロンで実行できるツールが含まれています。


2
実は、私は「不作為」とは何なのかと疑問に思っていました。Solrはその後Gruntもしています。これはちょうどplugin / add-on /の別の用語ですか?
マーティン

@ user3265472:回答を編集してSolrを含めました。Gruntについては、これについて話しているのですか?contribディレクトリはないと思います。
アルセニムルゼンコ

ええ、それが1つです。申し訳ありませんが、質問のフォルダが見つかりませんでした。私は自分自身で「contrib」という用語を理解したいと思っていました。Gruntには、そのような名前のさまざまなプラグイン/ライブラリー(?)があります(Grunt-contrib-uglify、Grunt-contrib-jshintなど)。与えられたあなたの説明は私にもっと良いアイデアを与えてくれます、ありがとう。
マーティン

2
Debianの一部のパッケージは、「contrib」と呼ばれるパッケージのクラスに分類されます。これは、Debianポリシーマニュアルが述べていることです。「他のアーカイブ領域(contrib、non-free)のパッケージはDebianディストリビューションの一部とは見なされませんが、その使用をサポートし、インフラストラクチャを提供します(バグ追跡システムとメーリングリスト)。」
ケビンウィーラー

3
私が長年見てきた多くのOSSプロジェクトには、フォルダーがありますContrib(Akka.NETで現在別のフォルダーを探しています)!-なぜそのような名前のフォルダーがあるのか​​、この命名規則の規則は何なのかわかりません。-これまで述べてきたことはどれも、私が「contrib」の使用を見てきたすべての方法に当てはまるとは思えません。-すべてのプロジェクトには完全に異なるものが含まれているようです(Akka.Netはコードベースのかなりの部分をそこに配置しているようです:Akka.Clustering、Logging、DI、Persistence、TestKitsなど)。
BrainSlugs83

6

これは、プロジェクトに貢献しているが、所有されていない、またはプロジェクト自体の一部ではないライブラリまたはコンポーネントを対象としています。私はいつもそれを、使用しているサードパーティのライブラリを置くための共通または共有の場所として使用しています。

たとえば、次のものがあります。

  • / Contrib / log4net-xxx
  • /Contrib/SSH.NET-xxx
  • / BackendService
  • / DesktopUI
  • / GenUtils
  • / SMCore
  • / WebUI

次に、相対パスを使用して各プロジェクトコンポーネントでそれらを参照します。そのため、ビルドする前に必要なセットアップや構成は一切ありません。ローカルでチェックアウトされた場所に関係なく、リポジトリから直接ビルドされます。


私はこの見解を共有しません。あなたが説明するものについては、むしろ名前vendorまたはを使用しますthirdparty
moi

2

Gitは、この規則を使用するオープンソースソフトウェアの優れた例です。

https://github.com/git/git/tree/master/contrib

そのREADME.mdファイルからの関連する抜粋を次に示します。

寄贈ソフトウェア

これらのピースは公式のgitソースツリーの一部として入手できますが、ステータスは多少異なります。意図は、ここでgitの周りに興味深いツール(おそらく実験的なツール)を保持し、ユーザーがより簡単にアクセスできるようにし、ツールをより広く公開して、より速く改善できるようにすることです。

私はこれらにそれほど触れることを期待していません。私の日常業務に関する限り、これらのサブディレクトリはそれぞれの主要著者が所有しています。これらのコンポーネントのユーザーおよびcontrib /サブツリーの「所有者」に解決すべき技術的/設計上の問題がある場合、私は喜んで支援しますが、物事を修正および/または強化するイニシアチブはサブツリーの所有者側になければなりません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.