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

  <info>
    <link type="guide" xref="index#references"/>
    
    <credit type="author copyright">
      <name>Federico Mena-Quintero</name>
      <email its:translate="no">federico@gnome.org</email>
      <years>2013</years>
    </credit>

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

    <desc>Other style guides and books about organizing free software
    projects</desc>
  </info>

  <title>Additional Materials</title>

  <p>
    Here we give you links to other materials that you may want to
    read.  These will teach you a lot about how to work on large
    distributed teams of free software developers, and about good
    programming style in general.
  </p>

  <list>
    <item>
      <p>
	<link href="http://producingoss.com/">Producing Open Source
	Software</link>, by Karl Fogel.  This is a truly excellent
	book of good practices that free software projects should
	follow.  This is about <em>social aspects</em> of the project:
	how to treat contributors, how to organize and moderate
	communication, how to deal with non-profit foundations.  If
	you ask yourself at any time, "how should I deal with
	$human_situation in the project?", this book may provide the
	answer.
      </p>
    </item>

    <item>
      <p>
	<link href="http://www.gnu.org/prep/standards/">GNU Coding
	Standards</link>.  This is an old document, but it still has
	lots of excellent advice.  It talks about C coding style,
	issues when dealing with plug-in systems, common option names
	for command-line programs, conventions for Makefiles, and some
	very GNU-ish details like using Texinfo for documentation.
      </p>
    </item>

    <item>
      <p>
	<link href="https://www.kernel.org/doc/Documentation/process/coding-style.rst">
	Linux Kernel Coding Style</link>.  Explains the rationale for "big
	indentation", brace placement, concise but unambiguous naming, and
	centralized exit of functions.
      </p>
    </item>
  </list>
</page>
