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

[BUGFIX] Utiliser uniquement les commits de merges pour les releases. #43

Merged
merged 1 commit into from
Mar 6, 2024

Conversation

VincentHardouin
Copy link
Member

@VincentHardouin VincentHardouin commented Mar 6, 2024

🦄 Problème

Si on regarde, le changelog ou bien les releases GitHub, la section “Montée de version” a un soucis :

Screenshot 2024-03-06 at 14 51 02

Chaque PR faite par Renovate apparait deux fois. Cela est dû au fait que Renovate, a un titre de commit qui va ensuite être répercuté en titre de PR.
J’ai pu modifier la configuration de Renovate pour avoir un commit sous le format conventional-commit et un titre de PR qui correspond à nos standards :

Screenshot 2024-03-06 at 14 53 28

Cependant, cela avait pour conséquence de mettre tout le titre de PR en minuscule, ce qui nous convient pas.
De plus, l’option prTitle est dépréciée :

Screenshot 2024-03-06 at 14 53 28

C’est donc pas très pérenne de se baser dessus.

Je me demande ce que je peux faire du côté de semantic-release et conventional-changelog-pix

Du côté de semantic-release, les commits sont récupérés grâce à une fonction interne getCommits qui ne prend pas d’option de l’extérieur, dommage, car en dessous ça utilise git-log-parser et cette librairie accepte toutes les options de la commande git log dont --merges

Ensuite, du côté de @semantic/commit-analyzer rien à faire la lib itère sur les commits passés par semantic-release, utilise le parser de conventional-changelog-parser et une configuration de parser, pour nous c’est conventional-changelog-pix, puis cela applique les règles fournies en config.

Donc, il faudrait plutôt se pencher sur conventional-changelog-pix, pour ne pas retourner de tag quand c’est pas un commit de merge.

Comment marche conventional-changelog-pix : c’est juste des regex qui sont appliquées par le parser conventional-changelog-parser. C’est d’ailleurs pas si explicite, j’ajoute donc des tests pour améliorer ça.

Par contre, ce qui est embêtant, c’est que notre élément différenciant entre le commit de merge et le commit, c’est qu’on a le numéro de PR dans le cas de la PR de merge. Mais le parser prend un commit et split toutes les lignes du commit pour les analyser, on ne peut donc pas faire une regex qui matcherait et la première ligne et la seconde. C'est donc pas du côté de cette librairie que le souci va être résolu.
Et nous voilà ici.

🤖 Proposition

Actuellement, semantic-release se base sur les commits qui ont des tags pour choisir le type de version, comme ce n'est pas suffisant pour matcher les commits de merges, nous ajoutons pr: '*', pour s'assurer que pr ne soit pas à nulle. (cf: les tests du côté de conventional-changelog-pix qui montre que pr n'est pas toujours rempli)

🌈 Remarques

Ne résoud pas le changelog, mais au moins le choix de version le changelog est fait dans cette PR : 1024pix/conventional-changelog-pix#34

💯 Pour tester

@VincentHardouin VincentHardouin added the 🚀 Ready to Merge Label à ajouter quand une PR est prête à être mergée label Mar 6, 2024
@pix-service-auto-merge pix-service-auto-merge merged commit 80edae7 into main Mar 6, 2024
2 checks passed
@pix-service-auto-merge pix-service-auto-merge deleted the fix-changelog branch March 6, 2024 16:21
github-actions bot pushed a commit that referenced this pull request Mar 6, 2024
## [0.8.6](v0.8.5...v0.8.6) (2024-03-06)

### 🐛 Correction

- [#43](#43) Utiliser uniquement les commits de merges pour les releases.
Copy link

github-actions bot commented Mar 6, 2024

🎉 This PR is included in version 0.8.6 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released 🚀 Ready to Merge Label à ajouter quand une PR est prête à être mergée
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants