AVERTISSEMENT: je suis l'auteur de gitchangelog dont je parlerai dans la suite.
Si vous êtes sérieux au sujet de la génération de votre changelog de git log
, vous devriez considérer:
- Le stockage de l'information nécessaire avec un message de validation de la convention. (j'espère ne pas encombrant)
-
Utiliser un script qui utilise git pour tirer parti de votre convention et de sortie le changelog de vos rêves.
le message de validation de la convention de
Ce qui suit sont des suggestions sur ce qui pourrait être utile de penser à l'ajouter à vos messages de commit.
Vous pourriez vous voulez les séparer à peu près à ton s'engage dans de grandes sections:
- par l'intention (par exemple: de nouvelles, corriger, modifier ...)
- par objet (par exemple: doc, de l'emballage, code ...)
- par le public (par exemple: dev, testeur, utilisateurs ...)
De plus, vous pourriez souhaiter pour la balise certains s'engage à:
- en tant que "mineur" s'engage à ne pas obtenir outputed à votre journal des modifications (changements cosmétiques, petite faute de frappe dans les commentaires...)
- "refactor" si vous n'avez pas vraiment tout signifiant les caractéristiques. Ainsi, ce ne devrait pas être aussi partie du changelog affiché à l'utilisateur final, par exemple, mais qui peut être intéressant si vous avez un développeur changelog.
- vous pourriez tag aussi avec "api" pour marquer les changements de l'api ou de la nouvelle api de trucs...
- etc ...etc...
Essayez d'écrire votre message de commit par cibler les utilisateurs (fonctionnalité) aussi souvent que vous le pouvez.
exemple
C'est la norme git log --oneline
, pour montrer comment ces informations pourraient être stockées::
* 5a39f73 fix: encoding issues with non-ascii chars.
* a60d77a new: pkg: added ``.travis.yml`` for automated tests.
* 8a544b6 new: python3 compatibility.
* 57129ba new: much greater performance on big repository by issuing only one shell command for all the commits. (fixes #7)
* 7825e6c chg: dev: moved commit's attribute retrieval out of ``__init__`` towards ``__getattr__``.
* 9f8a5c3 chg: dev: code optimization.
* 6b4b267 chg: dev: refactored out the formatting characters from GIT.
* 197b069 new: dev: reverse ``natural`` order to get reverse chronological order by default. !refactor
* 198d217 new: dev: added a complete reference test.
* 6b891bc new: add utf-8 encoding declaration !minor
Donc, si vous l'avez remarqué, le format que j'ai choisi est:
{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]
Pour voir un réel résultat de sortie, on peut le voir à la fin de la PyPI page de gitchangelog
Comment générer exquis changelog de cette
Ensuite, il est assez facile de faire un changelog complet. Vous pourriez faire votre propre script assez rapidement, ou de l'utilisation gitchangelog
.
Cet outil va générer un changelog (avec découpe de soutien en tant que New
, Fix
...), et est assez configurable à votre propre commettre des conventions. Il prend en charge la sortie de template par Mustache
, Mako templating
, et a une valeur par défaut héritage moteur écrit en raw python ; tous les 3 moteurs ont des exemples de la façon de les utiliser et de sortie peut changelog est aussi celui affiché sur le PyPI page de gitchangelog.
Je suis sûr que vous savez qu'il ya beaucoup d'autres git log
de changelog
outils là-bas aussi.