[Mono-list] About documentation
Miguel de Icaza
miguel@ximian.com
11 Dec 2002 12:56:01 -0500
Hello,
> Yes, of course, I have downloaded yet that module when I wrote the mail.
> But I didn't found anything else than the directory-structure, empty xml
> files (I suppose they will have the documentation) and the tools. My
> question is about what documentation (API-docs) is written yet and if I
> can see it before I start writting any class reference.
The module you downloaded should have roughly 18 megs of documentation.
That documentation comes from the ECMA specification, and only covers
the classes that are part of ECMA.
I have now checked into MonoDoc the following README file that should
help us stay more organized in the future ;-)
Monodoc
-------
This is the MonoDoc module. It contains the documentation for
the Mono class libraries as well as tools to produce and edit
the documentation.
Hopefully we will also soon have a documentation browser.
* Format
The documentation in this module is in the format used by the
ECMA specification.
* Layout
The documentation is contained in the `class' directory, the
documentation is done in a per-assembly basis. The idea is
that each one of the assemblies will become a documentation
module, and then help browser will be able to aggregate
multiple documentation modules when users install new
assemblies on their system.
Example, the class "System.IO.Path" is part of the corlib
assembly, and its part of the "System.IO" namespace there.
The documentation in english for it, will live in the
following directory:
class/corlib/en/System.IO/Path.xml
Now, each "assembly" has a list of "pending" methods that must
be documented, those live at the assembly level directory, in
this case the "master" file for the corlib assembly will live
in:
class/corlib/mscorlib.xml
This file is used to keep track of what needs to be
documented. The documenting tools can then be used to verify
that everything is documented. These files are generated by
the mkmaster program.
This is a small "snapshot" of what it might look like in a
tree fashion (I can not draw nice trees):
class/
corlib/
en/
System/
System.IO/
System.Reflection/
es/
it/
fr/
de/
System/
System.Xml/
System.Drawing/
* Editing tools.
We are in the process of developing a tool called `monodoc'
which is a Gtk#-based documentation editor that would simplify
the editing of the ECMA-xml documentation. This tool is
currently not finished, but it lives in tools/gtk-monodoc.
* Documentation tools.
Mono classes are being documented in a different way than
Microsoft suggests. The reason obeys to the need to maintain
multiple translations, and the fact that inline-documentation
is better suited for explaining particular implementation
details, or to communicate to someone reviewing/auditing the
code the intentions behind the code.
Adding inline documentation for the whole class library to the
source code makes the source code harder to read. It might be
useful for small projects, but for large projects its not
worth doing that way.
Adam contributed a tool called `MkMaster' which will take an
assembly and will generate a "tree" of the pieces that must be
documented.