Skip to content
yafraorg edited this page Sep 16, 2012 · 5 revisions

Common definitions

Key system is sourceforge.net with trac and svn. Any issues or requests are logged within trac tickets. Roadmap planning is done within trac.

Naming conventions used for builds

  • '''V'''ersion "1.0"
  • '''R'''elease "M1" - Milestone (M), Beta (B), Release Candidate (RC), Release (R)

Release definitions:

  • Milestone - work in progress, key interfaces may change
  • Beta - out of work in progress, no interface changes unless indicated
  • Release Candidate - only bug fixes not changes on functionality
  • Release - fix only post release bug fixes

Release planning

See the Roadmap for planning details and naming conventions on the framework release schedule.

Directory structure

The master development environment is done on the assumption that you have

  • Windows special installations and working directories are under C:\work
  • Unix special installations and working directories are under /work
  • Java run time classpath is under /work/classes
  • C binaries and share libraries are under /usr/local on a UNIX/OSX/cygwin/MSYS environment
  • A standardized environment is used which defines $BASENODE (location of the repository). The environment is available as $SYSADM/defaults/profile.sh and will be appended in UNIX/OSX/cygwin/MSYS to /etc/profile

Key environment variables you need to be familiar with:

export YAFRAVER="1.0"
export YAFRAREL="1"
export BASENODE=/work/repos/git/YafraLocalGit
export JAVANODE=/work/repos/git/YafraLocalGit
export WORKNODE=/work/yafra-runtime
export SYSADM=$BASENODE/org.yafra.sysadm
export YAFRATOOLS=$SYSADM/defaults
export YAFRABIN=$SYSADM/defaults/scripts
export YAFRADOC=$WORKNODE/doc
export YAFRAMAN=$WORKNODE/man
export YAFRAEXE=$WORKNODE/bin

Eclipse IDE standards

In every Eclipse IDE installation you need the GIT plugin.

All projects are set to the standard runtime of Eclipse [JavaSE-1.6], you need to set this within the Window->Preferences->Java->Installed JRE's - you can point it as well to a JDK.

Any open task on the source code will be flagged as TODO to generate an Eclipse IDE task. This can be re used with mylyn and github.com together. Follow guidelines on github.com to install the mylyn addon in Eclipse.

Set the standard file templates (like .java, .xml, etc) in Eclipse IDE with the license text and other default headings.Setup the user libraries for yafra. All import files are under $SYSADM/defaults/xxx.xml

All eclipse's are installed in /work/eclipse as eclipse-jee, eclipse-gwt, ... The workspaces are under /work/eclipse as workspace-gwt, workspace-rcp and only workspace for the eclipse-jee.

For every eclipse make sure that the following is set:

  • Set the Preferences->Java->Build Path->Classpath Variable "YAFRACLASSES" to the class path (/work/classes)
  • Import the yafra User Libraries under Preferences->Java->Build Path->User Libraries from $SYSADM/defaults (will be visible after import as "YafraCayenne")
  • Import java coding rules under Preferences->Java->Code Style

Coding conventions

Every file starts with a comment block holding the Apache License according to the Apache definition.

Naming conventions:

  • M = Model equal to a Java Bean
  • MH = Model Handler, a class which holds methods to read/write a model, includes business logic, is not serializable
  • IYafra = Interfaces - "I" would be fine as well
  • MHI = special model handler implementations like for EJB
  • within GUIs xAaaaa = field names x should be the first letter of the GUI widget like b for Button, Aaaa is the name of it

Java related: In general the java coding standards are used. As code formatting yafra.org supplies Eclipse macros in order to make a common formatting according to the yafra choice, however the standard eclipse and java code formatting are as well good enough.

Java coding guidelines follow Sun's coding standard rules which are pretty common in Java. http://java.sun.com/docs/codeconv/ and http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

For ansi C refer to the GNU coding standards: http://www.gnu.org/prep/standards/standards.html

Documentation is derived from source. Use doxygen http://www.stack.nl/~dimitri/doxygen/index.html and use the Java Doc format.

Github wiki

We use creole wiki syntax. You can edit through the web interface or cloning the git wiki repository.

See the github wiki documentation at https://github.com/github/gollum/blob/master/README.md

Clone this wiki locally