Функция: добавьте параметр .autorc
для настройки сообщения фиксации, используемого подключаемым модулем NPM при изменении версии пакета.
{
"bumpHeader": "{{version}}",
"bumpFooter": "[skip ci]"
}
Я мог бы предпочесть, чтобы коммиты не выполнялись (например, semantic-release
делает это):
{
"skipBumpCommit": true
}
С отключенными фиксациями bump последняя версия NPM является источником истины (или, может быть, она уже работает таким образом?), А поле «версия» в package.json
может быть установлено в 0.0.0-development
или подобное.
Skip CI отличается от Travis? без этого в сообщениях коммита вы можете легко попасть в цикл
auto
будет использовать локальную версию и опубликованную версию и выбирать более высокую, чтобы избежать ошибок npm. Этого достаточно?
Skip CI отличается от Travis? без этого в сообщениях коммита вы можете легко попасть в цикл
Я не совсем уверен. Если это требуется в заголовке коммита, пусть будет так. 😆
auto
будет использовать локальную версию и опубликованную версию и выбирать более высокую, чтобы избежать ошибок npm. Этого достаточно?
Да неужели? Отлично. В этом случае не создается фиксация удара?
Нет, в этом случае мы увеличиваем опубликованную версию, потому что вы можете опубликовать ее поверх старой.
У меня проблемы с визуализацией того, как skipBumpCommit
будет работать или как будет выглядеть конечный результат. Чтобы запустить shipit
вам нужно каким-то образом изменить версию, поэтому я не вижу, как вы могли бы выйти из этой фиксации.
Что вы думаете о том, что shipit
пропустил фиксацию ударника, когда версия в package.json
выглядит как 0.0.0-development
?
Пакет начинается с 0.0.0-разработка
вы запускаете version
он возвращает удар на основе PR, он возвращает что угодно (патч, незначительный, крупный) - скажем, это патч
Создание журнала изменений - (0.0.0-development => 0.0.0). Но вы не хотите, чтобы это произошло? Вместо этого добавить под заголовком журнала изменений «0.0.0-development»?
время публикации хуков - 0.0.0-development => 0.0.0 и публикация. но вы хотите, чтобы development
был обнаружен и все вместе пропустили этап публикации
сделать выпуск github - вместо создания нового выпуска обновите старый, добавив новые коммиты
Пакет остается в 0.0.0-разработке до ??? пока изменения накапливаются
Два варианта, если вы этого хотите:
Просто не запускайте auto shipit
пока не захотите начать выпуск и публикацию. По-прежнему добавляйте ярлыки к своим PR. Когда вы будете готовы, добавьте auto shipit
в свой процесс CI, и он будет включать все PR ярлыков в вашем первом выпуске.
Напишите плагин. Такое поведение довольно уникально и на самом деле не соответствует способу управления версиями в npm. Я думаю, вы могли бы сделать плагин для этого. Хотя мне, вероятно, придется добавить пару крючков, чтобы вы могли их использовать.
Пакет с версией 0.0.0-development
указывает на следующее:
version
в package.json
никогда не следует изменять.Когда должна быть опубликована новая версия NPM, Auto должен увеличивать «текущую версию» с помощью npm version $(auto version)
.
В журнале изменений используется «текущая версия» из NPM (вместо package.json
).
Как всегда, для каждой версии NPM создается новый выпуск Github.
Достаточно ли я ясен?
Версия в package.json никогда не должна изменяться
Чтобы публиковать новые версии в NPM, вы должны это изменить. Единственный способ увеличить «текущую версию» и никогда не менять локальную - это:
Я почти уверен, что понимаю ваш вариант использования.
а. вы не хотите публиковать кучу версий, пока разрабатываете функцию для нескольких PRS
б. как только новая версия должна быть опубликована, вы хотите, чтобы все изменения были включены
На мой взгляд, мы уже даем вам два способа сделать это:
используйте onlyPublishWithReleaseLabel
. новые версии не создаются, пока вы не добавите этот ярлык. Таким образом, вы можете смотреть на любой PR / код без метки как VERSION-development
поскольку вы объединяете PR для большой функции, используйте skip-release
пока не будете готовы к версии, а затем просто объедините PR. Новый выпуск содержит все пропущенные PR. В этом случае вы можете посмотреть на добавление метки skip-release
как на указание того, что ваша версия - VERSION-development
Чем это отличается от желаемого поведения?
Мне кажется, это сводится к следующему: вы хотите добавить -development
к своей версии, чтобы начать пропускать выпуски, и удалите его, когда будете готовы к выпуску всех изменений сразу.
для выполнения моего последнего предложения вы, вероятно, могли бы создать плагин, который использует beforeShipit
для проверки наличия -development
в версии и выдает ошибку, если она присутствует. Это предотвратит продвижение shipit
пока вы не удалите -development
.
Единственная проблема, которую я вижу в этом, заключается в том, что это также приведет к сбою работы CI.
Интересная интерпретация, но не совсем то, что я задумал. 😅
Я в основном описываю, как работает semantic-release
.
Я _должен_ сказать: «Версия в package.json
изменяется только временно для успешного выполнения npm publish
» (вместо «Версия в package.json
никогда не должна изменяться»). Все, что я действительно пытаюсь сделать, - это вообще избежать фиксации bump. :)
Итак, вы окажетесь в таком состоянии:
репо: есть только версия 0.0.0-dev
npm: все время имеет настоящую версию (это то, что используется для чего угодно)
верный?
Вроде как
if (auto.options.skipBumpCommit) {
// get published version
// change local version to publish
} else {
await execPromise('npm', [
'version',
latestBump || version,
'-m',
'"Bump version to: %s [skip ci]"'
]);
}
await setTokenOnCI();
await execPromise(
'npm',
!isPrivate && isScopedPackage
? ['publish', '--access', 'public']
: ['publish']
);
if (auto.options.skipBumpCommit) {
// change local version back to DEV
}
await execPromise('git', [
'push',
'--follow-tags',
'--set-upstream',
'origin',
'$branch'
]);
}
Да, хорошо выглядит!
auto
v4.0.0 вот и мы, лол. Похоже, мне придется разделить крючок publish
. Это будет еще один плагин
Если вы хотите, вы можете сейчас встроить эту функцию в Auto и подождать, чтобы разделить хук publish
пока он не понадобится другому плагину. 😛
Теперь это должно быть возможно через плагин с # 247 (способность semver). Сообщение о фиксации требует небольшого изменения конфигурации и на самом деле не дает вам многого. Закрытие, но открыты для PR!
Самый полезный комментарий
auto
v4.0.0 вот и мы, лол. Похоже, мне придется разделить крючокpublish
. Это будет еще один плагин