Melihat proyek open source populer yang muncul dalam pikiran, saya tidak melihat penyebutan folder "contrib":
- jQuery ,
- Mengungkapkan ,
- Sass ,
- KURANG ,
- MongoDB ,
- Redis ,
- Boneka ,
- Koki
- NUnit ,
- Ruby on Rails ,
- Laravel ,
- Jenkins ,
- Clojure ,
- Ruby .
Satu-satunya yang memiliki folder "contrib" adalah Django. Untuk Django, peran folder ini sudah dijelaskan dalam dokumentasi :
Django bertujuan untuk mengikuti filosofi "baterai termasuk" Python. Ini dikirimkan dengan berbagai alat tambahan opsional yang memecahkan masalah pengembangan Web yang umum.
Kode ini hidup di django/contrib
dalam distribusi Django. Dokumen ini memberikan ikhtisar paket dalam contrib, bersama dengan setiap dependensi yang dimiliki paket tersebut.
Bab 16 dari The Django Book berisi deskripsi yang lebih rinci tentang peran direktori ini dan daftar konten.
Contoh lain adalah Solr . Dengan gitstats
, kita bisa mendapatkan statistik tentang kontributor.
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%
Kemudian, kita hanya dapat memilih contrib
direktori dengan menjalankan:
git filter-branch --subdirectory-filter solr/contrib --prune-empty
dan dapatkan statistik sekali lagi:
Robert Muir 19.62%
Steven Rowe 8.87%
Mark Robert Miller 8.33%
Uwe Schindler 8.06%
James Dyer 7.80%
Jadi penulis teratas praktis sama, yang berarti bahwa itu bukan kontribusi dari pihak luar. Melihat direktori di dalam contrib
folder, tampaknya sekali lagi, itu adalah "berbagai alat tambahan, opsional", persis seperti di Django. Misalnya, Anda tidak memerlukan Handler Permintaan Impor Data untuk membuat Solr berfungsi, tetapi jika Anda ingin mengimpor data dari basis data atau XML, senang memilikinya dalam contrib
folder. Sama untuk pengurangan peta, Anda mungkin tidak perlu, tetapi ada beberapa kasus di mana Anda melakukannya.
Apakah itu plugin atau add-on? Saya tidak akan menggunakan istilah ini. Pengaya dan pengaya memiliki integrasi spesifik dengan aplikasi utama. Sebagai contoh, sebuah plugin tidak diharapkan untuk menjalankan standalone, tetapi dihosting di dalam aplikasi utama. Di sisi lain, contrib
berisi alat yang mungkin dapat menjalankan standalone.