Oft haben Open-Source-Softwareprojekte einen Ordner mit dem Namen "contrib". Zum Beispiel hat Django einen . Wofür ist das?
project-structure
Oberst Panic
quelle
quelle
Contrib
Ordner, den ich in Projekten sehe?" - "Warum oder warum hätte ein Projekt keine?" - "Gibt es eine Standardkonvention, über die ich Bescheid wissen sollte?"Antworten:
Es ist für Software , die war contrib das Projekt ausgeschüttete, die aber möglicherweise nicht tatsächlich von den Kern - Entwicklern aufrecht erhalten werden. Die Bezeichnung "contrib" oder "Contrib" ist eine seit langem etablierte Konvention, aber der Name ist eigentlich nichts Besonderes und wird normalerweise nur von größeren Projekten verwendet.
quelle
Wenn ich mir beliebte Open-Source-Projekte anschaue, sehe ich keinen Hinweis auf einen „contrib“ -Ordner:
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 :
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.Dann können wir nur das
contrib
Verzeichnis auswählen, indem wir Folgendes ausführen:und die Statistik noch einmal abrufen:
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 einemcontrib
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.quelle
Contrib
(in Akka.NET sehen Sie sich noch einen an)! - Ich habe keine Ahnung, warum sie einen Ordner mit dem Namen haben oder wie die Konvention für diese Namenskonvention lautet. - Keines der bisher erwähnten Dinge scheint auf die Art und Weise zu passen, wie ich "contrib" verwendet habe. - Es scheint, als ob in jedem Projekt ganz andere Dinge stecken (Akka.Net scheint ein gutes Viertel seiner Codebasis zu haben: Akka.Clustering, Logging, DI, Persistence, TestKits, etc ...).Es ist für Bibliotheken oder Komponenten gedacht , die zum Projekt beitragen , aber nicht im Besitz oder Teil des Projekts selbst sind. Ich habe es immer als gemeinsamen oder gemeinsamen Speicherort für von mir verwendete Bibliotheken von Drittanbietern verwendet.
Zum Beispiel könnten Sie haben:
Verweisen Sie dann mit relativen Pfaden auf die einzelnen Projektkomponenten, sodass vor dem Erstellen keine Einrichtung oder Konfiguration erforderlich ist. Es wird direkt aus dem Repo erstellt, unabhängig davon, wo es vor Ort ausgecheckt wurde.
quelle
vendor
oderthirdparty
.Git ist ein großartiges Beispiel für Open Source-Software, die diese Konvention verwendet:
https://github.com/git/git/tree/master/contrib
Hier ist ein relevanter Auszug aus dieser README.md-Datei:
quelle