Commit guidelines
The content of this document has been moved to: https://navit.readthedocs.io/en/trunk/development/commit_guidelines.html . It is only kept here for archiving purposes. |
Here are the current guidelines if you want to commit something.
Please also read Programming guidelines
'Core' components changes[edit]
Do not modify a 'core' component without discussing it first with the project leads (see team).
Core components include data structures, configuration handling. If you are unsure, just ask.
Commit per feature[edit]
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[edit]
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>[|Optional 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 (bug fix)
- Add (new feature)
- Patch
- Refactoring (does not change behavior of the program)
It allows the changes to be sorted by categories
Component is the component field in the trac. The most common are :
- core
- gui/gtk
- gui/internal
- graphics/gtk
- graphics/qt_qpainter
- graphics/opengl
- mapdriver
- tools
...
The comment part is optional. 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 :)