Commit guidelines

From Navit's Wiki
Revision as of 19:55, 25 December 2011 by Sleske (talk | contribs) (Commit per feature)
Jump to: navigation, search

Here are the current guidelines if you want to commit something. Please also read Programming guidelines

'Core' components changes

Do not modify a 'core' component without discussing it first with the project leads.

Core components include data structures, configuration handling. If you are unsure, just ask.

Commit per feature

When committing, try to have one commit per feature (or per meaningful part of a larger feature). The goal is to always have working code; at least make sure each commit leaves the repository in a compilable state.

Also avoid putting multiple, independent changes into one commit. Thus if you have multiple, independent changes in your local working copy, avoid committing a whole folder at once, especially Navit's sourcecode root. Instead, explicitly select the files for each commit.

Format of the commit log

Since we are too lazy to maintain a changelog, we have a script which parses the commit logs and generate a changelog for us.

We have agreed about using the following syntax :

<Action>:<component>:<log message>[|Optionnal comments]

Examples :

Fix:Core:Fixed nasty bug in ticket #134
Fix:GTK:Fixed nasty bug about destination button|Thanks someguy for the patch!

Action can be something like:

  • Fix
  • Add
  • Patch

It allows the changes to be sorted by categories

Component is the component field in the bug tracker. The most common are :

  • core
  • gui/gtk
  • gui/internal
  • graphics/gtk
  • graphics/qt_qpainter
  • graphics/opengl
  • mapdriver
  • tools


The comment part is optionnal. Useful for when applying a patch for example, and giving credits. The part after | will not appear in the wiki.

About the log message, it's up to you :)