Решил дать дополняющий ответ и оформить его в виде ответа, а не комментария.
Или "взрослое" решение пишется без пакетного менеджера?
С точки зрения
ведения проектов у пользователя вашего кода должно быть
целостное лицо:
- Или он совсем ничего не понимает и хочет собрать только ваш проект и забыть.
- Или у него свое настроенное окружение, в котором собираются разные проекты, и ваш будет одним из многих.
В реальных проектах первый случай обычно бывает на внедрении, когда по каким-то причинам конечному пользователю поставляется исходный код, собираемый затем на месте. Пользователь кода — не программист, своего окружения у него нет и не будет, и ему вполне нормально иметь костыльные по сути зависимости через ваш проект. На внедрении под эти пляски наверняка выделен отдельный комп (или виртуальный сервер), и такой подход ничего не сломает, а жизнь пользователю-непрофессионалу упростит (в теории). На внедрении всякое бывает, короче.
Во втором же случае подразумевается пользователь-программист, и он как от огня будет бежать от чужих костылей, своими грязными ручонками портящих с трудом и любовью настроенную его собственную среду. И если по каким-то причинам ему всё же потребуется собрать ваш код, вашей маме я бы не позавидовал.
Мораль в том, что с точки зрения ведения проектов тоже надо уметь смотреть, не только кодить.