Auto: При создании метки добавляются нежелательные метки по умолчанию

Созданный на 22 апр. 2021  ·  15Комментарии  ·  Источник: intuit/auto

Опишите ошибку
Когда я запускаю npx auto create-labels и имею заданную конфигурацию метки, определенную в моем package.json, я ожидаю, что будут созданы только эти метки, а НЕ дополнительные метки по умолчанию, определенные с помощью auto. Раньше это было так, но где-то по ходу дела перестали работать правильно.

Воспроизводить

Используя следующую конфигурацию:

"auto": {
    "baseBranch": "master",
    "prereleaseBranches": [
      "next"
    ],
    "plugins": [
      [
        "npm",
        {
          "legacyAuth": true,
          "setRcToken": false
        }
      ],
      "released",
      "microsoft-teams"
    ],
    "shipit": {
      "noChangelog": true
    },
    "labels": [
      {
        "name": "breaking",
        "changelogTitle": "🚨  Breaking Changes",
        "description": "Backwards incompatible enhancement or feature.",
        "releaseType": "major",
        "color": "#c5000b"
      },
      {
        "name": "feature",
        "changelogTitle": "🚀  Features",
        "description": "A new feature.",
        "releaseType": "minor",
        "color": "#00ff00"
      },
      {
        "name": "build",
        "changelogTitle": "📦  Build Process",
        "description": "Changes to the build process.",
        "releaseType": "patch",
        "color": "#4a4a4a"
      },
      {
        "name": "chore",
        "changelogTitle": "🏗  Miscellaneous",
        "description": "Additional, uncategorized changes.",
        "releaseType": "patch",
        "color": "#ff00ff",
        "default": true
      },
      {
        "name": "ci",
        "changelogTitle": "🔖  Continuous Integration",
        "description": "Changes to CI configuration files and scripts.",
        "releaseType": "patch",
        "color": "#f1a60e"
      },
      {
        "name": "docs",
        "changelogTitle": "📖  Documentation",
        "description": "Documentation updates and changes.",
        "releaseType": "patch",
        "color": "#870048"
      },
      {
        "name": "fix",
        "changelogTitle": "🐛  Bug Fixes",
        "description": "A bug fix.",
        "releaseType": "patch",
        "color": "#6000ff"
      },
      {
        "name": "perf",
        "changelogTitle": "⚡️  Performance",
        "description": "A code change that improves performance.",
        "releaseType": "patch",
        "color": "#00e4ff"
      },
      {
        "name": "refactor",
        "changelogTitle": "♻️  Refactoring",
        "description": "A code change that neither fixes a bug nor adds a feature.",
        "releaseType": "patch",
        "color": "#00b58d"
      },
      {
        "name": "revert",
        "changelogTitle": "🚧  Reverting",
        "description": "Reverts a previous commit.",
        "releaseType": "patch",
        "color": "#ff9000"
      },
      {
        "name": "style",
        "changelogTitle": "🎨  Style",
        "description": "Code style (white-space, formatting, missing semi-colons, etc).",
        "releaseType": "patch",
        "color": "#0051d8"
      },
      {
        "name": "test",
        "changelogTitle": "✅  Testing",
        "description": "Adding missing tests or correcting existing tests.",
        "releaseType": "patch",
        "color": "#127f00"
      },
      {
        "name": "upgrade",
        "changelogTitle": "⚙️  Dependencies",
        "description": "Dependency upgrades.",
        "releaseType": "minor",
        "color": "#00787f"
      }
    ]
  }

Это результат:

Created labels: breaking, feature, build, chore, ci, docs, fix, perf, refactor, revert, style, test, upgrade, major, minor, patch, skip-release, internal, documentation, tests, dependencies, performance, released, prerelease

Ожидаемое поведение

Будут созданы только ярлыки, указанные в приведенной выше конфигурации. Все, что находится после метки upgrade в приведенном выше списке вывода, является нежелательным и не должно создаваться.

Скриншоты

Информация об окружающей среде:

Environment Information:

"auto" version: v10.25.1
"git"  version: v2.29.2
"node" version: v12.13.0

✔ Labels configured on GitHub project

Дополнительный контекст

bug released

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

@reintroduction Мне очень нравится этот вариант! По умолчанию можно создавать только указанные метки. Новый флаг для включения остальных и использования логики перезаписи. Однако это было бы серьезным изменением в поведении. А как насчет противоположного --no-include-defaults ?

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

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

В конфигурации метки есть опция overwrite , которая заменяет соответствующую метку по умолчанию. IDK, если он будет работать для ярлыков zon-semver. не могли бы вы попробовать? Если в документации нет достаточно ясности по этому поводу, более чем готов принять PR

@hipstersmoothie, глядя на https://intuit.github.io/auto/docs/generated/create-labels, я не вижу ничего подобного. Где документы, относящиеся к этой опции?

