Мы только начали работать над чем-то, что, возможно, лучше всего описать как «открытый» фреймворк для всей компании.Наш основной язык - C #, и мы используем Jenkins и ProGet для создания и обмена nuget-пакетами.Мы начали помещать все (и я действительно имею в виду все. Один модуль имеет как минимум три репозитория) в собственном Git-репо.Мы подумали, что это было бы хорошей идеей, поскольку мы можем создавать версии и публиковать все по отдельности, но это приводит к очень раздражающему рабочему процессу, если вы хотите вносить изменения в несколько репозиториев с зависимостями.
Я начинаю осматриватьсяи кажется, что большинство проектов используют более монолитный подход, и я думаю, что это, вероятно, также облегчит нашу жизнь здесь.В чем я не уверен, так это в том, как работает управление версиями с помощью этого подхода.
Репозиторий CoreFx является хорошим примером того, чего мы пытаемся достичь.Один репо, который приводит к множеству отдельных пакетов.Когда я создаю это локально, для всех пакетов существует один номер версии, но когда я смотрю на доступные версии пакетов на nuget.org, кажется, что версии для каждого пакета.Например, System.Diagnostics.DiagnosticsSource имеет версию 4.5.1, но ссылается на System.Diagnostics.Debug версию 4.3.0.
Так что это именно то, что я думаю, было бы хорошим решением для нас.Один репо, множество результирующих пакетов с независимой версией.
Кто-нибудь знает, как это достигается с помощью проекта corefx, или есть другие предложения, как это можно сделать?