У нас есть git-репозиторий на Python. Он импортирует несколько других модулей (не наших, но доступных на Github), в которые нужно внести несколько изменений. Появился вопрос о том, как это организовать наилучшим образом:
Вариант 1. Форкнуть внешние репозитории, внести в них изменения. Для своего проекта создать виртуальное окружение, в которое установить форкнутые репозитории.
Вариант 2. Форкнуть внешние репозитории, добавить их в проект через
submodules (или даже
subtrees).
Вариант 3. Просто скопировать чужие репозитории в свой проект (благо лицензия позволяет).
Из особенностей:
- изменения во внешние репозитории будут вноситься довольно редко
- команда - не программисты, а инженеры, среди которых многие с git на "вы" (то есть нетривиальные ошибки git могут парализовать работу).
По всей видимости, это отсекает второй вариант. Третий вариант не позволяет обновлять внешние модули. С первым вроде бы все неплохо, но в случае обновления внешних модулей нужно будет обновлять и форкнутые репозитории, и виртуальное окружение.
Собственно, вопрос: правилен ли такой подход? И как обычно решается вопрос с модификацией внешних модулей?