@hipstersmoothie Итак, глядя на эти документы, мне кажется, я не понимаю, как функционирует эта опция. Я бы предположил, что если я добавлю это ко всем своим ярлыкам в моей конфигурации, он просто перезапишет ярлыки major , minor и patch моими, но не очищать другие, которые создаются в дополнение к этим. Я думаю, что хорошим дополнением было бы добавить параметр к команде create labels который говорит include-defaults и установлен в true / false (true по умолчанию, если вы хотите сохранить обратную совместимость). Мысли?

Я согласен с @reintroduction. Я знал о параметре overwrite , но он касается только настройки меток по умолчанию, если я правильно его понимаю. Нам нужна возможность создавать _только_ метки, которые мы настроили.

@reintroduction Мне очень нравится этот вариант! По умолчанию можно создавать только указанные метки. Новый флаг для включения остальных и использования логики перезаписи. Однако это было бы серьезным изменением в поведении. А как насчет противоположного --no-include-defaults ?

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

Возможно, мне не придется добираться до этого до выходных. Если вы отправите PR, я просмотрю и объединю запросы

Попытался исправить: https://github.com/intuit/auto/pull/1966 , но немного по-другому. Смотрите объяснение там.


: rocket: Проблема была выпущена в v10.26.0 : rocket:

@laughedelic @hipstersmoothie @adierkens Я только что попробовал выполнить обновление до этого и вижу следующую проблему в CI, когда мы автоматически создаем канарейки в новом PR:

Screen Shot 2021-04-29 at 2 32 48 PM

Стоит отметить, что фактическая конфигурация находится в файле packages / auto / config.json и расширяется в корне нашего репо, используя следующее:

"auto": {
    "extends": "./packages/auto/config.json"
  },

Однако до обновления до последней версии это работало отлично.

Вот полный файл config.json:

{
  "baseBranch": "master",
  "noDefaultLabels": true,
  "prereleaseBranches": ["next"],
  "plugins": [
    [
      "npm",
      {
        "legacyAuth": true,
        "setRcToken": false
      }
    ],
    "released",
    "microsoft-teams"
  ],
  "shipit": {
    "noChangelog": true
  },
  "labels": [
    {
      "name": "breaking",
      "changelogTitle": "🚨  Breaking Changes",
      "description": "Backwards incompatible enhancement or feature.",
      "releaseType": "major",
      "color": "#c5000b"
    },
    {
      "name": "feature",
      "changelogTitle": "🚀  Features",
      "description": "A new feature.",
      "releaseType": "minor",
      "color": "#00ff00"
    },
    {
      "name": "build",
      "changelogTitle": "📦  Build Process",
      "description": "Changes to the build process.",
      "releaseType": "patch",
      "color": "#4a4a4a"
    },
    {
      "name": "chore",
      "changelogTitle": "🏗  Miscellaneous",
      "description": "Additional, uncategorized changes.",
      "releaseType": "patch",
      "color": "#ff00ff",
      "default": true
    },
    {
      "name": "ci",
      "changelogTitle": "🔖  Continuous Integration",
      "description": "Changes to CI configuration files and scripts.",
      "releaseType": "patch",
      "color": "#f1a60e"
    },
    {
      "name": "docs",
      "changelogTitle": "📖  Documentation",
      "description": "Documentation updates and changes.",
      "releaseType": "patch",
      "color": "#870048"
    },
    {
      "name": "fix",
      "changelogTitle": "🐛  Bug Fixes",
      "description": "A bug fix.",
      "releaseType": "patch",
      "color": "#6000ff"
    },
    {
      "name": "perf",
      "changelogTitle": "⚡️  Performance",
      "description": "A code change that improves performance.",
      "releaseType": "patch",
      "color": "#00e4ff"
    },
    {
      "name": "refactor",
      "changelogTitle": "♻️  Refactoring",
      "description": "A code change that neither fixes a bug nor adds a feature.",
      "releaseType": "patch",
      "color": "#00b58d"
    },
    {
      "name": "revert",
      "changelogTitle": "🚧  Reverting",
      "description": "Reverts a previous commit.",
      "releaseType": "patch",
      "color": "#ff9000"
    },
    {
      "name": "style",
      "changelogTitle": "🎨  Style",
      "description": "Code style (white-space, formatting, missing semi-colons, etc).",
      "releaseType": "patch",
      "color": "#0051d8"
    },
    {
      "name": "test",
      "changelogTitle": "✅  Testing",
      "description": "Adding missing tests or correcting existing tests.",
      "releaseType": "patch",
      "color": "#127f00"
    },
    {
      "name": "upgrade",
      "changelogTitle": "⚙️  Dependencies",
      "description": "Dependency upgrades.",
      "releaseType": "minor",
      "color": "#00787f"
    }
  ]
}

Возможно ли, что новую опцию нужно добавить в валидатор, и это так просто? https://github.com/intuit/auto/blob/main/packages/core/src/types.ts#L54

Возможно ли, что новую опцию нужно добавить в валидатор, и это так просто? https://github.com/intuit/auto/blob/main/packages/core/src/types.ts#L54

Это имеет смысл! Я не знал об этом.

@reintroduction Я добавил его сюда: https://github.com/intuit/auto/pull/1971. Но я не знаю, нужно ли это добавлять где-нибудь еще.

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