Опишите ошибку
Когда я запускаю 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
Дополнительный контекст
Я как раз собирался подать ту же проблему. В документах неясно переопределение меток по умолчанию. Есть ли способ сказать, что мне нужны только те ярлыки, которые определены в конфигурации, а не ярлыки по умолчанию?
В конфигурации метки есть опция overwrite
, которая заменяет соответствующую метку по умолчанию. IDK, если он будет работать для ярлыков zon-semver. не могли бы вы попробовать? Если в документации нет достаточно ясности по этому поводу, более чем готов принять PR
@hipstersmoothie, глядя на https://intuit.github.io/auto/docs/generated/create-labels, я не вижу ничего подобного. Где документы, относящиеся к этой опции?
А, это здесь: https://intuit.github.io/auto/docs/configuration/autorc#label -customization
@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:
Стоит отметить, что фактическая конфигурация находится в файле 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. Но я не знаю, нужно ли это добавлять где-нибудь еще.
Самый полезный комментарий
@reintroduction Мне очень нравится этот вариант! По умолчанию можно создавать только указанные метки. Новый флаг для включения остальных и использования логики перезаписи. Однако это было бы серьезным изменением в поведении. А как насчет противоположного
--no-include-defaults
?