Ged wrote:
<changelog>
No XML. XML sucks. And knowing all modules in the tree by name sucks as well. Module names can be extracted automatically, and the changelog line copied for each of them, because if the change affects multiple modules, then it's relevant to all of them
Set a commit message template property for the tree that suggests where to put the text that should go in the changelog and how to tell apart from the rest, and leave it at that. The odd commit that doesn't fit the template can be edited by hand, or ignored altogether for the purposes of the changelog ("formatting fix", "revert revision", "fix build" etc.)
My suggestion for the template is:
<changelog line> <bug numbers, comma-separated> -- <detailed commit message, insults, Arch bashing>
For smartasses like me who'll want to affect several modules at once but with a different changelog line for each, provide an override syntax:
[module 1] <changelog line for module 1> <changelog line for module 1> <changelog line for module 1> ... [module 2] <changelog line for module 1> ... <bug numbers> -- <detailed commit message>
Want to get even fancier?
[module 1, module 2] <changelog line for module 1 and 2> [module 3] <changelog line for module 3 and 4> [module 4] ditto ...
All of which is extremely easy to parse with a script. A message that doesn't contain some magic string ("--", or maybe something more distinctive), or that contains some magic string ([formatting], [revert], etc.) will be ignored