Mirando los proyectos populares de código abierto que vienen a la mente, no veo ninguna mención de ninguna carpeta "contrib":
- jQuery ,
- Expreso ,
- Sass ,
- MENOS ,
- MongoDB ,
- Redis ,
- Títeres ,
- Cocinero
- NUnit ,
- Ruby on Rails ,
- laravel ,
- Jenkins ,
- Clojure ,
- Rubí .
El único que tiene una carpeta "contrib" es Django. Para Django, el papel de esta carpeta ya se explica en la documentación :
Django tiene como objetivo seguir la filosofía de "baterías incluidas" de Python. Se entrega con una variedad de herramientas adicionales opcionales que resuelven problemas comunes de desarrollo web.
Este código vive django/contrib
en la distribución de Django. Este documento ofrece un resumen de los paquetes en contrib, junto con cualquier dependencia que tengan esos paquetes.
El Capítulo 16 de The Django Book contiene una descripción más detallada del rol de este directorio y la lista de contenidos.
Otro ejemplo es Solr . Con gitstats
, podemos obtener las estadísticas sobre los contribuyentes.
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%
Luego, podemos seleccionar solo el contrib
directorio ejecutando:
git filter-branch --subdirectory-filter solr/contrib --prune-empty
y obtenga las estadísticas una vez más:
Robert Muir 19.62%
Steven Rowe 8.87%
Mark Robert Miller 8.33%
Uwe Schindler 8.06%
James Dyer 7.80%
Por lo tanto, los principales autores son prácticamente los mismos, lo que significa que no son contribuciones de personas externas. Mirando los directorios dentro de la contrib
carpeta, parece que una vez más, se trata de "una variedad de herramientas adicionales y opcionales", exactamente como en Django. Por ejemplo, no necesita el controlador de solicitud de importación de datos para que Solr funcione, pero si desea importar datos de una base de datos o XML, es bueno contrib
tenerlos en la carpeta. Lo mismo para map-reduce, puede que no lo necesite necesariamente, pero hay casos en los que lo necesita.
¿Son esos complementos o complementos? No usaría este término. Los complementos y complementos tienen una integración específica con la aplicación principal. Por ejemplo, no se espera que un complemento se ejecute de forma independiente, sino alojado dentro de la aplicación principal. Por otro lado, contrib
contiene herramientas que probablemente pueden ejecutarse de forma independiente.