Auto: La création d'étiquettes ajoute des étiquettes par défaut indésirables

Créé le 22 avr. 2021  ·  15Commentaires  ·  Source: intuit/auto

Décrivez le bogue
Lorsque j'exécute npx auto create-labels et qu'une configuration d'étiquette donnée est définie dans mon package.json, je m'attendrais à ce que seules ces étiquettes soient créées, PAS les étiquettes par défaut supplémentaires définies par auto. C'était le cas, mais quelque part le long de la ligne a cessé de fonctionner correctement.

Reproduire

En utilisant la configuration suivante :

"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"
      }
    ]
  }

Voici la sortie :

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

Comportement prévisible

Seules les étiquettes décrites dans la configuration ci-dessus seraient créées. Tout ce qui se trouve après l'étiquette upgrade dans la liste de sortie ci-dessus est indésirable et ne doit pas être créé.

Captures d'écran

Informations environnementales :

Environment Information:

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

✔ Labels configured on GitHub project

Contexte supplémentaire

bug released

Commentaire le plus utile

@reintroducing J'aime beaucoup cette option ! La valeur par défaut ne peut être que de créer des étiquettes spécifiées. Nouveau drapeau pour inclure les autres et utiliser la logique d'écrasement. Ce serait cependant un changement radical de comportement. Et le contraire --no-include-defaults ?

Tous les 15 commentaires

J'étais sur le point de déposer le même problème. Les documents ne sont pas clairs sur le remplacement des étiquettes par défaut. Existe-t-il un moyen de dire que je veux uniquement les étiquettes définies dans la configuration et aucune par défaut ?

Il existe une option overwrite sur la configuration de l'étiquette qui remplacera l'étiquette par défaut correspondante. IDK si cela fonctionnera pour les étiquettes zon-semver. pourriez-vous essayer? Si les documents ne sont pas assez clairs à ce sujet, plus que disposés à accepter un PR

@hipstersmoothie en regardant https://intuit.github.io/auto/docs/generated/create-labels je ne vois rien de cette nature. Où est la doc relative à cette option ?

@hipstersmoothie Donc, en regardant ces documents, je suppose que je ne suis pas clair sur la fonctionnalité de cette option. Je suppose que si j'ajoute cela à chacune de mes étiquettes dans ma configuration, cela écraserait simplement les étiquettes major , minor et patch par les miennes, mais pas effacer les autres qui sont créés en plus de ceux-ci. Je pense qu'un ajout intéressant serait d'ajouter une option à la commande create labels qui dit include-defaults et définie sur true/false (true par défaut si vous souhaitez conserver la compatibilité descendante). Pensées?

Je suis d'accord avec @reintroducing. Je connaissais l'option overwrite , mais il ne s'agit que d'ajuster les étiquettes par défaut si je la comprends correctement. Nous voulons une option pour créer _uniquement_ les étiquettes que nous avons configurées.

@reintroducing J'aime beaucoup cette option ! La valeur par défaut ne peut être que de créer des étiquettes spécifiées. Nouveau drapeau pour inclure les autres et utiliser la logique d'écrasement. Ce serait cependant un changement radical de comportement. Et le contraire --no-include-defaults ?

@hipstersmoothie oui, désolé mon explication n'était pas claire, je suggérais la même chose que vous mais à l'envers et ce serait vrai par défaut, lol, pour éviter un changement radical. le vôtre est en fait plus propre et s'aligne mieux sur la façon dont toutes les autres options sont effectuées. Je suis tout à fait pour !

Je n'aurai peut-être pas à y arriver avant le week-end. Si vous soumettez un PR, j'examinerai et fusionnerai les invites

J'ai essayé de le réparer : https://github.com/intuit/auto/pull/1966 , mais d'une manière un peu différente. Voir l'explication là-bas.


:rocket: Le numéro est sorti en v10.26.0 :rocket:

@laughedelic @hipstersmoothie @adierkens Je viens d'essayer la mise à niveau vers cela et je vois le problème suivant dans CI où nous créons automatiquement des canaris sur un nouveau PR :

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

Il convient de noter que la configuration réelle se trouve dans un fichier packages/auto/config.json et est étendue à la racine de notre référentiel en utilisant ce qui suit :

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

Cependant, cela fonctionnait parfaitement bien avant la mise à jour vers la dernière version.

Voici le fichier config.json complet :

{
  "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"
    }
  ]
}

Est-il possible que la nouvelle option doive être ajoutée au validateur et que ce soit aussi simple que cela ? https://github.com/intuit/auto/blob/main/packages/core/src/types.ts#L54

Est-il possible que la nouvelle option doive être ajoutée au validateur et que ce soit aussi simple que cela ? https://github.com/intuit/auto/blob/main/packages/core/src/types.ts#L54

C'est logique! Je n'étais pas au courant.

@reintroducing, je l'ai ajouté ici : https://github.com/intuit/auto/pull/1971. Mais je ne sais pas s'il faut l'ajouter ailleurs.

Cette page vous a été utile?
0 / 5 - 0 notes