Как измерить зрелость программного компонента путем обработки номеров версий?
Я пытаюсь реализовать метрику, которая описывает, насколько зрелым / стабильным является программный компонент, глядя на то, сколько версий было сделано из него за определенный период времени (или с начальной даты).
Больше версий будет указывать на менее зрелый / стабильный компонент. Но это не будет точным: если смотреть на больший промежуток времени, компонент мог иметь много изменений в начале, но совсем немного в последнее время. Это указывает на стабильный компонент. Кроме того, нумерация версий, вероятно, должна быть учтена. Изменение с "1.4" на "2.0" должно быть более значительным, чем изменение с "1.4.1" на "1.4.2".
В двух словах: более старые изменения должны иметь меньшее значение, большее увеличение номера версии должно иметь большее значение.
Существует ли отраслевая стандартная весовая функция, которая позволила бы достичь желаемого результата в соответствии с этими критериями? Или я должен попытаться создать свой собственный?
1 ответ
Посмотрите на Семантическое Версионирование:
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
Кроме того, я использую четвертое число REVISION, которое представляет собой SVN-ревизию пакета сборки, созданного из исходного кода этой ревизии. Я обновляю версии сборки моих компонентов с этим номером во время сборки, например:
2.0.3.xyz
Надеюсь это поможет.