Сейчас пишу личный проект и часть модулей сделал отдельными репозиториями на Github (submodules).
В условном проекте есть:
project/main.py - основной скрипт
project/module_1_path/module_1.py - какой-то submodule номер раз
project/module_2_path/module_2.py - какой-то submodule номер два
project/logger_path/logger.py - мой логгер (тоже submodule), который используется во всех остальных модулях, и доступ к нему все модули получают через from logger_path import logger
Это не очень правильно с точки зрения того, что если я вдруг в другом проекте захочу использовать module_1, мне потребуется его клонировать, а потом вспомнить (или ловить ошибку импорта) что нужно клонировать ещё и логгер в корень проекта.
Можно сделать логгер submodule каждого модуля, но тогда, например в данном случае, у меня будет уже не один логгер к которому все обращаются, а три копии одного репозитория, и каждый модуль будет обращаться к своему.
Так вот вопрос, как быть? Как сделать так, чтобы в следующем проекте я бы просто клонировал module_1 в проект и он сам подтянул бы логгер за собой?
если я правильно понял, я делаю pip install git+https://github.com/.../logger.git
и потом в любом модуле я делаю просто import logger?
Правильно ли я понял за пару минут гугления, что при обновлении логгера придется его переустанавливать через pip? И приватные репозитории, я полагаю, он не сможет установить?
Субмодуля это отдельная и самостоятельная сущность, он за собой ничего не тягает.
Можно конечно обмазаться субмодулями по самое не могу но очень скоро вы чёкнитесь разгребать это всё :)
Так-же учитывайте что с таким подходом. если вы сломаете обратную совместимость между модулями то при обновлении увас упадёт всё что не получило фиксы.