Skip to content

ChangeLog Format

Erik Massop edited this page Nov 4, 2017 · 1 revision

This proposal is now a de-facto standard in the XMMS2 Development Process.

When code in one of the XMMS2 code trees has been modified, the commit message should have one of the several following tags in the format : :

  • BUG(n):
    • Refer to a specific bug report in mantis
  • FEATURE(n):
    • Refer to a specific feature request in mantis
  • OTHER
    • Changes that do not have corresponding entries in mantis - SHOULD BE AVOIDED!
    • Reserve this for minor changes that don't affect functionality: code cleanups, spelling fixes, etc.
  • RELEASE
    • For commits that denote release-status code.

The commit message may also contain the following tags:

  • PLUGINMINOR
    • Backwards but not forward compatible changes in some plugin ABI
  • PLUGINMAJOR
    • Non-backwards compatible changes in some plugin ABI
  • CLIENTMINOR
    • Backwards but not forward compatible changes in clientlib ABI
  • CLIENTMAJOR
    • Non-backwards compatible changes in clientlib ABI
  • PYTHONMINOR
    • Backwards but not forward compatible changes in clientlib ABI
  • PYTHONMAJOR
    • Non-backwards compatible changes in clientlib ABI
  • PROTOCOL
    • Changes in client/server protocol requires new clientlib. Does NOT imply changes in the clientlib ABI!

Original Proposal

This is the original proposal text - not all proposed tags are now used.

When you have done a change to the git tree and want to commit it. The commit message should have tags as follows:

:Text

Where TAG should be one of the following:

  • BUG: Fix for a bug filed in mantis, should also refer to that bug BUG(177) - Fixed chrashbug in medialib

  • FEATURE: general feature added in the daemon. Since feature requests are also filed on the bug tracker, this tag should also be followed by a bug number.

  • CLIENTLIB: important if you change anything in the clientlib. this will be tracked by bindings and client developers.

  • OTHER: a change that won't be propagated in the ChangeLog. mostly unimportant things like spelling mistakes.

  • DOC: documentation / comment updates.

  • MAJOR or MINOR:
    • PLUGINMINOR: backwards but not forward compatible changes in some plugin ABI
    • PLUGINMAJOR: non backwards compatible changes in some plugin ABI
    • CLIENTMINOR backwards but not forward compatible changes in clientlib ABI
    • CLIENTMAJOR non backwards compatible changes in clientlib ABI
    • PYTHONMINOR backwards but not forward compatible changes in python bindings
    • PYTHONMAJOR non backwards compatible changes in python bindings
  • PROTOCOL changes in client/server protocol - requires new clientlib. does NOT imply changes in the in the clientlib ABI!

Perhaps the following tags might also be useful:

  • CLI: command line client
  • ALSA, OSS, VORBIS (plugin name): changes to various plugins (src/plugins)
  • RUBY: changes to Ruby bindings
  • C# binding? (this category is represented on Mantis, I don't know if it's still valid)
  • MLIB: changes to medialib (including sqlite?)
  • SCONS: changes to scons conf/build system
  • IPC: changes to IPC layer
  • TRANSPORT, DECODER, OUTPUT: changes to these modules...
  • CONFIG: changes to daemon config system
  • PLAYLIST: changes to playlist module

Perhaps not so useful, but I'll list them anyway...

  • VIS: visualisation data
  • HEADER: changes to include files?

See Also

Clone this wiki locally