Novell Home

Monotheka hacking & coding guidelines

From Developer Community

Some basic information for people/developers who would like to join the Monotheka project.

Monotheka hacking + coding guidelines

19.02.05

                      MONOTHEKA HACKING

   Monotheka is an emerging project. You're encouraged to
contribute and take part in building the most sexy & featureful
movie database for the GNOME desktop! 

   The project lives on Novell Forge:

   http://forge.novell.com/modules/xfmod/project/?monotheka

   All the features should be familiar to you (Bugzilla, Mailing
list, Forum, Trackers, Tasks...). You should start your
adventure into Monotheka by subscribing to the mailing list (you
don't need the Novell account to do that, although it's a good
idea to register).

   The CVS repository also lives on Novell Forge. Specific
instructions regarding using the CVS can be found on Monotheka
-> CVS on Novell Forge. But just to give you the idea:

   $> cvs -z3 
      -d:ext:anonymous@forgecvs1.novell.com:/cvsroot/monotheka 
      co monotheka 
   password: anonymous

   ... will fetch the current source files. There are also other
modules available (namely: the 'monoboil' module witch is used
to auto-configure/build Monotheka. It might be pretty usable for
other projects too)

   You can start by looking at the 'TODO' file. It contains a
small road-map fot the next few steps of Monotheka. You can also
write a plug-in (simple) or some documentation (badly
needed). It's up too you. 

   If you want to write code (yes!), please regard the following
guidelines... 


                       CODING GUIDELINES

   * "java" indenting style is used throughout the whole
   project. 
   
   * Names of variables are word-capitalized
   (eg. MainWindow). Local variables start with '__'
   (eg. __Movie). Parameters of functions start with '_'
   (eg. _Test) 

   * Bracketing goes as follows:

namespace Test {
        class TestClass {
                
                public Function() 
                {
                        if (...) {
                        }

                }
        }
}

   * Please include a GNU license excpert on the top of
   each file.

   * When using Gtk Widgets - please name them as follows:
   Name_GtkType . For example Main_GtkWindow ;
   Bar_GtkProgressBar ; OK_GtkButton . That will make things
   easier. 

   * All events start with 'On' (eg. On_WindowDelete). Don't use
   too much '_' to break things. Underscore should separate
   structural elements, not human language elements. 

   * Comment your work, and functions you add. Use FIXME to mark
   out the parts that need to be reworked. 

   * Try to separate interface from engine as much as possible. 

   * Yes, the current code doesn't obey all the rules specified
   above. We're working on that... ;)

   * The monoBOIL (./configure) has a '--purge' option. It 
   reverts the project/package to it's "neutral" state - erasing
   all the temporary/backup/template files. Please use it before
   you commit any changes to CVS. There are reasons for that.

   * Be innovative. 


                                           Michael Dominic K.
                                           mdk@mdk.org.pl

--Michael Dominic K.

Novell® Making IT Work As One

© 2008 Novell, Inc. All Rights Reserved.