Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TECH] Linter les titres de PR #5445

Merged
merged 4 commits into from
Jan 6, 2023
Merged

Conversation

yannbertrand
Copy link
Member

@yannbertrand yannbertrand commented Jan 4, 2023

🎄 Problème

Notre guide de contribution impose un format de titre de PR. La validation du respect de formatage n'est validé que par l'humain aujourd'hui.

🎁 Proposition

Implémenter une GitHub Action qui valide cette règle. Je propose de valider uniquement qu'un contexte soit donné entre crochets au début du titre :

\[[A-Z]+\] .+

En effet, il est important pour la génération du changelog. Par contre il n'y a pas nécessairement de ticket Jira associé, donc pas obligatoire de faire cette validation IMO.

🌟 Remarques

J'ouvre une PR sur https://github.com/Slashgear/action-check-pr-title pour proposer un message d'erreur plus lisible quand l'action fail.

🎅 Pour tester

Lire le fil de discussion de cette PR où je pense avoir tout testé :)

@yannbertrand
Copy link
Member Author

pr title check Skipped car en PR en draft.

image

@yannbertrand yannbertrand marked this pull request as ready for review January 4, 2023 14:40
@yannbertrand
Copy link
Member Author

Le titre [TECH] Linter les titres de PR est valide.
image

@yannbertrand yannbertrand marked this pull request as draft January 4, 2023 14:41
@yannbertrand yannbertrand changed the title [TECH] Linter les titres de PR Linter les titres de PR Jan 4, 2023
@yannbertrand
Copy link
Member Author

L'action est de nouveau Skipped car en draft.

@yannbertrand yannbertrand marked this pull request as ready for review January 4, 2023 14:42
@yannbertrand
Copy link
Member Author

Erreur sur le titre car pas de préfixe contexte du style [QUELQUECHOSE]

image

@yannbertrand yannbertrand changed the title Linter les titres de PR [TECH]Linter les titres de PR Jan 4, 2023
@yannbertrand
Copy link
Member Author

Titre invalide car espace manquant après le contexte.

image

@yannbertrand yannbertrand changed the title [TECH]Linter les titres de PR [TECH] Linter les titres de PR Jan 4, 2023
@yannbertrand
Copy link
Member Author

L'action a tourné même si la PR est fermée, il faut filtrer ça.

@yannbertrand yannbertrand reopened this Jan 4, 2023
@yannbertrand yannbertrand changed the title [TECH] Linter les titres de PR [DX] Linter les titres de PR Jan 4, 2023
@yannbertrand
Copy link
Member Author

J'ai eu besoin de retrigger le workflow en changeant le titre puisque les nouveaux commits ne retrigger pas 🙃

@yannbertrand yannbertrand changed the title [DX] Linter les titres de PR (PIX-0000) Linter les titres de PR Jan 4, 2023
@yannbertrand
Copy link
Member Author

Le workflow est Skipped ✌️

image

@yannbertrand yannbertrand reopened this Jan 4, 2023
@yannbertrand
Copy link
Member Author

Le format de préfixe est invalide.

@yannbertrand yannbertrand marked this pull request as draft January 4, 2023 15:29
@yannbertrand yannbertrand changed the title (PIX-0000) Linter les titres de PR [TECH] Linter les titres de PR Jan 4, 2023
@yannbertrand
Copy link
Member Author

C'est toujours Skippé car en draft :). On est bon !

@yannbertrand yannbertrand added the cross-team Toutes les équipes de dev label Jan 4, 2023
@yannbertrand yannbertrand marked this pull request as ready for review January 4, 2023 15:31
@VincentHardouin
Copy link
Member

On peut le mettre non ?

steps:
- uses: Slashgear/action-check-pr-title@v4.0.0
with:
regexp: '\[[A-Z]+\] .+'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
regexp: '\[[A-Z]+\] .+'
regexp: '\[[A-Z]+\] .+\.'

