<?xml version="1.0"?>

<!--
	description:

		"Gobo Eiffel Developer Guidelines"

	copyright: "Copyright (c) 2004, Eric Bezault and others"
	license: "Eiffel Forum License v2 (see forum.txt)"
	date: "$Date: 2005/07/07 14:00:15 $"
	revision: "$Revision: 1.3 $"
-->

<chapter xmlns="http://www.gobosoft.com/eiffel/gobo/documentation" id="guidelines/index">
<chapterinfo>
	<copyright>
		<year>2001-2005</year>
		<holder>Eric Bezault</holder>
	</copyright>
	<author>
		<firstname>Eric</firstname><surname>Bezault</surname>
	</author>
	<email>ericb@gobosoft.com</email>
	<date>8 March 2005</date>
</chapterinfo>

<title>Gobo Eiffel Developer Guidelines</title>

<para>
This document describes the guidelines that <emphasis role="strong">must</emphasis> 
be followed by all contributions to the 
<projectname>Gobo Eiffel Project</projectname>. The guidelines are based on the 
rules laid out in OOSC2 and clarified or amended where necessary. We hope that 
these guidelines will be widely followed, also by Eiffel libraries other than the 
<libraryname>Gobo Eiffel libraries</libraryname>, and that they will facilitate 
code sharing and code reading.
</para>
<para><emphasis>
Note that this document is far from complete. It is only the first
draft, more sections will be added and some existing sections need
some more work.
</emphasis></para>

<para>
This document is structured as follows:

<blockquote>
<variablelist>
	<varlistentry>
		<term>
			<link linkend="compilers">Supported Eiffel Compilers</link>
		</term>
		<listitem><para>
			The Eiffel compilers that must be supported.
		</para></listitem>
	</varlistentry>

	<varlistentry>
		<term>
			<link linkend="language">Eiffel Language</link>
		</term>
		<listitem><para>
			The version of the Eiffel Language that must be used.
		</para></listitem>
	</varlistentry>

	<varlistentry>
		<term>
			<link linkend="naming_conventions">Naming Conventions</link>
		</term>
		<listitem><para>
			The naming conventions that code must follow.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="class_layout">Class Layout</link>
		</term>
		<listitem><para>
			How class texts must be formatted.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="programming_style">Programming Style</link>
		</term>
		<listitem><para>
			The programming style that must be used.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="documentation">Documentation</link>
		</term>
		<listitem><para>
			How to write documentation.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="examples">Examples</link>
		</term>
		<listitem><para>
			The kind of examples that must be provided.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="test">Test Suite</link>
		</term>
		<listitem><para>
			How to write a test suite.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="cvs">CVS Repository</link>
		</term>
		<listitem><para>
			How to use the CVS Repository.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="installation">Installation Procedure</link>
		</term>
		<listitem><para>
			The installation files to provide.
		</para></listitem>
	</varlistentry>
	
	<varlistentry>
		<term>
			<link linkend="license">License</link>
		</term>
		<listitem><para>
			The license under which <projectname>Gobo Eiffel</projectname> code is released.
		</para></listitem>
	</varlistentry>
</variablelist>
</blockquote>

</para>

</chapter>
