Когда веб-компоненты совместимы в соответствии со спецификацией semver?
Говоря теоретически, я пытаюсь выяснить, когда линтер веб-компонента, читающий package.json для зависимостей веб-компонента JSPM, может определить, можно ли построить граф зависимостей веб-компонента без каких-либо дублирующих веб-компонентов на основе рекомендаций Semver.
Я просто предполагаю, что мы говорим только о зависимостях, которые совместимы. Например, все зависимости перечисляют Polymer 1.0^ как одноранговую зависимость.
IIUC все зависимости, у которых нет больших разрывов версий, совместимы. Так, например, если один компонент перечисляет paper-input:1.3.0^
и другие списки paper-input:1.5.0^
тогда JSPM может просто установить последнюю версию paper-input
ниже 2.0.0
и компоненты, которые требуют этого, будут использовать эту одну версию. С другой стороны, если есть компонент, который требует paper-input:3.4.0^
тогда линтер может сообщить, что существует транзитивная зависимость, которая потребует наличия дублирующих компонентов.
Я что-то пропустил?
1 ответ
Вы ничего не пропускаете. Если все ваши зависимости соответствуют семантическому версионированию, вы должны быть в безопасности, следуя этой логике.
Всякий раз, когда происходит критическое изменение, основная версия должна быть изменена. Любые изменения в минорной или патч-версии должны по-прежнему обеспечивать полную обратную совместимость пакета с версиями, которые имеют более низкий приоритет и принадлежат к той же основной версии.