2015-01-07 1 views
4

у меня есть это в пакете:Решитель решения для метеоритов: почему пакеты обновления «meteor update» понижаются?

api.use([ 
    'kestanous:[email protected]', 
    'kestanous:herald-email', 
    ]); 

Как и ожидалось, Meteor использует версию 1.1.3 пакета Herald.

Если я удаляю@1.1.3 версия, пакет versions.json не меняется.

Но теперь, если я бегу meteor update kestanous:herald, вот что я получаю:

$ meteor update kestanous:herald 

Changes to your project's package version selections from updating package versions: 

kestanous:herald downgraded from 1.1.3 to 1.0.1 

Это не имеет смысла для меня, что обновление пакета будет фактически понизить его. Тем более, что kestanous:herald больше не используется в приложении. Даже незнакомец, несмотря на это, до сих пор нет изменений в файле versions.json.

Так кажется, что я не понимаю, как работает управление версиями пакетов, или что-то не работает правильно?

ответ

0

Я не уверен, что я прав на этом 100%, потому что используемая система довольно странная. & так много изменилось до недавнего времени.

Новая система пакетов Meteor работает над решателем ограничений. Каждая упаковка заявляет версию Meteor, для которой она предназначена, например, если вы разработали ее для Meteor 0.9.2, и вы запускаете ее на Meteor 0.1.0, есть небольшая разница в пакете blaze.

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

Так что это может произойти, если herald имеет ограничение на некоторые из старых пакетов или версии Meteor или имеет зависимость от старого пакета.

Хотя пакет не обязательно должен быть определен явно, он может быть определен неявно от api.versionsFrom("XXX").

Meteor затем обновляет или понижает пакеты соответственно.

Кроме того, допускается разрешающая способность с разрешенными пакетами в зависимости от спецификаций semver, небольшие обновления версии пакета в порядке, но основные из них заставляют понизить рейтинг, поскольку новая версия считается несовместимой. На этом тоже немного discussion.

Это файл package.js для пакета для kestanous:herald:

api.versionsFrom('[email protected]'); 
api.use(['check', 'underscore', 'tracker','accounts-base', 'blaze', 'artwells:[email protected]']); 

Это означает, что все пакеты, в метеоритном проекте будут пытаться быть понижены, так что все они могут быть совместимы с этими другими зависимостями ,

Если вы обновили versionsFrom, то метеор будет более восприимчив к более новым версиям в других пакетах.

https://github.com/Meteor-Reaction/Herald/blob/master/package.js#L9

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