yoswink     07/08/24 19:47:03

  Added:                projectxml.xml
  Log:
  Initial draft import. See bug #184875 for details.

Revision  Changes    Path
1.1                  xml/htdocs/doc/en/draft/projectxml.xml

file : 
http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/draft/projectxml.xml?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/draft/projectxml.xml?rev=1.1&content-type=text/plain

Index: projectxml.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/draft/projectxml.xml,v 1.1 
2007/08/24 19:47:03 yoswink Exp $ -->
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">

<guide link="/doc/en/draft/projectxml.xml">
<title>Gentoo ProjectXML Guide</title>

<author title="Author">
  <mail link="[EMAIL PROTECTED]">José Luis Rivero</mail>
</author>

<abstract>
This guide shows you how to create an official GuideXML page for a Gentoo Linux
Project. The guide assumes a basic knowledge of the GuideXML format.
</abstract>

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
<license/>

<version>1.0</version>
<date>2007-07-09</date>
<chapter>
<title>Introduction</title>
<section>
<title>What is ProjectXML?</title>
<body>

<p>
ProjectXML is designed to be an easy way to create project pages which
follow the Gentoo web style. It uses the same XML style that
<uri link="/doc/en/xml-guide.xml">GuideXML doc</uri>.
</p>

</body>
</section>
<section>
<title>Recommended knowledge</title>
<body>

<p>
ProjectXML is designed to be very easy to use so you don't need a special
knowledge. The only recommended read before touching a project page is the
official <uri link="/doc/en/xml-guide.xml">GuideXML doc</uri>.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Creating a project page</title>
<section>
<title>General Data</title>
<body>

<p>
To start writing our project page, first of all, we should define the proper
doc headers. Just copy and paste the following lines:
</p>

<pre caption="ProjectXML doc headers">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;?xml-stylesheet href="/xsl/project.xsl" type="text/xsl"&gt;
&lt;?xml-stylesheet href="/xsl/guide.xsl" type="text/xsl"&gt;
&lt;!DOCTYPE project SYSTEM "/dtd/project.dtd"&gt;
</pre>

<p>
First part in our doc is the general data section which cover the basic
information of the project. Also, in this section we'll find the only
mandatory tags we need to set in order to create a valid page:
<c>&lt;name&gt;</c>, <c>&lt;longname&gt;</c>, <c>&lt;description&gt;</c> and
<c>&lt;longdescription&gt;</c>, although we recommend to use all them to give
a complete view of the project.
</p>

<pre caption="Basic doc information example">
&lt;project&gt;
&lt;name&gt;ProjectXML&lt;/name&gt;
&lt;longname&gt;A ProjectXML example page&lt;/longname&gt;
&lt;date&gt;2007-04-15&lt;/date&gt;

&lt;description&gt;
A short project sentence describing the project.
&lt;/description&gt;

&lt;longdescription&gt;
&lt;p&gt;
A more elaborated description about the project (edited as GuideXML block).
&lt;/p&gt;
&lt;/longdescription&gt;
&lt;/guide&gt;
</pre>

</body>
</section>
<section>
<title>Defining project goals</title>
<body>

<p>
In order to reflect the final objective of the project, ProjectXML use
the tag goals to include a description about what's the purpose of
your work. Just a single sentence could be enough.
</p>

<note>
Like the <c>&lt;longdescription&gt;</c>, the <c>&lt;goals&gt;</c> tag
<e>must</e> contain one or more paragraphs (<c>&lt;p&gt;</c>), tables, lists,
code samples, admonitions (<c>&lt;note&gt;</c>
/<c>&lt;warn&gt;</c>/<c>&lt;impo&gt;</c>). The simplest case is to use a
single <c>&lt;p&gt;</c> element.
</note>

<pre caption="Goals section">
&lt;goals&gt;
&lt;p&gt;
The intention of the project is to show you how can you build a basic
project page easily using ProjectXML.
&lt;/p&gt;
&lt;/goals&gt;
</pre>

</body>
</section>
<section>
<title>List of project developers</title>
<body>

<p>
ProjectXML allow you to include a list of Gentoo developers who are involved
in the project. You only need to write the developer nickname inside the tag
and it will automatically be completed with the full real name when the page is
rendered.
</p>

<pre caption="Developers section">
&lt;dev role="Strategic Manager" description="Policy and 
releng"&gt;Dev1&lt;/dev&gt;
&lt;dev role="Operational Manager" description="Security"&gt;Dev2&lt;/dev&gt;
&lt;dev role="member"&gt;Dev3&lt;/dev&gt;
</pre>

<p>
As you can see in the example, the <c>dev</c> tag supports two optional
attributes: <c>role</c> is used to name the position of the developer inside
the team and <c>description</c>, which allow to set some details about
the member.
</p>

</body>
</section>
<section>
<title>Existing herds</title>
<body>

