Les projets de logiciels à code source ouvert ont souvent un dossier appelé "contrib". Par exemple, Django en a un . Pourquoi est-ce?
project-structure
Colonel Panic
la source
la source
Contrib
dossier que je continue à voir dans les projets?" - "Pourquoi ou pourquoi un projet n'en aurait-il pas?" - "Y a-t-il une convention standard pour cela que je devrais connaître?"Réponses:
Il est un logiciel qui a été contrib UTED au projet, mais qui pourrait ne pas être maintenu en fait par les développeurs principaux. Le nom "contrib" ou "Contrib" est une convention établie de longue date, mais son nom n'a vraiment rien de spécial, et il n'est généralement utilisé que par des projets assez volumineux.
la source
En regardant les projets open source populaires qui me viennent à l’esprit, je ne vois aucune mention d’un dossier «contrib»:
Le seul qui a un dossier "contrib" est Django. Pour Django, le rôle de ce dossier est déjà expliqué dans la documentation :
Le chapitre 16 du Livre Django contient une description plus détaillée du rôle de ce répertoire et de la liste de son contenu.
Un autre exemple est Solr . Avec
gitstats
, nous pouvons obtenir les statistiques sur les contributeurs.Ensuite, nous pouvons sélectionner uniquement le
contrib
répertoire en exécutant:et obtenez les statistiques une fois de plus:
Les meilleurs auteurs sont pratiquement les mêmes, ce qui signifie que ce ne sont pas des contributions de personnes extérieures. En regardant les répertoires à l’intérieur du
contrib
dossier, il semble qu’une fois de plus, ce sont «une variété d’outils supplémentaires facultatifs», exactement comme dans Django. Par exemple, vous n'avez pas besoin du gestionnaire de demandes d'importation de données pour que Solr fonctionne, mais si vous souhaitez importer des données à partir d'une base de données ou d'un fichier XML, il est agréable de les avoir dans uncontrib
dossier. Même chose pour map-réduire, vous n’en aurez peut-être pas nécessairement besoin, mais dans certains cas.Est-ce que ces plugins ou add-ons? Je n'utiliserais pas ce terme. Les plugins et add-ons ont une intégration spécifique avec l'application principale. Par exemple, un plugin ne devrait pas fonctionner de manière autonome, mais hébergé dans l'application principale. D'autre part,
contrib
contient des outils qui peuvent probablement fonctionner de manière autonome.la source
Contrib
(maintenant encore un autre dans Akka.NET)! - Je ne sais pas pourquoi ils ont un dossier nommé ainsi, ni quelle est la convention pour cette convention d'appellation. - Aucune des choses mentionnées jusqu'à présent ne semble correspondre à toutes les manières que j'ai vu utiliser "contrib". - Il semble que chaque projet comporte des éléments complètement différents (Akka.Net semble y placer un bon quart de sa base de code: Akka.Clustering, Journalisation, DI, Persistence, TestKits, etc.).Il est destiné aux bibliothèques ou aux composants qui contribuent au projet, mais ne sont pas possédés ou ne font pas partie du projet lui-même. Je l'ai toujours utilisé comme emplacement commun ou partagé pour placer les bibliothèques tierces que j'utilise.
Par exemple, vous pourriez avoir:
Ensuite, référencez-les dans chacun des composants du projet en utilisant des chemins relatifs, de sorte qu'aucune sorte d'installation ou de configuration ne soit nécessaire avant de le construire. Il sera construit directement à partir du repo, peu importe où il est extrait localement.
la source
vendor
outhirdparty
.Git est un excellent exemple de logiciel open source qui utilise cette convention:
https://github.com/git/git/tree/master/contrib
Voici un extrait pertinent de ce fichier README.md:
la source