Когда веб-компоненты совместимы в соответствии со спецификацией 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 ответ

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

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

Другие вопросы по тегам