Les titres des PR doivent normalement contenir un . à la fin. Peut-être peut-on l'ajouter facilement ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne suis pas pour car ce point n'apporte rien IMO (perso je l'ai jamais mis)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le point est présent dans le Contributing.md, et permet une cohérence visuelle entre les PR (certaines finissent avec rien, d'autres avec des parenthèses liés au numéro de ticket).
IMO, ca reste une bonne pratique peu coûteuse.

Copy link
Member Author

@yannbertrand yannbertrand Jan 4, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je vois dans les PRs ouvertes en ce moment qu'il y en a beaucoup qui n'ont pas de point. Je ne comprend pas l'argument de la cohérence visuelle ?

Je préfère ne pas trancher le débat dans cette PR si l'avis est partagé en tout cas, donc de laisser libre ou non de le mettre. Ça n'empêchera pas d'avoir ce débat dans une autre PR comme pour d'autres contraintes que l'on souhaiterait ajouter. WDYT ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je suis également pour mettre un point à la fin, je ne le fais pas pour autant à chaque fois. Pour moi un Linter sert à s'assurer/imposer une rigueur sur un format donc ça collerait.
Après je serais d'accord que cette PR n'a pas pour vocation d'imposer ou affirmer une nouvelle règle mais de vérifier une règle déjà bien partagée donc on pourrait passer la PR sans ça.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pour la cohérence, je pensais en particulier au Changelog: https://github.com/1024pix/pix/blob/dev/CHANGELOG.md

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok merci pour la précision :)

On pourrait l'ajouter automatiquement dans la génération du changelog car c'est nous qui l'implémentons ! 😄

On en rediscute dans une autre PR 😉

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Point ajouté automatiquement au changelog avec 1024pix/pix-bot#256

steps:
- uses: Slashgear/action-check-pr-title@v4.0.0
with:
regexp: '\[[A-Z]+\] .+'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si on se concentre sur la partie Tag, est-ce qu'on ne devrait pas plutôt lister les types aussi de tags ?

Suggested change
regexp: '\[[A-Z]+\] .+'
regexp: '\[(TECH|FEATURE|BUGFIX|DOC)\] .+\.'

Qu'en pensez-vous ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La liste des tags est dispo dans le contributing.

Au choix, soit on contraint, soit on laisse libre avec le [A-Z]+ pour inclure DOC et tous les autres mais qui ne servent pas pour générer le changelog (donc tombent dans la section "Autres").

Sur Pix UI certains utilisent [BREAKING CHANGE], je ne pense pas que ce soit la bonne approche, mais c'est un constat qu'on a d'autres tags utilisés au global sur tous les projets.

IMO autant laisser libre sachant que ça n'a pas d'impact.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actuellement, dans Autres, on peut voir :
DOC, CLEANUP, TASK, PERFORMANCE, A11Y, DOCUMENTATON (en plus de DOC), DX, BUG (au lieu de BUGFIX), ADMIN (donc l'app), API, etc.

Pour une première PR, permettre tout me parait OK, mais la fonctionnalité permettrait d'éviter d'avoir des doublons différents, ou alors des info HS (API, etc..).
Ca demande peut être par contre de modifier le contributing pour lister les quelques tags manquants qu'on souhaiterait ajouter.

Certains utilisent deux tags [BUGFIX] [API]: la regex ne l'empêche pas.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M'étant plusieurs fois posé la question pour de l'accessibilité et du Pix UI, je serais pour cadrer les tags.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Voir #5451 pour une discussion sur ce sujet en particulier :)

@yannbertrand
Copy link
Member Author

yannbertrand commented Jan 4, 2023

J'ai revue ma copie sur la syntaxe de la regex qui ne précise pas que le tag doit être en début de ligne, je propose plutôt ça :

^\[[A-Z]+\] 

(avec un espace à la fin)

Qui sera à tester :)

EDIT : testé avec regex101 et validé sur ce titre de PR ✅

@yannbertrand yannbertrand marked this pull request as draft January 4, 2023 18:45
@yannbertrand yannbertrand marked this pull request as ready for review January 4, 2023 18:45
@Slashgear
Copy link

Happy to see that this action could be useful for you! 🫶

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants