2016-01-06 3 views
0

Я прочитал semantic versioning, однако он не упоминает, как мы должны иметь дело с дополнительными пакетами.Как мы должны семантически модифицировать дополнительные пакеты?

Для дополнительной упаковки я имею в виду пакет, который расширяет основной пакет, но не обязательно поставляется с основным пакетом. Соглашение об именах пакетов обычно равно <main>-<addon>, например. maven-war-plugin.

Предположим, главная страница pkg и имеет версию 1.5, и у нас есть дополнительный пакет с именем pkg-dothis. То, что я хочу достичь, это версия надстройки на упаковке должно быть указано, что:

  1. Он совместим с pkg 1,5
  2. Он способен показывать новые возможности (Она имеет свою собственную небольшую версию)
  3. Он способен отображать версию исправления ошибок (имеет собственную версию исправления ошибок)

1,5. <minor>. <bugfix> достаточно хорошо?

Редактировать: Rolf Rander предлагает мне не использовать термин «подпакет», поэтому я предполагаю, что «надстройка» менее вводит в заблуждение.

ответ

0

Ваше определение подпакета не совсем ясно. Если пакет X зависит от пакетов A, B и C, который является суб-пакетом? Я думаю, вам будет лучше, если не использовать термин sub-package. Попытка выразить управление зависимостями в ваших версиях, вероятно, приведет к проблемам позже. Что делать, если pkg-dothis совместим с несколькими версиями pkg?

+0

Скажите, если бы я разработал плагин maven, соглашение об именах - maven- -plugin. Он не может жить без maven, поэтому maven является «основным» пакетом. Ммм, возможно, «надстройка» лучше. И да, 'pkg-dothis' может быть совместим с более старыми' pkg', но позволяет сказать, что 'pkg-dothis-1.5. ???' использует функциональность от 'pkg-1.5'. –

+0

Maven - хороший пример, посмотрите, как плагины maven версируются. Например, [site] (https://maven.apache.org/plugins-archives/maven-site-plugin-3.3/) -plugin разработан близко к самому maven. Он находится в версии 3.3, но работает с maven 2.2.1 или новее. Maven-плагин для [jenkins] (https://wiki.jenkins-ci.org/display/JENKINS/Maven+Project+Plugin) полностью раздельный, последняя версия - 2.12.1, но это работает с maven 2 или 3. Я бы советовал не использовать много семантики в одном значении, таком как номер версии. –

+0

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

0

Все зависит от того, что ожидается от сообщества.

Сообщество maven, похоже, не слишком заботится о соответствии основной версии пакета. Поэтому вы можете просто игнорировать основную версию пакета.

Сообщество KDE, с другой стороны, ожидается, что дополнительные приложения будут соответствовать, по меньшей мере, первым двум номерам версий 1. В этих сообществах, если стиль обновления надстройки более или менее похож на основной пакет, то есть всякий раз, когда основной пакет отсутствует, вы соответствующим образом изменяете и используете новую функцию из основного пакета, тогда вы можете просто использовать KDE-версию , То есть, либо соответствовать основному пакету, либо использовать уровень исправления (третий номер) для вашей собственной версии.

Если новые обновления функций могут сжиматься между незначительными обновлениями основного пакета, то < main-major>. < основной-незначительный>. < addon-minor>. < addon-bugfix> кажется разумным способом.

Смежные вопросы