Wenn ich mir beliebte Open-Source-Projekte anschaue, sehe ich keinen Hinweis auf einen „contrib“ -Ordner:
- jQuery ,
- Express ,
- Sass ,
- WENIGER ,
- MongoDB ,
- Redis ,
- Marionette ,
- Koch
- NUnit ,
- Ruby on Rails ,
- Laravel ,
- Jenkins ,
- Clojure ,
- Ruby .
Der einzige Ordner, der über einen Contrib-Ordner verfügt, ist Django. Für Django ist die Rolle dieses Ordners bereits in der Dokumentation erklärt :
Django ist bestrebt, die Python-Philosophie „Batterien inklusive“ zu befolgen. Es wird mit einer Vielzahl von zusätzlichen, optionalen Tools ausgeliefert, mit denen häufig auftretende Probleme bei der Webentwicklung gelöst werden können.
Dieser Code ist django/contrib
in der Django-Distribution enthalten. Dieses Dokument enthält eine Übersicht über die in contrib enthaltenen Pakete sowie die Abhängigkeiten, die diese Pakete aufweisen.
Kapitel 16 des Django-Buches enthält eine detailliertere Beschreibung der Rolle dieses Verzeichnisses und des Inhaltsverzeichnisses.
Ein anderes Beispiel ist Solr . Mit gitstats
können wir die Statistiken über die Mitwirkenden abrufen.
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%
Dann können wir nur das contrib
Verzeichnis auswählen, indem wir Folgendes ausführen:
git filter-branch --subdirectory-filter solr/contrib --prune-empty
und die Statistik noch einmal abrufen:
Robert Muir 19.62%
Steven Rowe 8.87%
Mark Robert Miller 8.33%
Uwe Schindler 8.06%
James Dyer 7.80%
Die Top-Autoren sind also praktisch gleich, was bedeutet, dass dies keine Beiträge von Außenstehenden sind. Bei Betrachtung der Verzeichnisse im contrib
Ordner scheint es sich erneut um „eine Vielzahl zusätzlicher, optionaler Tools“ zu handeln, genau wie in Django. Zum Beispiel benötigen Sie den Datenimport-Anforderungs-Handler nicht, damit Solr funktioniert, aber wenn Sie Daten aus einer Datenbank oder XML importieren möchten, ist es schön, sie in einem contrib
Ordner zu haben . Das Gleiche gilt für die Kartenreduzierung. Sie brauchen es möglicherweise nicht unbedingt, aber es gibt Fälle, in denen dies der Fall ist.
Sind das Plugins oder Add-Ons? Ich würde diesen Begriff nicht verwenden. Plugins und Add-Ons sind spezifisch in die Hauptanwendung integriert. Zum Beispiel wird erwartet, dass ein Plugin nicht eigenständig ausgeführt wird, sondern in der Hauptanwendung gehostet wird. Auf der anderen Seite contrib
enthält Tools, die wahrscheinlich eigenständig ausgeführt werden können.