<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.

     Redistribution and use in source (SGML DocBook) and 'compiled' forms
     (SGML HTML, PDF, PostScript, RTF and so forth) with or without
     modification, are permitted provided that the following conditions
     are met:

      1. Redistributions of source code (SGML DocBook) must retain the above
         copyright notice, this list of conditions and the following
         disclaimer as the first lines of this file unmodified.

      2. Redistributions in compiled form (transformed to other DTDs,
         converted to PDF, PostScript, RTF and other formats) must reproduce
         the above copyright notice, this list of conditions and the
         following disclaimer in the documentation and/or other materials
         provided with the distribution.

     THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
     POSSIBILITY OF SUCH DAMAGE.

     $FreeBSD$
-->

<chapter id="overview">
  <title>Overview</title>

  <para>Welcome to the &os; Documentation Project
    (<acronym>FDP</acronym>).  Quality documentation is crucial
    to the success of &os;, and we value your contributions very
    highly.</para>

  <para>This document describes how the <acronym>FDP</acronym> is
    organized, how to write and submit documentation, and how to
    effectively use the available tools.</para>

  <para>Everyone is welcome to contribute to the
    <acronym>FDP</acronym>.  Willingness to contribute is the only
    membership requirement.</para>

  <para>This primer shows the reader how to:</para>

  <itemizedlist>
    <listitem>
      <para>Identify which parts of &os; are maintained by the
	<acronym>FDP</acronym>.</para>
    </listitem>

    <listitem>
      <para>Install the required documentation tools and files.</para>
    </listitem>

    <listitem>
      <para>Make changes to the documentation.</para>
    </listitem>

    <listitem>
      <para>Submit changes back for review and eventual inclusion in
	the &os; documentation.</para>
    </listitem>
  </itemizedlist>

  <sect1 id="overview-doc">
    <title>The &os; Documentation Set</title>

    <para>The <acronym>FDP</acronym> is responsible for four
      categories of &os; documentation.</para>

    <itemizedlist>
      <listitem>
	<para><emphasis>Handbook</emphasis>: The Handbook is the
	  comprehensive online resource and reference for &os;
	  users.</para>
      </listitem>

      <listitem>
	<para><emphasis>FAQ</emphasis>: The <acronym>FAQ</acronym>
	  uses a short question and answer format to address questions
	  that are frequently asked on the various mailing lists and
	  forums devoted to &os;.  This format does not permit long
	  and comprehensive answers.</para>
      </listitem>

      <listitem>
	<para><emphasis>Manual pages</emphasis>: The English language
	  system manual pages are usually not written by the
	  <acronym>FDP</acronym>, as they are part of the base system.
	  However, the <acronym>FDP</acronym> can reword parts of
	  existing manual pages to make them clearer or to correct
	  inaccuracies.</para>
      </listitem>

      <listitem>
	<para><emphasis>Web site</emphasis>: This is the main &os;
	  presence on the web, visible at <ulink
	    url="http://www.freebsd.org/index.html">http://www.FreeBSD.org/</ulink>
	  and many mirrors around the world.  The web site is
	  typically a new user's first exposure to &os;.</para>
      </listitem>
    </itemizedlist>

    <para>Translation teams are responsible for translating the
      Handbook and web site into different languages.  Manual pages
      are not translated.</para>

    <para>Documentation source for the &os; web site, Handbook, and
      <acronym>FAQ</acronym> is available in the Subversion
      repository at
      <literal>https://svn.FreeBSD.org/doc/</literal>.</para>

    <para>Source for manual pages is available in a separate
      Subversion repository located at
      <literal>https://svn.FreeBSD.org/base/</literal>.</para>

    <para>Documentation commit messages are visible with
      <application>svn</application>.  Commit messages are also
      archived at <ulink url="&a.svn-doc-all.url;"></ulink>.</para>

    <para>In addition, many people have written tutorials or how-to
      articles about &os;.  Some are stored as part of the
      <acronym>FDP</acronym> files.  In other cases, the author has
      decided to keep the documentation separate.  The
      <acronym>FDP</acronym> endeavors to provide links to as much of
      this external documentation as possible.</para>
  </sect1>

  <sect1 id="overview-quick-start">
    <title>Quick Start</title>

    <para>Here we describe the steps contributors must take before
      making changes to the <acronym>FDP</acronym>.  New
      contributors will interact with other members of the &os;
      Documentation Team, which can assist in learning to use
      <acronym>XML</acronym> and the suggestions in
      <xref linkend="writing-style-guide"/>.  If a new user
      contributes regularly, a Documentation Team member may be
      assigned as a mentor to guide the user through the process from
      contributor to documentation committer.</para>

    <procedure>
      <step>
	<para>Subscribe to the &a.doc;.  Some members of the mailing
	  list also interact on the <literal>#bsddocs</literal>
	  <acronym>IRC</acronym> channel on <ulink
	    url="http://www.efnet.org/">EFnet</ulink>.</para>
      </step>

      <step>
	<para>Install the
	  <filename role="package">textproc/docproj</filename>
	  package or port.  This meta-port installs all of the
	  utilities needed by the <acronym>FDP</acronym>.</para>
      </step>

      <step>
	<para>Install a local working copy of the documentation
	  from a mirror of the &os; repository.  For the fastest
	  download, pick the nearest mirror from the list of <ulink
	    url="&url.books.handbook;/subversion-mirrors.html">Subversion
	    mirror sites</ulink>.  If <filename
	    class="directory">/usr/doc</filename> already exists, move
	  or delete it first to prevent file conflicts.</para>

	<screen>&prompt.user; <userinput>svn checkout https://<replaceable>svn0.us-west.FreeBSD.org</replaceable>/doc/head <replaceable>/usr/doc</replaceable></userinput></screen>
	</step>

	<step>
	  <para>Before making any documentation edits, configure your
	    editor to conform to <acronym>FDP</acronym> standards.
	    How to do so varies by editor.  Some editor configurations
	    are listed in <xref linkend="writing-style"/>. The editor
	    should be configured as follows:</para>

	  <itemizedlist>
	    <listitem>
	      <para>Word wrap set to 70 characters.</para>
	    </listitem>

	    <listitem>
	      <para>Tab stops set to 2.</para>
	    </listitem>

	    <listitem>
	      <para>Replace each group of 8 leading spaces with a
		single tab.</para>
	    </listitem>
	  </itemizedlist>
	</step>

	<step>
	  <para>Locate the file to edit.  Run
	    <command>svn up</command> within the local working copy to
	    make sure that it is up to date.  Before making major
	    changes to a file, discuss the proposed changes with the
	    &a.doc;.</para>

	  <para>When making edits, determine which tags and entities
	    are needed to achieve the desired formatting.  One way to
	    learn is to compare some text in the
	    <acronym>HTML</acronym> formatted version of the document
	    to the tags which surround the text or the entities that
	    represent that text in the <acronym>XML</acronym> file.
	    References to the commonly used tags and entities can be
	    found in <xref linkend="xhtml-markup"/> and
	    <xref linkend="docbook-markup"/>.</para>
	</step>

	<step>
	  <para>After edits are complete, check for problems by
	    running:</para>

	  <screen>&prompt.user; <userinput>igor -R filename.xml | less -RS</userinput></screen>

	  <para>Review the output and edit the file to fix any listed
	    tab errors, spelling mistakes, and improper grammar.  Save
	    the changes and rerun this command to find any remaining
	    problems.  Repeat until all of the errors that you deem
	    fixable are resolved.  If you get stuck trying to fix
	    errors, ask for assistance on the &a.doc;.</para>
	</step>

	<step>
	  <para><emphasis>Always</emphasis> build-test changes before
	    submitting them.  By default, typing
	    <userinput>make</userinput> in the top-level directory of
	    the type of documentation being edited will generate that
	    documentation in split HTML format.  For example, to build
	    the English version of the Handbook, type
	    <command>make</command> in the
	    <filename>en_US.ISO8859-1/books/handbook/</filename>
	    directory.  This step is necessary to make sure that the
	    edits do not break the build.</para>
	</step>

	<step>
	  <para>In order to build the output in other formats, other
	    <application>make</application> targets are defined in
	    <filename>head/share/mk/doc.docbook.mk</filename>.  Use
	    quotes around the list of formats when building more than
	    one format with a single command.</para>

	  <para>For example, to convert the document to both
	    <literal>.html</literal> and <literal>.txt</literal>, use
	    this command:</para>

	  <screen>&prompt.user; <userinput>make FORMATS="html txt"</userinput></screen>

	  <para>Once these steps are successfully completed, generate
	    a <quote>diff file</quote> of the changes.  While in
	    <filename class="directory">/usr/doc</filename>, run this
	    command, replacing <replaceable>bsdinstall</replaceable>
	    with the name of the directory containing the
	    edits:</para>

	  <screen>&prompt.user; <userinput>svn diff > <replaceable>bsdinstall</replaceable>.diff.txt</userinput></screen>
	</step>

	<step>
	  <para>Submit the diff file using the web-based <ulink
	      url="&url.base;/support.html#gnats">Problem
	      Report</ulink> system or with &man.send-pr.1;.  If using
	    the web form, input a synopsis of <emphasis>[patch]
	      <replaceable>short description of
	      problem</replaceable></emphasis>.  Select the category
	    <literal>docs</literal> and the class
	    <literal>doc-bug</literal>.  The body of the message
	    should contain a short description of the edits and any
	    important discussion points.  Use the
	    <guibutton>[&nbsp;Browse...&nbsp;]</guibutton> button to
	    attach the <literal>.diff.txt</literal> file and enter
	    the captcha phrase.</para>

	  <para>It is important to remember that the
	    <acronym>FDP</acronym> is comprised of volunteers who
	    review edits in their spare time and who live in different
	    time zones around the globe.  It takes time to review
	    edits and to either commit them or respond if additional
	    edits are required.  If you do not receive a response in a
	    reasonable amount of time, send a follow-up email to the
	    &a.doc; and ask if anyone has had a chance to review the
	    patch or if additional information is required.</para>
	</step>
      </procedure>
    </sect1>
  </chapter>