Często projekty oprogramowania open source mają folder o nazwie „contrib”. Na przykład Django ma jeden . Po co to jest?
project-structure
Pułkownik Panika
źródło
źródło
Contrib
folder, który wciąż widzę w projektach?” - „Dlaczego lub dlaczego projekt nie miałby takiego?” - „Czy istnieje jakaś standardowa konwencja w tej sprawie, o której powinienem wiedzieć?”Odpowiedzi:
Jest za oprogramowanie, które zostało contrib oddziaływał na projekcie, ale nie w rzeczywistości może być utrzymana przez twórców bazowych. Nazywanie go „contrib” lub „Contrib” jest od dawna przyjętą konwencją, ale tak naprawdę nie ma w tym nic specjalnego, a zwykle używa się go tylko w dość dużych projektach.
źródło
Patrząc na popularne projekty open source, które przychodzą na myśl, nie widzę wzmianki o żadnym folderze „contrib”:
Jedynym, który ma folder „contrib” jest Django. W przypadku Django rola tego folderu została już wyjaśniona w dokumentacji :
Rozdział 16 Księgi Django zawiera bardziej szczegółowy opis roli tego katalogu i spis treści.
Innym przykładem jest Solr . Dzięki
gitstats
możemy uzyskać statystyki dotyczące autorów.Następnie możemy wybrać tylko
contrib
katalog, uruchamiając:i uzyskaj statystyki jeszcze raz:
Zatem najlepsi autorzy są praktycznie tacy sami, co oznacza, że nie są to wypowiedzi osób postronnych. Patrząc na katalogi w
contrib
folderze, wydaje się, że po raz kolejny są to „różnorodne dodatkowe, opcjonalne narzędzia”, dokładnie tak jak w Django. Na przykład nie potrzebujesz modułu obsługi żądania importu danych, aby Solr działał, ale jeśli chcesz importować dane z bazy danych lub XML, dobrze jest mieć je wcontrib
folderze. To samo dotyczy zmniejszania mapy, niekoniecznie będziesz jej potrzebować, ale są przypadki, w których to robisz.Czy to są wtyczki lub dodatki? Nie użyłbym tego terminu. Wtyczki i dodatki mają specyficzną integrację z główną aplikacją. Na przykład wtyczka nie powinna działać autonomicznie, ale będzie hostowana w głównej aplikacji. Z drugiej strony
contrib
zawiera narzędzia, które prawdopodobnie mogą działać samodzielnie.źródło
Contrib
(patrząc na jeszcze jeden w Akka.NET)! - Nie mam pojęcia, dlaczego mają taki folder, ani jaka jest konwencja dla tej konwencji nazewnictwa. - Żadna z wyżej wymienionych rzeczy nie wydaje się pasować do wszystkich sposobów, w jakie widziałem użycie „contrib”. - wygląda na to, że każdy projekt ma tam zupełnie inne rzeczy (Akka.Net wydaje się, że umieszcza tam dobrą ćwierć swojej bazy kodu: Akka.Klastry, Logowanie, DI, Trwałość, Zestawy testowe itp.).Jest przeznaczony dla bibliotek lub komponentów, które wnoszą wkład do projektu, ale nie są własnością ani częścią samego projektu. Zawsze używałem go jako wspólnej lub współdzielonej lokalizacji do umieszczania dowolnych bibliotek stron trzecich, których używam.
Na przykład możesz mieć:
Następnie odwołaj się do nich w każdym ze składników projektu, używając ścieżek względnych, aby nie było potrzeby instalowania ani konfigurowania przed budowaniem. Będzie budować bezpośrednio z repozytorium bez względu na to, gdzie jest sprawdzane lokalnie.
źródło
vendor
lubthirdparty
.Git jest doskonałym przykładem oprogramowania typu open source, które korzysta z tej konwencji:
https://github.com/git/git/tree/master/contrib
Oto odpowiedni fragment tego pliku README.md:
źródło