]> git.street.me.uk Git - andy/viking.git/blobdiff - HACKING
Fix usage of directory "doc/reference" missing even it is used in configure.ac. Autom...
[andy/viking.git] / HACKING
diff --git a/HACKING b/HACKING
index 59902651f921356c83bedf0cf41ba2f354f2d82d..bb4345ee4fc4c674bc8d942cc21f2b783d6a17d7 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -1,3 +1,29 @@
+This file is meant to summarize the Viking development policies.
+
+####
+#### Also check information in the Wiki:
+#### http://sourceforge.net/apps/mediawiki/viking/index.php?title=Main_Page
+####
+
+Clean commits
+=============
+
+Commits/patches should be as fine-grained as possible (and no finer). Every
+distinct change should be in its own commit and every commit should be a
+meaningful change on its own.
+
+Preferred Code Contribution Methods
+===================================
+
+Since the project uses git for source control, patches that utilize git (especially for patch sets) are preferred in this order:
+* Commits pushed to a publically accessible git host (e.g. GitHub, Gitorious, etc...)
+   - This enables commits to be easily managed such as pulling, merging or cherry-picking
+* Email git diffs to the dev mailing list - use 'git format-patch' method
+* Plain diffs can be emailed to the dev mailing list and/or stored in the SourceForge Patch Tracker for Viking.
+
+Coding style
+============
+
 Naming:
 A "module" is a .c file.
 
@@ -7,7 +33,26 @@ Both are followed by the module name. Unless of course the function is static, i
 
 All (well, practically all) global constants and macros start with "VIK_" and then the module name.
 
-----
+Coding Checks
+=============
+
+Code should compile with the minimum number of warnings (ideally none).
+
+Code should pass static analysis with defaults for 'cppcheck' (http://sourceforge.net/projects/cppcheck/) with no errors.
+
+ATM there is one deliberate error in vikgpslayer.c designed to prevent building if the code encounters a GPSD version we don't handle. Something like:
+[vikgpslayer.c:1479]: (error) Invalid number of character ({) when these macros are defined: 'GPSD_API_MAJOR_VERSION;VIK_CONFIG_REALTIME_GPS_TRACKING'.
+This can be 'hidden' via cppcheck --suppress syntax.
+
+Technical notices
+=================
+
+In order to activate reference documentation, you have to specify the following configure command line:
+$ ./configure --enable-gtk-doc --enable-gtk-doc-html
+
+Then, cd to doc/reference and launch make command.
+
+---
 
 The layers panel holds all the layers. Layers connect to the layers panel via what I call "interfaces" which are really just a 
 structure of function pointers and pointers to other bits such as icons. viklayer.c switches between the layers like