Преимущество использования схемы major.minor.revision заключается в семантике. Есть способ обновить каждое из этих чисел:
Изменение основного номера означает, что новая версия несовместима со старой, и любой зависимый от предыдущей версии потребуется изменение кода для обновления до нового пакета.
Незначительное изменение номера означает, что новая версия обратно совместима с предыдущей версией, но имеет существенные улучшения по сравнению с предыдущей версией.
Номер редакции обновляется всякий раз, когда к сборке применяется исправление, чтобы оно не приводило к изменению совместимости и не вводило новые функции.
Указывая зависимости, вы можете сказать, что вы зависите от foo-1.0.0 - foo-1.99.999, и будьте уверены, что у вас не будет обновления пакета, которое нарушает работу вашего приложения.
Если вы начали с младшей младшей версии зависимости, скажем, foo-1.4.22, вы должны указать зависимость как foo-1.4.22 - foo-1.99.999, чтобы не заканчивать установку версия старше 1.4.x, в которой могут отсутствовать некоторые функции / улучшения.