<p>
Another interesting section to include in the project page is the list of
Gentoo herds which belongs to the project. The only data which should be filled
is the <c>name</c> attribute.
</p>

<pre caption="Herd section">
&lt;herd name="herd1" /&gt;
&lt;herd name="herd2" /&gt;
</pre>

<p>
ProjectXML will parse the <uri
link="/en/metastructure/herds/herds.xml">herds</uri> file and in the final
rendered you will see all the nicknames of the devs who belongs to the herd.
</p>

</body>
</section>
<section>
<title>Project resources</title>
<body>

<p>
It's also possible to include some resources links inside the project doc
page. This links usually point to Gentoo documentation, external docs or
useful Internet sites.
</p>

<pre caption="Resource links">
&lt;resource link="/gentoo/link.xml"&gt; (omitting http://www.gentoo.org)
&lt;resource link="http://www.useful.internet.site/"&gt;
</pre>

</body>
</section>
</chapter>

<chapter>
<title>Tweaking the project page</title>
<section>
<title>Completing the general information</title>
<body>

<p>
Although the previous sections cover the basic information to create a
project, there are other chapters which could be quite useful to use in
some cases.
</p>

<p>
The information below, will show you how you can add extra information
to the chapters saw in the previous section, how to create subprojects
inside your project page or how to reflect tasks and its status.
</p>

</body>
</section>
<section>
<title>Adding extra content</title>
<body>

<p>
If you think that the previous basic sections are a little empty or want
to clarify some of them with a sentence or a paragraph, you can add some
extra chapters which will be render just below the section you want.
</p>

<p>
The following sections can be target of adding extra content: <c>goals</c>
, <c>devs</c>, <c>resources</c>, <c>subprojects</c> and <c>tasks</c>. All
you need is to set the attribute <c>position</c> to the <c>extrachapter</c>
tag. The next example show how to add info to developers section:
</p>

<note>
The <c>&lt;extrachapter&gt;</c> uses a GuideXML chapter structure which may
have one <c>&lt;title&gt;</c> and must have one or more
<c>&lt;section&gt;</c>.  Each section may have a <c>&lt;title&gt;</c> and must
have one or more <c>&lt;body&gt;</c>. Each <c>&lt;body&gt;</c> must have one
ore more paragraphs, code samples, tables, lists, admonitions.
</note>

<pre caption="Adding content to devs section">
&lt;extrachapter position="devs"&gt;
&lt;title&gt;Note about developers&lt;/title&gt;
&lt;section&gt;
&lt;body&gt;

&lt;p&gt;
The list of devs only include the official gentoo devs but the project
works thanks to many other contributors who are not gentoo devs.
&lt;/p&gt;

&lt;/body&gt;
&lt;/section&gt;
&lt;/extrachapter&gt;
</pre>

<p>
Also, you can add one or more extrachapters to the top or the bottom of
the whole page. The <c>top</c> extrachapter will be rendered just under
the project description and the <c>bottom</c> at the end of the page.
</p>

<pre caption="Adding a contact section to the bottom of the page">
&lt;extrachapter position="bottom"&gt;
&lt;title&gt;How to find us&lt;/title&gt;
&lt;section&gt;
&lt;title&gt;Via mail&lt;/title&gt;
&lt;body&gt;

&lt;p&gt;
To contact with the Gentoo doc team you just need to subscribe to
our mailing list: [EMAIL PROTECTED]
&lt;/p&gt;

&lt;/body&gt;
&lt;/section&gt;
&lt;/extrachapter&gt;
</pre>

</body>
</section>
<section id="subprojects">
<title>Defining Subprojects</title>
<body>

<p>
If the projects is composed from one or more subprojects, ProjectXML
allow you to specify them in order to be show or linked from the main
project page.
</p>

<p>
To determine what kind of subproject tag you need, you should follow
the next instructions:
</p>

<ol>
  <li>
    If the subproject has its own ProjectXML page, the basic data can
    be extracted from there and a link to the subproject added to the page.
    You should use the <c>subproject</c> xml tag.
  </li>
  <li>
    If the subproject don't have its own page and you want to keep the
    information in the main projects page, then you should use
    the <c>extraproject</c> xml tag.
  </li>
  <li>
    If the subproject is planned but it hasn't started yet, the you can
    use the <c>plannedproject</c> xml tag.
  </li>
</ol>


<p>
<b>Subprojects</b>: it's quite easy to set a subproject, just need to provide
the path where the subproject page is allocated. It also admit a couple of
possible attributes: <c>inheritmembers</c> which will add the devs inside dev
subproject section to the main page dev section. The second is
<c>inheritresources</c> which will make the same with the resource section.
</p>

<pre caption="Setting a subproject">
&lt;subproject ref="/path/to/subproject.xml" inheritresources="yes" 
inheritmembers="yes"/&gt;
</pre>


<p>
<b>Extraprojects</b>: extraprojects need a mandatory <c>name</c> of the project
and give you the possibility to define the <c>lead</c> and a possible project
<c>link</c>.  Remember to include a description of the project.
</p>

<pre caption="Setting an extraprojects">
&lt;extraproject name="First extraproject" lead="myself"&gt;
  Here goes the description of the extraproject. GuideXML tags are
  allowed if you need to use them.
&lt;/extraproject&gt;
</pre>


<p>
<b>Plannedprojects</b>: for future projects the only thing needed is the
<c>name</c> of the project and a text description.
</p>

<pre caption="Setting a planned project">
&lt;plannedproject name="Future ProjectXML"&gt;
  Description of the future project goes here
&lt;/plannedproject&gt;
</pre>

</body>
</section>
<section>
<title>Managing tasks</title>
<body>

<p>
If the project has planned some tasks to accomplish the work, they can be
reflected in the page. The tasks can be quite simple or can give a lot
of details of what people is working on give info about the status and
description.
</p>

<p>
The basic information we need to fill in for a task is: the attributes
<c>id</c>,<c>lead</c> and <c>finished</c>. Inside the task element we have to
specify more information:the task <c>&lt;name&gt;</c>, the
<c>&lt;description&gt;</c> and the <c>&lt;startdate&gt;</c>.
</p>

<pre caption="Defining a basic task">
&lt;task id="basictask" lead="devnick" finished="no"&gt;
&lt;name&gt;Defining a basic task&lt;/name&gt;
&lt;description&gt;How to create a basic task&lt;/description&gt;
&lt;startdate&gt;01/01/2007&lt;/startdate&gt;
&lt;/task&gt;
</pre>

<p>
There are more elements which can be used to extending the information
about tasks:
</p>

<ul>
  <li>
    The <c>longdescription</c> tag, to give a complete overview of the
    project activity.
  </li>
  <li>
    The <c>enddate</c> tag, if the task is finished to show the period of
    time it took.
  </li>
  <li>
    One or more <c>dev</c> tags, to show the people involved in the tasks. The
    tag allow the attributes <c>role</c> and <c>description</c>.
  </li>
  <li>
    One or more <c>reference</c> tags, to include the relevant information
    links. It can use the classic <c>&lt;uri&gt;</c>; GuideXML element or
    contain a one or more <c>bug</c> tags to link to Gentoo Bugzilla.
  </li>
  <li>
    One or more <c>milestone</c> tags, to reflect important development
    points inside the task. The milestones tags use the attribute
    <c>finished</c> and need the tags <c>enddate</c> and <c>description</c>.
  </li>
  <li>
    One or more <c>depends</c> tags, to show the dependency between tasks.
    You need to fill the attribute <c>ref</c> which refers to an other
    task id.
  </li>
</ul>

<pre caption="Defining a complete task">
&lt;task id="basictask" lead="devnick" finished="no"&gt;
&lt;name&gt;Defining a complete task&lt;/name&gt;
&lt;description&gt;How to create a complete task&lt;/description&gt;
&lt;longdescription&gt;
A longer description about how to create a complete task.
&lt;/longdescription&gt;
&lt;startdate&gt;01/01/2007&lt;/startdate&gt;
&lt;enddate&gt;06/04/2007&lt;/enddate&gt;
&lt;dev role="designer" description="The only designer"&gt;dev1&lt;/dev&gt;
&lt;reference&gt;&lt;uri link="/path/to/doc.xml"&gt;Main 
guide&lt;/uri&gt;&lt;/reference&gt;
&lt;reference&gt;&lt;bug no="145234"/&gt;&lt;/reference&gt;
&lt;milestone finished="yes"&gt;
  &lt;enddate&gt;04/03/2007&lt;/enddate&gt;
  &lt;description&gt;Thinking about write the guide&lt;/description&gt;
&lt;/milestone&gt;
&lt;depends ref="task1"/&gt;
&lt;/task&gt;
</pre>

</body>
</section>
</chapter>
<chapter>
<title>Adding your project to the Gentoo full project list</title>
<section>
<body>

<p>
Gentoo provides a page with the <uri link="/proj/en/index.xml">full list of
projects</uri> belongs to the distribution. It shows all the top level projects
and its own subprojects.  All the current projects should be listed there, so
here is what you have to do to add your project there:
</p>

<p>
If you are writting a subproject page, it will be enough to have it listed as
it in the main project page (as described in the <uri
link="#subprojects">subprojects section</uri>).
</p>

<p>
If the project is a top level one, then you should add the project to:
<path>/gentoo/xml/htdocs/proj/en/metastructure/gentoo.xml</path>:
</p>

<pre caption="Adding your top level project to gentoo database">
&lt;subproject ref="/proj/en/myproject/index.xml" inheritmembers="no"/&gt;
</pre>

</body>
</section>
</chapter>
</guide>



-- 
[EMAIL PROTECTED] mailing list

Reply via email to