goba Sat May 31 07:19:46 2003 EDT
Added files:
/phpdoc/RFC 2003_meeting_agenda.html
Log:
Adding first version of the 2003 phpdoc meeting agenda.
Please don't fix the whitespace and discuss every major
modification
Index: phpdoc/RFC/2003_meeting_agenda.html
+++ phpdoc/RFC/2003_meeting_agenda.html
<!-- Please don't apply any whitespace changes or reformatting to this file,
I would like to see clear diffed changes in case you modify anything,
Goba -->
<html>
<head>
<title>PHP Documentation Meeting 2003 - Agenda</title>
<style>
body, html {
background-color: #666699;
margin: 0px;
padding: 0px;
}
.content {
font-family: verdana, arial, sans-serif;
background-color: white;
width: 70%;
margin: auto;
border-style: solid;
border-color: #9999cc;
border-width: 0px 7px 0px 7px;
padding: 10px;
}
h1 {
border-bottom: 1px solid black;
}
h2 {
border-bottom: 1px dashed black;
}
a, a:hover, a:visited, a:active, .linklooking {
color: navy;
text-decoration: underline;
}
.seealso, .points {
background-color: lightyellow;
padding: 3px;
border-style: dotted;
border-width: 0px 0px 1px 1px;
margin-bottom: 5px;
}
.points {
background-color: #f5f5f5;
}
ul li {
list-style-type: square;
margin-bottom: 2px;
}
ul {
margin-bottom: 5px;
margin-top: 5px;
}
.buildsys {
border-style: dashed;
border-width: 0px 2px 0px 2px;
border-color: red;
padding: 0px 5px 0px 5px;
}
.redlines {
border-style: dashed;
border-width: 0px 1px 0px 1px;
border-color: red;
}
.cvsid {
color: darkgray;
}
</style>
</head>
<body>
<div class="content">
<h1>PHP Documentation Meeting 2003 - Agenda</h1>
<p class="cvsid">$Id: 2003_meeting_agenda.html,v 1.1 2003/05/31 11:19:46 goba
Exp $</p>
<p>Members of the PHP Documentation Team <a title="meeting protocol"
href="http://www.php-ev.de/documents/phpdoc/protocol.html">met in 2002
in Stuttgart</a> to discuss several problems of the PHP documentation
and find ways to improve the content, the technical background, the
communication, the legal issues, etc. Now it is 2003 and time has come
to organize another face-to-face meeting to discuss what has to be done
to achive those goals not reached yet, and to define new ones.</p>
<p>The meeting will take advantage of <a title="English LinuxTag site"
href="http://www.linuxtag.org/2003/en/index.html">LinuxTag</a> which
will take place in Karlsruhe, between 2003. July 10 and 13. <strong>It
seems now that the meeting will be on July 10, further info will be available
later</strong>. If you have any problems with the date, please
<a href="#contact">write to Goba</a> [it is probably not a
good idea to start a new public discussion on this for every single
person].</p>
<p>
Here is a list of those who are currently known to be at Linuxtag, and
probably interested in the meeting [in alphabetical order, without
accents]:</p>
<ul>
<li>Arntzen, <strong>Thies</strong> C.</li>
<li>Bergmann, <strong>Sebastian</strong></li>
<li>Betz, <strong>Friedhelm</strong></li>
<li>Boerger, <strong>Marcus</strong></li>
<li>Fox, <strong>Steph</strong></li>
<li>Furlong, <strong>Wez</strong></li>
<li>Greant, <strong>Zak</strong> [maybe]</li>
<li>Hartmann, <strong>Johann-Peter</strong></li>
<li>Hojtsy, <strong>Gabor</strong> [aka Goba]</li>
<li>Holzgraefe, <strong>Hartmut</strong></li>
<li>Kronsbein, <strong>Mark</strong></li>
<li>Lerdorf, <strong>Rasmus</strong></li>
<li>Rethans, <strong>Derick</strong></li>
<li>Richter, <strong>Georg</strong> [maybe only partial]</li>
<li>Schroder, <strong>Kai</strong></li>
<li>Schumann, <strong>Sascha</strong></li>
<li>Weinert, <strong>Thomas</strong></li>
<li>Zic, <strong>Sandro</strong></li>
</ul>
<p>If you have any problems with this list [you are on it, but will
not be there, or the other way round] then <a href="#contact">contact
Goba</a></p>
<p>This summary was created in the hope that it will be useful, and would
help better use the very few available hours to discuss the topics. Note
that in 2002 we had a multiday event, while this is not possible now as
it seems, but we still have plenty to discuss.</p>
<a name="topics"></a>
<h2>Topics for discussion</h2>
<p>If you have a new topic for discussion, feel free to open a new thread
on it at <a href="#contact">phpdoc</a>. For topics described here, see the
pointed articles, RFCs, proposals, discussions, and see if you can say new
or can sum up the discussions better. In case you have pointers to more info
on some topics, please <a href="#contact">contact Goba</a></p>
<ol>
<li>
<h3>Crediting manual contributors</h3>
<p>This problem is in the air for a long time now. We have no
rules now on who can be listed as an author / editor. This was
decided by the editors in the past after community discussion
on a case by case basis. The current license legally puts the
manual under the hands of those listed on the frontpage, though
there are much more contributors who helped with adding content,
finetuning the build system, etc.</p>
<p>There were several suggestions on improving the situation.
At the 2002 meeting we found that we need one or a few license
guys, who can handle license questions, so there won't be a need
to contact all listed authors / editors in case of a license
related request. Who should those be, was not decided yet.</p>
<p>There were no guidelines provided however on how to give credit
to contributors and this is still an open question. There were
some threads on this at phpdoc. It seems to me, that initial human
based nominations were accepted and agreed, but there was no agreement
regarding mass listing of smaller contributors.</p>
<div class="points">
Some important questions:
<ul>
<li>One list or a "main" and an "others" list?</li>
<li>Human based inclusion or machine based?</li>
<li>Who should decide on license questions?</li>
<li>What to do with the inactive contributors?</li>
</ul>
</div>
<div class="seealso">
See also:
<a
href="http://marc.theaimsgroup.com/?l=phpdoc&m=105188580930824">The
"finally: new authors" thread started with this letter</a> and
<a
href="http://marc.theaimsgroup.com/?l=phpdoc&m=105198711005958">The
"list of contributors [rethought]" thread started with this
letter</a>
</div>
</li>
<li>
<h3>A user friendly translation / editing environment</h3>
<p>The PHP documentation has many translations, some of them
are halted, near dead projects. The main problem with them is
probably that the joining requirements are too high [Linux / cygwin,
CVS, XML]. Or at least they seem too high for regular PHP programmers,
who would be happy to help. It would also be convinient many times
for experienced helpers to just concentrate on the content, and
not bother with XML.</p>
<p>Sandro Zic as well as others have many good ideas on integrating
some WYSIWYG editors [optinally] into the workflow, so we can get
more contributors to translate, and fix documentation. A convinient
system is also needed to easily update what is translated, as left
alone old translations are sometimes much worse then non-translated
content.</p>
<div class="points">
Some important questions:
<ul>
<li>How to intagrate such stuff into the current system?</li>
<li>Authorize the submissions before committing?</li>
<li>What impact would a WYSIWYG editing method has on
our diffing+mailing system, as WYSIWYG editors are known
to 'rewrite' files, and produce useless diffs</li>
</ul>
</div>
<div class="seealso">
See also: <a
href="http://marc.theaimsgroup.com/?l=phpdoc&m=104637138832462">Sandro's proposal</a>,
the <a href="http://www.bitfluxeditor.org/">Bitflux Editor</a> and
a paper on <a href="http://www.zzoss.com/projects/oowdbk/">DocBook
Editing with OpenOffice.org</a>
</div>
</li>
<li>
<h3>Handling user notes</h3>
<p>We have a very few volunteers working on the manual user notes
now. This is somewhat because of the fact that those guys are not
recognized at all, the php-notes list is even not widely known to
exist. Still those who work there do a good job in keeping the
notes somewhat clean and integrating useful content into the
manual.</p>
<p>There were some ideas on improving this system, including the
adoption of the voting system used on the PHP-GTK site, an approval
system for the user notes, and having extensions dedicated to
given user note maintainers. Another good question is whether
we will supply the user notes with the offline formats as users
request it, and in what form [eg. without email addresses to prevent
further mass email harvesting].</p>
<div class="seealso">
See also: <a href="http://gtk.php.net/manual/en/">the PHP-GTK
manual</a> for some ideas on how the rating works there, and
the <a
href="http://www.php-ev.de/documents/phpdoc/protocol.html">2002
meeting protocol</a> on the user note related findings there.
</div>
</li>
<li>
<a name="buildsys"></a>
<h3>Build system [aka getting rid of DSSSL]</h3>
<p>The build system is the foundation of our documentation
framework. There are several problems with it, depending on
from where are you looking at it.</p>
<ul>
<li>Getting to know the build system is hard for newcomers
[especially coming from the Windows world].</li>
<li>Maintaining the build system is not easy, we don't have
expertise to customize the DSSSL stylesheets, which is
one of the building blocks of the system, this stops
many advances [see also parts, reference grouping]</li>
<li>Getting some results out of the build system takes a
very long time, and so it is not useable for quick
translation testing.</li>
<li>Due to the previous point the builds take days for all the
languages on the building server on 100% processor load,
so building the manuals is a heavy task</li>
</ul>
<p>Let me explain the building process of building the manual, so
you can see the problems, even if you are not working for the
docteam every day. <span class="redlines">Red lines</span> mark
this explanation, so in case you are not that interested, you know
what to skip :) I know that this may be boring, but the quality
of the translations and the manual is largely depends on the build
system, so it is a very important issue [eg. PDF or extended CHM
building].</p>
<div class="buildsys">
<p>For a working build system, one needs the usual
Linux tools [cvs, autoconf, make, gcc for some operations], plus
a PHP CLI or CGI setup and [open]jade with [o]nsgmls. To build
some format of the manual you need to do:</p>
<ul>
<li><tt>cvs checkout phpdoc</tt></li>
<li><tt>cd phpdoc</tt></li>
<li><tt>cvs chechout phpdoc-LANG-dir</tt>, replacing LANG
with the desired language, repeating this for all the
languages needed [except English]</li>
<li><tt>autoconf</tt> - this will create ./configure</li>
<li>
<tt>./configure --with-lang=LANG</tt><br>
This will do some preparations:
<ul>
<li>search for tools [jade, openjade, PHP, etc.]</li>
<li>replace configuration vars in all the files ending in
".in"</li>
<li>create file entities for all the XML files used</li>
<li>run [o]nsgmls to create a list of entities and link
endpoints
referenced, but not available in the document to make
the build
process work even if such errors exist</li>
</ul>
After this, the build system is configured, and you can
choose a format to build the manual.
</li>
<li>To test the manual for errors, you can run <tt>make test</tt>
here, which uses [o]nsgmls to find errors. Similar to this is
<tt>make test_man_gen</tt> which is run on the build server, and
it is more forgiving for link endpoint errors, in case there are
any left after the above configure run</li>
<li>
In case you would like to get HTML output, you can run
<tt>make html</tt>, which will invoke [open]jade and will
create HTML output in about 30 minutes. In case of RTL
languages [Hebrew, Arabic] a special output parser [written
in PHP] runs through the output to finetune it for RTL rules.
</li>
<li>
For PHP coded output to use on a mirror site, you can run
<tt>make phpweb</tt> and expect the output in slightly more
time then <tt>make html</tt>, as this outputs more interlinks
then the HTML version. The RTL patch is applied here too. Before
the [open]jade run, a special phpweb_entities file is created
[using a PHP script] to make the php.net links relative to the
mirror sites hosting the manuals. This entity file is removed
after this build.
</li>
<li>
To get one big HTML file, you can run <tt>make bightml</tt>,
and that will produce the output in significantly in less time
then the two previous output methods, as no chunking is needed
and interlinks are easier to calculate. No RTL patch is applied
for this output so far.
</li>
<li>
The PalmDoc version [<tt>make palmdoc</tt>] depends on a txt
version already built [which is done with filtering the bightml
output
through lynx]. This targer runs the <tt>scripts/makedoc</tt>
program to create the isilo version out of the txt [compresses
the text file].
</li>
<li>
The Palm iSilo version [<tt>make isilo</tt>] uses iSilo386 external
program which should be installed on the build machine. It
compresses the bightml version using the iSilo format.
</li>
<li>
The PDF version [<tt>make pdf</tt>] "is created" by first using
[open]jade to convert the manual to tex format. Then jadetex is
run three times on this tex file to create a DVI [multipass is
needed to make the output look right]. Then dvipdfm is run to
create
a PDF out of the DVI. This process is not working currently, as
there are some limits in the processing tools which we managed
to step through.
</li>
<li>
To create a CHM version, the <tt>make html</tt> output is used
as a basis. A custom PHP postprocesor runs though that,
and gathers the table of contents information, and rewrites some
parts. Then hhc [the HTML Help Compiler] is run to create the CHM.
Hhc is a free program, only available for Windows.
</li>
<li>
To create an extended CHM version, you need XSLT tools [xsltproc].
You need to run <tt>make chm_xsl</tt> and then download and unbz2
the actual complete user notes package. Then you can run
<tt>make_chm</tt> in the <tt>htmlhelp</tt> dir of phpdoc [not the
CHM dir!]. This uses some PHP regex magic to rewrite some parts of
the XSL output, similarly to the normal CHM version, and also uses
hhc.
</li>
</ul>
</div>
<p>As you can see the problem with the build system is that it does
not attempt to reuse many already built parts. The html and phpweb
outputs are completely separately built for example, while they are
95% the same content (the navigation parts differ). A further problem
is that the whole manual is built everytime. That means no quick check
possibility for translators, but more importantly a huge waste of time
on the build machine, as most of the translations still have heavy
untranslated content.</p>
<p>Using PHP regex magic for providing RTL support, and building the
two CHM versions is also not an ideal solution, as those are very
vulnerable to changes in the output format. The extended CHM builds are
in fact halted because of some significant changes in the XSL output
format lately.</p>
<p>The whole point in getting rid of DSSSL is that we need some
solutions
we can customize, and modify as needed. XSLT is ideal for that as there
are some guys knowing that standard, and it is easily readable, so
anyone
can help. But itself XSLT does not solve the "build time waste"
problems.
The negative point of the XSLT based HTML generation is that when we
deal
with a translated manual, there can be encoding colissions in
entities and untranslated documents, though there are proposed
solutions
for that.</p>
<p>I [Goba] had a suggestion on the XSLT base to build a TOC first and
then skip non-translated parts on the XSLT level. That would enable
quick testing too. Wez has a "livedocs" idea which may lead to a more
maintainable solution then XSLT, but we have very small amount of info
on it currently.</p>
<p>Regarding the offline versions of the manual, Goba had an idea of
a "self-hosted manual" which would provide integration support for
PEAR,
PHP-GTK and any other docs, and would use XML for navigation and HTML
and/or XML for formatted pages. Local searching would be supported
with a
PHP based solution. Even customized PDF building would be possible with
this version.</p>
<div class="points">
Some important questions:
<ul>
<li>Where to go from DSSSL? XSLT or custom PHP solution?</li>
<li>How to get a full PDF version working again?</li>
<li>Use an xmllint based "make test" and "./configure" instead
of an [o]nsgmls based [as it is currently]?</li>
<li>Employ a distributed build system to make automatic
manual building work again?</li>
<li>Add some priorities to the build system so English manuals,
and phpweb manuals are built more often?</li>
<li>How to merge the two CHM versions, and make it
automatically
buildable?</li>
</ul>
</div>
<div class="seealso">
See also: <a
href="http://cvs.php.net/co.php/phpdoc/RFC/pdf_problems">phpdoc/RFC/pdf_problems</a>,
<a
href="http://news.php.net/article.php?group=php.mirrors&article=18268">Wez's
livedocs suggestion</a>, <a
href="http://marc.theaimsgroup.com/?l=phpdoc&m=105251292424018">Goba's
self hosted docs RFC</a>, <a
href="http://marc.theaimsgroup.com/?l=phpdoc&m=105101187801978">one speedup idea from
Goba</a>,
<a
href="http://marc.theaimsgroup.com/?l=phpdoc&m=105136521804028">another speedup idea
from Goba</a> and the <a
href="http://marc.theaimsgroup.com/?l=phpdoc&m=105308195019732">discussion
on the Hebrew encoding issue and RTL problems</a>
</div>
</li>
<li>
<h3>Structuring the documentation</h3>
<p>Having structure see also sections in the documentation,
grouping of reference sections by type and manpage like function
documentation are old ideas. The problem with most of these ideas
is that the current DSSSL based build system blocks us from going
on with them, as we lack the expertise to customize the DSSSL sheets
for our likeing.</p>
<p>There is also no support in DocBook for that kind of see also
lists we would like to use, and there is absolutely no support for
reference part grouping. So to achive that we need to customize
DocBook somehow, or rewrite the whole manual structure. The PHP-GTK
documentation group has good experience with using a modified
DocBook DTD, which is very well supported by DocBook.</p>
<p>Still we cannot step in this direction unless the build system
is ready for the modified input. Also note that the flow of the
extensions documented in the TOC is the worst thing we can
provide for a newcomer, and we reecieved criticism for this
point many times in the past.</p>
<div class="points">
Some important questions:
<ul>
<li>Is it OK to use a modified DocBook DTD?</li>
<li>Is the manpage like function documentation still
preferred?</li>
</ul>
</div>
<div class="seealso">
See also: <a
href="http://cvs.php.net/co.php/phpdoc/RFC/reference_grouping">RFC/reference_grouping</a>,
<a
href="http://cvs.php.net/co.php/phpdoc/RFC/manual.xml.in">RFC/manual.xml.in</a>,
and <a
href="http://cvs.php.net/co.php/phpdoc/dtds/phpbook.dtd">dtds/phpbook.dtd</a>
which has add support for reference grouping to DocBook XML
</div>
</li>
<li>
<h3>PHP 5 and PECL</h3>
<p>It is a largely open question when and how we should document
the upcoming new features in PHP 5. As well as how to document the
PHP classes using DocBook. It is important that when PHP 5 comes
out [even in RCs?], the documentation should be up to date. But
it is also important that we are not placing content into the manual
related to PHP 5 without special notices.</p>
<p>With the upcoming PHP releases and with PHP 5, many extension will
be moved [is already moved] to PECL. The PHP documentation is getting
increasingly ready for a copy-paste move of the docs of those
extensions
[having all extension related docs at one place]. But it is still not
decided whether all moved extensions' docs should move to PECL docs,
or leave some at phpdoc.</p>
<p>It is also important to maintain some consistency in moved docs.
Eg. have a listing of removed extensions, make the URL shortcuts
redirect to the PECL manual, move / remove the user notes related
to those extensions, etc.</p>
<div class="points">
Some important questions:
<ul>
<li>How / when to document PHP 5 features?</li>
<li>What extensions will be moved to PECL and when?</li>
</ul>
</div>
<div class="seealso">
I don't know of any material to put here...
</div>
</li>
<li>
<h3>Better 'documentation experience' for users</h3>
<p>This point includes discussion of ideas for improving the
presentation of the online and offline manuals. Manual search
solutions, PHP source code highlighting, better table of
contents, indexes and other stuff would greatly add to the user
experience.</p>
<p>The extended CHM is the best version for onscreen browsing
on Windows. We should build on it's experience and add new
features to other formats too [eg. include user notes in
downloadable versions?].</p>
<p>The role of the different formats should also be discussed.
Whether we need two different Palm versions, two different CHM
versions and the if anyone uses the bightml version [except for
converting it to PDF]? Would a self-hosted manual obsolote the
CHMs?</p>
<div class="seealso">
See also the parts on different formats in the <a
href="#buildsys">build
system topic</a>.
</div>
</li>
<li>
<h3>Separation of 'PHP Manual' and 'PHP Internals Manual'</h3>
<p>Having 'PHP Internals' information in a manual mainly focused
at users leads to many confusions. Development pages can be
returned in searches, users can get there inadvertantly. Having
these sections in the manual also slows down the builds, and makes
the manual downloads bigger for no reason. Those parts are not used
by most of the reader base.</p>
<p>There should be an easy way to separate the manual from the
internals part and have two books separately built. The internals
book would include information on development for PHP 3 / 4 and
the streams development docs currently included in the manual. How
this can be integrated in the current build system is still a
question.</p>
<div class="points">
Some important questions:
<ul>
<li>Do we need translation support for the Internals
Manual?</li>
<li>Should it sit in the phpdoc CVS module?</li>
<li>How to integrate it with the build system?</li>
</ul>
</div>
<div class="seealso">
I don't know of any material to put here...
</div>
</li>
</ol>
<a name="contact"></a>
<h2>Contact</h2>
<p>Contact <a href="mailto:[EMAIL PROTECTED]">the PHP Documentation
Mailing List</a> in case of questions and suggestions for discussions. In
case of suggestions regarding this page or personal problems, please
write to Goba (<span class="linklooking"
title="This is not a real link, you know why :)">goba at php dot
net</span>)</p>
</div>
</body>
<!-- 2002 agenda: http://marc.theaimsgroup.com/?l=phpdoc&m=101558612304019 -->
</html>
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php