#git #version #monorepo #changelog
#git #версия #monorepo #Журнал изменений
Вопрос:
Я работаю над проектом, который состоит из нескольких репозиториев git. Существует несколько микросервисов, интерфейс, некоторые пакеты npm и контейнеры gateway и т. Д.
Поскольку я часто сталкиваюсь с проблемой, что для новых функций мне приходится изменять код в нескольких репозиториях, я теряюсь во множестве запросов на извлечение.
Чтобы упростить это, я подумываю о перемещении репозиториев в один monorepo. Фактически, я уже объединил некоторые пакеты npm в одном репозитории.
До сих пор я использовал standard-version
для создания журнала изменений на основе коммитов git. Я все еще хочу иметь один список изменений для каждого модуля. Очевидно, что это не работает из коробки, standard-version
поскольку он проверяет коммиты для каждого репозитория, а не для каталога модуля.
Возможно ли каким-то образом создать список изменений для каждого модуля, например, используя только сообщения о фиксации, где файлы в каталоге затронуты, или используя области в сообщениях о фиксации? Есть еще идеи?
Обычно каждый модуль будет иметь свою собственную версию, не все из них являются JS / Node / npm-проектами. Также хорошо, если мне нужно управлять публикацией вручную для каждого модуля.
Ответ №1:
Я не знаю, как вы настроили свой репозиторий, потому что вы не предоставили ни .versionrc
одного файла или package.json
примеров файлов, но есть --path
вариант для standard-version
.
Из команды справки:
npx standard-version --help
Я получил это:
--path Only populate commits made under this path [string]
Таким образом, вы можете либо использовать эту опцию в своих package.json
сценариях в качестве параметра для вашей команды release, либо добавить ее в свой .versionrc
.
Это должно быть легко, если у вас есть отдельные файлы для каждого пакета, если у вас есть глобальный скрипт, у вас должны быть просто отдельные команды выпуска для каждого пакета с каждым путем, установленным для каждой команды.