Git и общая библиотека Python

Это может быть вопрос новичка, поэтому, пожалуйста, извините. У нас есть небольшая команда разработчиков Python, и наше репо организовано, как указано ниже. У нас есть пользовательская библиотека, которая используется несколькими сценариями (оболочками), а затем библиотеками, специфичными для каждой оболочки. Структура ниже поддерживается в Git. Это сработало до сих пор для развития. Теперь мы хотели бы выпустить обертки, но индивидуально. Например, нам нужно выпустить wrapper1 для отдельной аудитории (разные сроки и потребности), а позже - wrapper2. Оба должны содержать shared_library и только их определенную библиотеку. Каков наилучший способ сделать это?

repo/:
    wrapper1.py
    wrapper2.py
    shared_library/:
        module1.py
        module2.py
    wrapper1_specific_lib/:
        wrapper1_module1.py
        wrapper1_module2.py
    wrapper2_specific_lib/:
        wrapper2_module1.py
        wrapper2_module2.py

Мы рассмотрели следующие решения:

  1. Переорганизовать три отдельных репозитория: wrapper1, wrapper2 и shared_library и выпустить отдельно.

  2. Имеют два отдельных репозитория для wrapper1 и wrapper2 и периодически синхронизируют общую библиотеку (!!?!!)

  3. Оставьте это так, но выясните, возможно ли каким-то образом использовать Git для выпуска выбранных файлов, папок, специфичных для каждой оболочки.

Обращаюсь к вам за помощью по организации кода на python для лучшего управления выпусками с помощью Git. Заранее спасибо!!

1 ответ

Решение

У вас есть 3 продукта, каждый со своим графиком выпуска. Пользователи Wrapper1 не заинтересованы в просмотре кода wrapper2, и наоборот. Разбить на 3 репо было бы самым простым подходом.

Будьте внимательны, чтобы упаковать автоматизированные модульные тесты в репозиторий shared_library. Оба зависимых приложения должны иметь возможность успешно запускать свои собственные тесты плюс общие тесты. Это станет важным, так как выпущенные приложения отправляют новые запросы функций и пытаются тянуть shared_library в разные стороны.

Другие вопросы по тегам