[prev in list] [next in list] [prev in thread] [next in thread] 

List:       asterisk-dev
Subject:    [asterisk-dev] XML Documentation of Dialplan Applications and
From:       Russell Bryant <russell () digium ! com>
Date:       2008-10-29 4:38:01
Message-ID: 4909563.560051225255081238.JavaMail.root () jupiler ! digium ! com
[Download RAW message or body]

Greetings,

As you may know from various discussions that have occurred on this mailing list, \
there has been a project going on to re-work the way that documentation is maintained \
for dialplan applications and dialplan functions.  The project has been very \
successful so far, and I would like to thank everyone that has helped out along the \
way, including Eliel SardaƱons, Michiel van Baak, Brandon Kruse, Bradley Latus \
(snuffy), and a number of others for their efforts.  (If I forgot to include your \
name, please accept my advance apologies.)

At this point, I would like to make a last call for feedback before the first phase \
of this work is merged into Asterisk trunk.  Given the invasiveness of the changes, I \
would like to get it merged in as soon as we can.  Keeping the documentation \
conversions up to date would be a tiresome task.

===== Project Background =====

Writing documentation is a huge job.  Every time that someone has gone to write \
documentation on Asterisk, part of the task is always to take the information from \
"core show application <foo>" or "core show function <bar>" and convert it to some \
other format.  This documentation has been maintained in the source code in a raw \
string format, and there has been no programmatic way to extract it from the source.  \
This project aimed to improve that situation.

===== Current Status =====

A good amount of work has been done, and the current code can be found in the \
following branch:

http://svn.digium.com/svn/asterisk/team/group/appdocsxml

The best place to look for information on the XML format being used is the examples \
of applications and functions that have already been converted.  Looking at the diff \
on reviewboard is an easy place to see these examples.  Visit the review request and \
click "View Diff" in the upper right.

http://reviewboard.digium.com/r/9/

Another useful reference on the format is the DTD:

http://svn.digium.com/view/asterisk/team/group/appdocsxml/doc/appdocsxml.dtd?view=markup


Of course, one of the best things to do is to check out the code, install it, and \
look at the displayed documentation.  A lot of applications and functions have been \
converted.  However, not all of them have been.  The code supports both methods of \
registering documentation for the sake of backwards compatibility.

===== Third Party Documentation =====

One of the issues that came up while discussing this functionality was how to handle \
documentation for modules not included in Asterisk.  A similar issue was how to \
handle documentation for a custom module that replaces one distributed with Asterisk, \
such as a backport that contains additional features.  The current code makes \
provisions for this situation.

Documentation is loaded from two different places.  First, it loads from \
${AST_DATA_DIR}/documentation/thirdparty, and second, ${AST_DATA_DIR}/documenatation. \
What this does is let us install the core documentation that we distribute in the \
documentation dir.  When someone installs a third party module, or a newer version of \
a module that we distribute, the associated documentation can be installed into the \
thirdparty directory, and it will take precedence.

There have been a number of discussions about various methods for having tighter \
integration between module versions and documentation versions.  However, this task \
has been deferred to a later phase of this project.

===== Internationalization =====

The current code takes language into account.  All of the documentation currently \
included in Asterisk is marked as "en_US".  The preferred documentation language can \
be configured in asterisk.conf.  One of the next phases of this project will be to \
figure out a plan for maintaining documentation translations.  Keeping the \
translations in sync will be quite a task, but other large projects have been doing \
this for a long time, and have many of the technical and logistical issues sorted \
out.

===== Other Future Development =====

While the current code only handles applications and dialplan functions, it certainly \
makes sense to extend this functionality to other Asterisk interfaces, as well.  Once \
these are settled, we can improve the documentation format for CLI commands, AGI, and \
the manager interface.

===== Final Thoughts =====

Take a look, and please post any feedback that you may have.  If there is no \
opposition, I would like to move forward with merging this work into trunk in the \
near future.  Then, we'll unleash a janitor project to finish the conversions of all \
applications and functions to the new documentation format.

Thanks,

-- 
Russell Bryant
Senior Software Engineer
Open Source Team Lead
Digium, Inc.

_______________________________________________
--Bandwidth and Colocation Provided by http://www.api-digital.com--

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic