Auto: Пользовательское сообщение фиксации удара

Созданный на 20 янв. 2019  ·  18Комментарии  ·  Источник: intuit/auto

Функция: добавьте параметр .autorc для настройки сообщения фиксации, используемого подключаемым модулем NPM при изменении версии пакета.

{
  "bumpHeader": "{{version}}",
  "bumpFooter": "[skip ci]"
}
enhancement

Самый полезный комментарий

auto v4.0.0 вот и мы, лол. Похоже, мне придется разделить крючок publish . Это будет еще один плагин

Все 18 Комментарий

Я мог бы предпочесть, чтобы коммиты не выполнялись (например, 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 ?

  1. Пакет начинается с 0.0.0-разработка

  2. вы запускаете version он возвращает удар на основе PR, он возвращает что угодно (патч, незначительный, крупный) - скажем, это патч

  3. Создание журнала изменений - (0.0.0-development => 0.0.0). Но вы не хотите, чтобы это произошло? Вместо этого добавить под заголовком журнала изменений «0.0.0-development»?

  4. время публикации хуков - 0.0.0-development => 0.0.0 и публикация. но вы хотите, чтобы development был обнаружен и все вместе пропустили этап публикации

  5. сделать выпуск github - вместо создания нового выпуска обновите старый, добавив новые коммиты

  6. Пакет остается в 0.0.0-разработке до ??? пока изменения накапливаются

Два варианта, если вы этого хотите:

  1. Просто не запускайте auto shipit пока не захотите начать выпуск и публикацию. По-прежнему добавляйте ярлыки к своим PR. Когда вы будете готовы, добавьте auto shipit в свой процесс CI, и он будет включать все PR ярлыков в вашем первом выпуске.

  2. Напишите плагин. Такое поведение довольно уникально и на самом деле не соответствует способу управления версиями в npm. Я думаю, вы могли бы сделать плагин для этого. Хотя мне, вероятно, придется добавить пару крючков, чтобы вы могли их использовать.

Пакет с версией 0.0.0-development указывает на следующее:

  • Самая последняя опубликованная версия NPM считается «текущей версией».
  • version в package.json никогда не следует изменять.

Когда должна быть опубликована новая версия NPM, Auto должен увеличивать «текущую версию» с помощью npm version $(auto version) .

В журнале изменений используется «текущая версия» из NPM (вместо package.json ).

Как всегда, для каждой версии NPM создается новый выпуск Github.

Достаточно ли я ясен?

Версия в package.json никогда не должна изменяться

Чтобы публиковать новые версии в NPM, вы должны это изменить. Единственный способ увеличить «текущую версию» и никогда не менять локальную - это:

  • изменить его на текущую версию (NPM)
  • сделать шишку
  • поменять обратно
  • но так как это тег будет удар текущей версии делать ???

Я почти уверен, что понимаю ваш вариант использования.

а. вы не хотите публиковать кучу версий, пока разрабатываете функцию для нескольких PRS
б. как только новая версия должна быть опубликована, вы хотите, чтобы все изменения были включены

На мой взгляд, мы уже даем вам два способа сделать это:

  1. используйте onlyPublishWithReleaseLabel . новые версии не создаются, пока вы не добавите этот ярлык. Таким образом, вы можете смотреть на любой PR / код без метки как VERSION-development

  2. поскольку вы объединяете 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!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги