Глядя на популярные проекты с открытым исходным кодом, которые приходят на ум, я не вижу упоминаний ни о какой папке «contrib»:
- JQuery ,
- Экспресс ,
- Sass ,
- МЕНЬШЕ ,
- MongoDB ,
- Redis ,
- Кукольный ,
- шеф-повар
- NUnit ,
- Ruby on Rails ,
- Ларавел ,
- Дженкинс ,
- Clojure ,
- Руби .
Единственная папка «contrib» - это Django. Для Django роль этой папки уже объяснена в документации :
Django стремится следовать философии Python «батарейки включены». Он поставляется с множеством дополнительных, дополнительных инструментов, которые решают общие проблемы веб-разработки.
Этот код находится django/contrib
в дистрибутиве Django. Этот документ дает краткое изложение пакетов в contrib вместе со всеми зависимостями, которые имеют эти пакеты.
Глава 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
папке. То же самое относится и к уменьшению карты, оно может вам и не понадобиться, но есть случаи, когда вы это делаете.
Это плагины или дополнения? Я бы не стал использовать этот термин. Плагины и дополнения имеют особую интеграцию с основным приложением. Например, плагин не должен запускаться автономно, но размещается в основном приложении. С другой стороны, contrib
содержит инструменты, которые могут работать автономно.