<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
<article version="5.0" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:ns6="http://www.w3.org/1999/xlink" xmlns:ns5="http://www.w3.org/1998/Math/MathML" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:ns3="http://www.w3.org/2000/svg" xmlns:ns="http://docbook.org/ns/docbook">
  <title>SVN Structure Conventions</title>
  <info>
    <author>
      <orgname>Majoron (www.majoron.com)</orgname>
      <email>manual@majoron.com</email>
    </author>
    <abstract>
      <para>This book declare structure conventions for SVN folder organization.</para>
    </abstract>
    <copyright>
      <year>2007</year>
      <holder>Majoron.com</holder>
    </copyright>
    <revhistory>
      <revision>
        <revnumber>1.0</revnumber>
        <date>2007.11.12</date>
        <revdescription>
          <para>The first revision</para>
        </revdescription>
      </revision>
    </revhistory>
  </info>
  <sect1>
    <title>
      Definitions
    </title>
    <para>
      <emphasis role="bold">Components</emphasis>
      is a single logically indivisible unit. For example executable program or shared module is a
      component. Web site may be considered as a component too.</para>
    <para>
      <emphasis role="bold">Product</emphasis>
      is a local software system to resolve some tasks. Product may consists from a several
      components. For example notepad is a product.
    </para>
    <para>
      <emphasis role="bold">Service</emphasis>
      is a remote rather than local software system to resolve some tasks. Product may consists from
      a several components. For example gmail.com is the service.
    </para>
    <para>
      <emphasis role="bold">Website</emphasis>
      is a software system for presentation and promoting one or group products at Internet.
    </para>
    <para>
      <emphasis role="bold">Projects</emphasis>
      is a any kind of a sensible software activity to archive a fixed goal. For example service or
      product which resolve some tasks is a project. Also web site for promoting some products is a
      project too.</para>
    <para>
      <emphasis role="bold">Solution</emphasis>
      is a project for one or group customers. For example implementation private protocol for
      customer is the solution.
    </para>
  </sect1>
  <sect1>
    <title>Repository Organization</title>
    <sect2>
      <title>Overview</title>
      <para>This section cover some basic principals for repository structure organization.</para>
    </sect2>
    <sect2>
      <title>
        Promoting</title>
      <para>There is a few strategies for product promoting. What kind of strategy use for the
        product is a separate subject to discuss.
        <simplelist>
          <member>One product a one site devoting to product</member>
          <member>One product a few sites devoting to different areas of product</member>
          <member>One product a one site, which contains promoting different products.</member>
        </simplelist>
      </para>
      <para>If will be used first strategy for product promoting then SVN structure contains one
        project with name of the products. This project contains website and product, which consists
        from a set of the components. If will be used other strategy for product promoting then SVN
        structure will be contain different project for product itself and website. This separation
        allows to disconnect product promoting and SVN structure to avoid SNV structure
        reorganization.
      </para>
      <para>There is a one strategies for service promoting.<simplelist>
          <member>One service a one web presentation devoting to serivce</member>
        </simplelist>
      </para>
    </sect2>
    <sect2>
      <title>
        Releasing</title>
      <para>Projects and solutions are objects for realising. TODO: place here about 0.5</para>
    </sect2>
    <sect2>
      <title>
        Workspace</title>
      <para>TODO: place here infromation about project file organizaiton: msvc + eclipse and etc..
      </para>
    </sect2>
  </sect1>
  <sect1>
    <title>Repository Structure</title>
    <sect2>
      <title>Overview</title>
      <para>This section cover a repository structure for special types of the projects.</para>
    </sect2>
    <sect2>
      <title>
        Up Level</title>
      <para>First level of the SVN repository consists from
        <simplelist>
          <member>3rdparty. This is folder contains3rdparty library.
          </member>
          <member>Distribs This is folder contains 3rdparty library distributives.</member>
          <member>Documents This is folder contains documents for while work organization. This kind
            of documents applicable for all projecs.</member>
          <member>Projects This is folder contains projects.</member>
          <member>Solutions This is folder contains solutions</member>
        </simplelist>
      </para>
    </sect2>
    <sect2>
      <title>
        Projects</title>
      <para>This folder contains all projects (websites, services and products) by name. For each
        project SVN structure looks like below.</para>
      <simplelist>
        <member>Websites if project contatins a websites.
        </member>
        <member>Services if project contatins a services.
        </member>
        <member>Components. This folder contains all components for product or service.</member>
      </simplelist>
    </sect2>
    <sect2>
      <title>
        Solution</title>
      <para>This folder contains all solutions by name. SVN structure is similar with project SVN
        structure.</para>
    </sect2>
    <sect2>
      <title>
        Realising</title>
      <para>For realising projects and solution
      </para>
    </sect2>
    <sect2>
      <title>
        Workspace</title>
      <para>To think about it.
      </para>
    </sect2>
  </sect1>
  <appendix>
    <title>Example1</title>
    <para>This is example SVN structure for OLS project. This is project consists from website and
      components.</para>
    <para>
      <itemizedlist>
        <listitem>
          <para>OLS</para>
          <itemizedlist>
            <listitem>
              <para>Website</para>
              <itemizedlist>
                <listitem>
                  <para>ols</para>
                  <itemizedlist>
                    <listitem>
                      <para>0.5</para>
                    </listitem>
                    <listitem>
                      <para>1.0</para>
                    </listitem>
                  </itemizedlist>
                </listitem>
                <listitem>
                  <para>dms</para>
                  <itemizedlist>
                    <listitem>
                      <para>0.5</para>
                    </listitem>
                    <listitem>
                      <para>1.0</para>
                    </listitem>
                  </itemizedlist>
                </listitem>
              </itemizedlist>
            </listitem>
            <listitem>
              <para>Components</para>
              <itemizedlist>
                <listitem>
                  <para>0.5</para>
                  <itemizedlist>
                    <listitem>
                      <para>Documnets</para>
                    </listitem>
                    <listitem>
                      <para>OSLCore</para>
                    </listitem>
                    <listitem>
                      <para>Codecs</para>
                    </listitem>
                    <listitem>
                      <para>Workspace</para>
                      <itemizedlist>
                        <listitem>
                          <para>msvc</para>
                        </listitem>
                        <listitem>
                          <para>eclipse</para>
                        </listitem>
                        <listitem>
                          <para>automake</para>
                        </listitem>
                      </itemizedlist>
                    </listitem>
                  </itemizedlist>
                </listitem>
                <listitem>
                  <para>1.0</para>
                  <itemizedlist>
                    <listitem>
                      <para>Documnets</para>
                    </listitem>
                    <listitem>
                      <para>OSLCore</para>
                    </listitem>
                    <listitem>
                      <para>Codecs</para>
                    </listitem>
                    <listitem>
                      <para>Workspace</para>
                      <itemizedlist>
                        <listitem>
                          <para>msvc</para>
                        </listitem>
                        <listitem>
                          <para>eclipse</para>
                        </listitem>
                        <listitem>
                          <para>automake</para>
                        </listitem>
                      </itemizedlist>
                    </listitem>
                  </itemizedlist>
                </listitem>
              </itemizedlist>
            </listitem>
          </itemizedlist>
        </listitem>
      </itemizedlist>
    </para>
  </appendix>
  <appendix>
    <title>Questions</title>
    <simplelist>
      <member>Should we have different folder for Services, Project and Websites?</member>
      <member>Should documentation be for each release (0.5 and etc) or common for while project or
        both?</member>
    </simplelist>
  </appendix>
</article>