Вопрос

Если у вас есть проект, который выпускает библиотеку и приложение, как вы обрабатываете номера версий между ними.

Пример:Ваш проект предоставляет библиотеку, которая преобразует различные форматы файлов друг в друга.Библиотека выпущена для включения в другие приложения.Но вы также выпускаете приложение командной строки, которое использует эту библиотеку и реализует интерфейс к функциональности.

Новые выпуски библиотеки приводят к появлению новых выпусков приложения (для использования всех новых функций), но новые выпуски приложения могут не запускать новые выпуски библиотеки.Теперь как обрабатываются номера версий:Полностью независим или версия библиотеки и приложения должна каким-то образом зависеть?

Это было полезно?

Решение

Я бы посоветовал использовать отдельные номера версий и, конечно, документировать, какая минимальная версия библиотеки требуется для каждого выпуска приложения.Если у них всегда один и тот же номер версии, и вы тестируете приложение только с версией библиотеки с одинаковым номером, то на самом деле это не отдельные компоненты, так что не говорите, что это так.Выложите всю массу одним комом.

Если вы сделаете их отдельными, вы все равно сможете присвоить им один и тот же номер версии, когда это будет уместно - например, после серьезного нарушения совместимости вы можете выпустить версию 2.0 обеих версий одновременно.

Следующий пример иллюстрирует:xsltproc (приложение командной строки) выпущен как часть libxslt (библиотеки), поэтому не имеет собственного номера версии.Но libxslt зависит от двух других библиотек, и номера их версий независимы.

$ xsltproc --version
Using libxml 20628, libxslt 10120 and libexslt 813
xsltproc was compiled against libxml 20628, libxslt 10120 and libexslt 813
libxslt 10120 was compiled against libxml 20628
libexslt 813 was compiled against libxml 20628

Другие советы

Полностью независимые номера версий, но в командной строке (или любом другом зависимом) приложении должно быть указано, для какой версии библиотеки оно было скомпилировано, в разделе справки или на баннере.

Таким образом, вы сможете определить, какой функциональностью будут обладать приложения, и уменьшить потенциальную путаницу, особенно учитывая, что кто-то по любой причине может скомпилировать более новую версию приложения со старой библиотекой.Кроме того, вы разделяете их и можете добавлять функции в библиотеку независимо от выпуска новой версии приложения и так далее.

Если вы уверены, что всегда хотите, чтобы все приложения и библиотека работали синхронно, тогда вы могли бы использовать те же номера, но это добавляет ограничение по не очень веской причине.

Мы создали приложение, которое использует фреймворк.Мы сохраняем отдельные номера версий для обоих.

Это работает хорошо, особенно потому, что теперь фреймворк и приложение стали достаточно большими, чтобы их могли разрабатывать разные команды.

Итак, мое мнение...храните номера версий отдельно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top