<page xmlns="http://projectmallard.org/1.0/"
      xmlns:its="http://www.w3.org/2005/11/its"
      type="guide" style="task"
      id="index">

  <info>
    <credit type="author copyright">
      <name>Federico Mena-Quintero</name>
      <email its:translate="no">federico@gnome.org</email>
      <years>2013</years>
    </credit>
    <credit type="author copyright">
      <name>Miguel de Icaza</name>
      <email its:translate="no">miguel@gnome.org</email>
    </credit>
    <credit type="author copyright">
      <name>Morten Welinder</name>
      <email its:translate="no">mortenw@gnome.org</email>
    </credit>
    <credit type="author copyright">
      <name>Philip Withnall</name>
      <email its:translate="no">philip.withnall@collabora.co.uk</email>
      <years>2015</years>
    </credit>
    <credit type="publisher">
      <name>GNOME Foundation</name>
      <page xmlns="http://xmlns.com/foaf/0.1/">http://foundation.gnome.org/</page>
    </credit>

    <include href="cc-by-sa-3-0.xml" xmlns="http://www.w3.org/2001/XInclude"/>

    <desc>GNOME Programming Guidelines</desc>

    <title type="link" role="trail">Programming Guidelines</title>
  </info>

  <title>GNOME Programming Guidelines</title>

  <p>
    This article contains several guidelines and suggestions for programmers
    working in and with the GNOME stack.  This is intended for programmers to
    know about the development processes, conventions and philosophies behind
    GNOME applications and the stack of libraries supporting them.  By knowing
    “the way things are done” in the GNOME ecosystem, it is hoped that
    programmers will find use of GNOME APIs and development of new applications
    easier and more natural, and will produce code which is legible and
    maintainable over a long period of time by a diverse team of programmers.
  </p>

  <p>
    This guide has a two-fold purpose:
  </p>

  <list>
    <item>
      <p>
        To give you good suggestions on how to write code for GNOME or using
        GNOME technologies. This will help you write code that is consistent
        with best practices, and that will be accepted by the community.  This
        will also lead to code that is a pleasure to work on.
      </p>
    </item>

    <item>
      <p>
        To transmit the knowledge we have gotten over the years on how
        to keep the GNOME project sustainable, even when people’s
        contributions increase or decrease.
      </p>
    </item>
  </list>

  <section id="general-guidelines">
    <info>
      <title type="link" role="trail">General Guidelines</title>
    </info>
    <title>General Guidelines</title>
    <links type="topic" groups="general-guidelines" style="grid"/>
  </section>

  <section id="maintainer-guidelines">
    <info>
      <title type="link" role="trail">Maintainer Guidelines</title>
    </info>
    <title>Maintainer Guidelines</title>
    <links type="topic" groups="maintainer-guidelines" style="grid"/>
  </section>

  <section id="specific-how-tos">
    <info>
      <title type="link" role="trail">Specific How-Tos</title>
    </info>
    <title>Specific How-Tos</title>
    <links type="topic" groups="specific-how-tos" style="grid"/>
  </section>

  <section id="references">
    <info>
      <title type="link" role="trail">References</title>
    </info>
    <title>References</title>
    <links type="topic" groups="references" style="grid"/>
  </section>

</page>
