Czy zależność powinna być zawarta w repozytorium?
Myślę, że zależności powinny być zawsze zawarte w repozytorium, o ile ich uwzględnienie nie narusza żadnych warunków użytkowania. Niewiele rzeczy jest bardziej denerwujących niż konieczność ręcznego znajdowania odpowiednich wersji odpowiednich zależności, zanim będzie można zbudować kompilację. Oczywiście jest to łatwe, gdy masz zautomatyzowane narzędzia, które mogą to zrobić za Ciebie, które mogą znaleźć i pobrać odpowiednią zależność, ale co zrobić, jeśli nie jesteś w tej chwili podłączony do Internetu lub serwer jest wyłączony lub projekt zależności został całkowicie wycofany i przejął tryb offline? Zawsze uwzględniaj zależności, jeśli to możliwe.
Czy zależność powinna być budowana z tego samego skryptu kompilacji, co z pozostałej części projektu, czy z oddzielnego skryptu kompilacji?
O ile nie ma dobrego powodu, aby kompilować ze źródła, używaj wstępnie skompilowanych wersji.
A dlaczego nie podać opcji w skrypcie kompilacji? Prosty przełącznik do wyboru, czy zależności powinny być również kompilowane, czy nie. Jeśli użytkownik zdecyduje się również na kompilację zależności, po prostu wywołaj własne skrypty budowania ze skryptu kompilacji produktu. Użytkownik może więc ręcznie wywoływać skrypty kompilacji zależności lub wybrać utworzenie pełnej kompilacji wszystkiego. Ale po prostu dostarczałbym zależności jako pliki binarne, jeśli nie ma dobrego powodu, aby je kompilować ze źródeł. Myślę, że w świecie Open Source niektóre licencje wymagają rozpowszechniania źródeł wraz z produktem, ale to nie znaczy, że nie można ich wstępnie skompilować.
W skrócie: Zapewnij cały autonomiczny, działający pakiet, jeśli to możliwe. Zapewni to największą wygodę użytkownikom.