Каким образом можно создавать и обновлять отдельные changelog.md файлы для нескольких проектов .csproj, находящихся в одном репозитории?

Как можно организовать ведение отдельных changelog для каждого проекта в общем репозитории pp_shared_lib без использования submodule? Используется библиотека Versionize для управления версиями в проектах .NET Core, но возникает исключение о "неоднозначном выборе проекта для версионирования" при добавлении > 1 проекта. Какие альтернативные подходы можно применить для решения этой проблемы?
  • 21 июля 2024 г. 13:53
Ответы на вопрос 2
Для создания и обновления отдельных changelog.md файлов для каждого проекта .csproj в общем репозитории, можно использовать следующий подход:

1. Создание отдельного changelog.md файла для каждого проекта:
   - Создайте в каждой директории проекта отдельный changelog.md файл, например, changelog_project1.md, changelog_project2.md и т.д.
   - В каждом changelog.md файле можно вести записи об изменениях, исправлениях, добавлениях и прочем для конкретного проекта.

2. Организация ведения отдельных changelog для каждого проекта в общем репозитории без использования submodule:
   - Для того чтобы удобно работать с несколькими changelog.md файлами, можно создать скрипт или утилиту, которая будет автоматически добавлять и обновлять записи в каждом changelog.md файле при необходимости.
   - Например, можно использовать скрипты на Python или PowerShell для таких целей.

3. Альтернативные подходы для управления версиями и changelog.md в проектах .NET Core:
   - Использование отдельных инструментов для управления версиями и changelog, таких как GitVersion или GitHub Release Manager, которые могут автоматически обновлять changelog.md файлы на основе коммитов, тегов и прочего.
   - Создание и использование специальной секции в файле csproj для хранения информации о версии и changelog, которая автоматически будет обновляться при изменениях в проекте.

В целом, для эффективного управления версиями и changelog.md файлами в нескольких проектах .csproj в одном репозитории, важно использовать автоматизированные средства и подходы, которые позволят удобно и точно вести их обновление.
А разве флаг --proj-name не для этого в Versionize добавлен? 

Usage: versionize [command] [options]

Options:
...
  --proj-name    Name of a project defined in the configuration file (for monorepos)


UPD: справедливости ради, в README доку для него добавили месяц назад (на текущий момент), поэтому в самом туле его может не быть еще
Похожие вопросы