Le changelog.md généré n’est pas au format markdown…
#5121
Closed
opened 5 months ago by marcimat
·
14 comments
No Branch/Tag Specified
1.8
1.9.1
1.9.2
2.0
2.1
3.0
3.1
3.2
4.0
4.1
boutons-danger
debug_ecrire_fichier
dev-sortable
dev/autoloader
dev/instituer_ergo
dev_infos_image
fix/valider_url_distante
fix_modifier_login
issue_4101
issue_4678
issue_4705
issue_4717
issue_4946
issue_5016
issue_5056_composer_road
issue_5273
master
refactor_texte_safety
v1.8.3+b
v1.9.1+i
v1.9.2+f
v1.9.2+g
v1.9.2+h
v1.9.2+i
v1.9.2+j
v1.9.2+k
v1.9.2+m
v1.9.2+n
v1.9.2+o
v1.9.2+p
v2.0.0
v2.0.1
v2.0.10
v2.0.11
v2.0.12
v2.0.13
v2.0.14
v2.0.15
v2.0.16
v2.0.17
v2.0.18
v2.0.19
v2.0.2
v2.0.20
v2.0.21
v2.0.22
v2.0.23
v2.0.24
v2.0.25
v2.0.26
v2.0.3
v2.0.5
v2.0.6
v2.0.7
v2.0.8
v2.0.9
v2.1.0
v2.1.1
v2.1.10
v2.1.11
v2.1.12
v2.1.13
v2.1.14
v2.1.15
v2.1.16
v2.1.17
v2.1.18
v2.1.19
v2.1.2
v2.1.20
v2.1.21
v2.1.22
v2.1.23
v2.1.24
v2.1.25
v2.1.26
v2.1.27
v2.1.28
v2.1.29
v2.1.3
v2.1.30
v2.1.4
v2.1.5
v2.1.6
v2.1.7
v2.1.8
v2.1.9
v3.0.0
v3.0.0-alpha.1
v3.0.0-beta
v3.0.0-beta.2
v3.0.0-rc
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.15
v3.0.16
v3.0.17
v3.0.18
v3.0.19
v3.0.2
v3.0.20
v3.0.21
v3.0.22
v3.0.23
v3.0.24
v3.0.25
v3.0.26
v3.0.27
v3.0.28
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
v3.1.0
v3.1.0-alpha
v3.1.0-beta
v3.1.0-rc
v3.1.0-rc.2
v3.1.0-rc.3
v3.1.1
v3.1.10
v3.1.11
v3.1.12
v3.1.13
v3.1.14
v3.1.15
v3.1.2
v3.1.3
v3.1.4
v3.1.5
v3.1.6
v3.1.7
v3.1.8
v3.1.9
v3.2-alpha.1
v3.2.0
v3.2.0-alpha.1
v3.2.0-beta
v3.2.0-beta.2
v3.2.0-beta.3
v3.2.1
v3.2.10
v3.2.11
v3.2.12
v3.2.13
v3.2.14
v3.2.15
v3.2.16
v3.2.2
v3.2.3
v3.2.4
v3.2.5
v3.2.6
v3.2.7
v3.2.8
v3.2.9
v4.0.0
v4.0.0-alpha
v4.0.0-beta
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v4.0.5
v4.0.6
v4.0.7
v4.0.8
v4.1.0
v4.1.0-alpha
v4.1.0-beta
v4.1.0-rc
v4.1.1
v4.1.2
v4.1.3
v4.1.4
v4.1.5
Labels
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
Apply labels
Clear labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Ça s’affiche mal : il faut générer une autre écriture plus conforme.
https://git.spip.net/spip/spip/src/branch/4.1/CHANGELOG.md
https://keepachangelog.com/fr/1.0.0/ par ailleurs est de très bon conseil.
Cela dit pas facile de tenir un changelog actuellement qui ne soit pas une liste moche de commits.
Ou il faut s’y tenir directement en créant un CHANGELOG.md dans chaque master, reporter chaque élément après "unreleased" dans les branches concernées éventuellement.
L’avantage est que ça peut faciliter ensuite la création de l’article de blog d’une sortie…
Ça voudrait dire aussi ne plus mettre le changelog de chaque plugin-dist dans celui du core pour que chaque projet gère le sien.
Dans un tout premier temps on pourrait utiliser quelque chose comme ça :
Il y a :
Il y a plusieurs problèmes, et à mon avis ça ne va pas à terme.
Bon, déjà je ne sais pas le générer automatiquement (il faut que je reprenne mes outils de génération de release pour adapter, et ça fait une passe manuelle facheuse forcément)
Effectivement ce changelog ne devrait concerner que ce projet spip/spip et pas les plugins-dist qui devraient donc eux aussi avoir leurs CHANGELOG.md
On peut surveiller facilement les releases de SPIP, mais les tags posés sur les plugins-dist sont plus fréquents et risquent, si le changelog est manuel de ne pas être renseigné correctement, d’autant plus entre le master et les branches respectives…
Pour releaser, je pourrais forcer de vérifier que la version en cours du plugin dist a bien un changelog pour elle (ça risque d’être cocasse), et en même temps est-ce vraiment à mon script de release de s’en occuper… parce que bon… ça serait mieux que le changelog soit géré directement proprement dans chaque plugin.
Mais bon, par exemple faire un report de chaine de langue (avec mes outils de release) va devoir faire créer un nouveau tag + version au plugin concerné, même si aucun autre changement n’a eu lieu (ce qui reste logique) : mais du coup il faudrait une entrée de changelog (donc éditer le fichier plus ou moins à la main je présume) et c’est donc du temps à passer.
Mais c’est aussi du temps qui simplifie grandement je pense l’écriture du billet de blog ensuite (il suffit de récolter les différents changelog qui sont déjà humainement écrits)
A priori il «suffit» de conserver dans CHANGELOG.md le changelog de X.0.0 (le dernier X), et de n’avoir les X-1 que dans les branches correspondantes (si le changelog devient trop long notamment)
Dans ta proposition je suppose qu'il faudrait ajouter l'id du commit
bah justement si tu as lu https://keepachangelog.com/fr/1.0.0/ ça indique en gros (et plusieurs fois) "Ne laissez pas vos amis utiliser les logs git comme changelogs"
Une entrée de log de changelog peut d’ailleurs concerner plusieurs commits
Mais également surtout ça me semble encore plus compliqué pour des PR : car la PR qui viserait à corriger un truc devrait à la fois corriger le truc, et ajouter l’entrée de changelog (dont elle ne connait pas le hash de commit — ou alors à faire 2 commits séparés peut être)
Autant je trouve intéressant de citer les numéros de tickets #5121 s’il y en a, autant le hash de commit… bon… d’autant que c’est pas le même hash lorsqu’on cherry-pick pour une autre branche… il faudrait donc éditer encore le changelog… pff
Ie: ce n’est pas parce que c’était comme ça avant qu’il faut refaire pareil quitte à changer :)
Avec deux lignes de plus en tête de la liste ça affiche bien un tableau ici même si ça ne répond pas à la question de fond (sur laquelle je reviendrai dès que possible).
77b30f66d
Je pige pas. Les explications fournies dans le .md ne sont jamais aussi complètes et précises que la visu du commit concerné. Les explications du .md sont surtout une information générale et une invitation à aller voir ce qui a été fait précisément dans le code, si on est intéressé. Or il n'y a pas toujours de PR ou de tickets indiqués (même si ce serait bien). Et si ni le commit ni la PR ni le ticket ne sont indiqué, ça devient la course au trésor pour trouver le changement de code...
Disons le autrement : l’énergie qu’on déploierait (nous dévs, a priori ça ne sera personne d’autre) à écrire un changelog exhaustif avec les sha de commit, qui ne soit pas la même liste que le
git log
(que ça on sait générer automatiquement forcément !) en vaut il le coup vraiment… alors que tu peux bien tout autant lire le git log justement (sans avoir besoin de les mettre dans un fichier de changelog par ailleurs)…On peut aussi regarder chez nos amis (WP, Drupal, Prestashop, n’en ont pas dans leur repo principal)
Une bonne partie semble passer par des tickets.
OK, ça je pige bien :-)
Et dans les exemples le ticket est toujours associés, or le ticket fournit tout ce qu'il faut pour accéder au détail.
Dans spip toutefois ya pas toujours un ticket alors le commit est requis pour approfondir dans ces cas là. Du coup il serait possible de copier le
git log
concerné dans un fichier texte et simplement intégrer au releaselog.md un lien (unique pour tout le .md) vers ce fichier ? ou ajouter legit log
en complément à la fin.Bonne idée, à documenter dans la foulée.
Ça me semble aussi être une bonne pratique à encourager pour les plugins de la communauté, quand on fait des ajouts fonctionnels mais qu'on n'a pas les droits d'édition sur l'article de documentation, il faut parfois un certain temps avant que ça finisse dedans.
À terme si le format le permet, ça pourrait même permettre d'afficher les derniers changements directement dans svp non ?
Concernant la documentation, je crois sincèrement qu'une autre bonne pratique serait d'avoir un README.md pour chaque dépôt. Mais c'est un autre débat ^^
Pour le readme, oui, aussi.
La proposition initiale était de l'afficher sur contrib mais uniquement en fallback, en absence d'article SPIP.
Mais à discuter dans un autre ticket :)
Cf #5042 pour le Readme.
Et oui je pense qu’il faut indiquer un kit de bonne pratique et surtout montrer l’exemple sur les plugins-dist.
Ça vaut donc pour le Readme, changelog, license, (et peut être d’autres plus techniques .editorconfig, ...)
On peut fermer celui là, c’est intégré.