Чи слід включати залежність до сховища?
Я думаю, що залежність завжди повинна бути включена у сховище до тих пір, поки включення їх не порушує жодних умов використання. Мало що дратує, ніж потрібно вручну знайти правильні версії правильних залежностей, перш ніж ви зможете скласти збірку. Звичайно, це легко, якщо у вас є автоматизовані інструменти для цього, які можуть знайти та завантажити потрібну залежність, але що робити, якщо ви зараз не підключені до Інтернету або сервер не працює або проект залежності було повністю припинено та прийнято в автономному режимі? Завжди включайте залежності, якщо можливо.
Чи має бути залежність побудована з того самого сценарію збірки, що й решта проекту, або з окремого сценарію збірки?
Якщо немає поважних причин для компіляції з джерела, використовуйте попередньо складені версії.
А чому б не надати варіанти в сценарії збірки? Простий перемикач, щоб вибрати, чи слід також складати залежності чи ні. Якщо користувач також вирішив скласти залежності, тоді просто запускайте власні сценарії побудови із сценарію збірки вашого продукту. Таким чином, користувач може викликати сценарії збирання залежностей вручну або вибрати, щоб створити повне складання всього. Але я б просто поставив залежності як бінарні файли, якщо немає вагомих причин складати їх із джерел. Я думаю, що у світі з відкритим кодом деякі ліцензії вимагають від вас розповсюдження джерел разом із вашим продуктом, але це не означає, що ви не можете їх докомпілювати.
Коротше кажучи: надайте цілий окремий робочий пакет, якщо це можливо. Це забезпечить максимальну зручність для ваших користувачів.