]> 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 87cc29b7c6bb989229f0f66a0fa48fd084bdd21e..bb4345ee4fc4c674bc8d942cc21f2b783d6a17d7 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -1,5 +1,9 @@
 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
 =============
@@ -8,6 +12,15 @@ 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
 ============
 
@@ -20,9 +33,27 @@ 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 
 polymorhpism. Anything specific to the layer should (in theory) be found solely in that layer's source file.