[Mono-docs-list] State of Mono Documentation
Jonathan Pryor
jonpryor at vt.edu
Fri Jan 11 05:51:51 EST 2008
On Thu, 2008-01-10 at 21:12 -0600, Mike Kestner wrote:
> Document updating/stubbing is done via the monodocer tool. The tool is
> fairly robust, but can be very noisy. For example, I have frozen at an
> old revision of monodocer in Gtk# because of some changes which
> generated an avalanche of "whitespace" into the Gtk# documents like
> reordering of member nodes. These types of issues just add churn to the
> change management footprint, and make it hard to distinguish real
> changes from noise in a project the size of Gtk#.
I must apologize for this (being the one to make this change).
I modified monodocer to sort the <Member/> nodes (based on @MemberName,
number of parameters, return type, etc.), as originally monodocer
generated output in System.Reflection order, which is (1) completely
unspecified, and (2) can change on the whim of Reflection/mcs/etc.
I figured that sorting the output would *reduce* the amount of _future_
ordering changes.
It also helps with making it easier to find duplicated members, as
they'll be next to each other. (I've found numerous instances of "bad"
duplicate member checking in monodocer -- some fixed only 2 weeks ago --
where the same member would be present multiple times within an XML
file. I found it easier to see these duplicated nodes when they were
sorted next to each other.)
> I want to focus instead on the offline side to put better tools in the
> hands of library authors and project teams. My ultimate goal would be
> to integrate monodocer, validater, and assembler into a WYSIWYG editor
> and documentation administration tool. That rather large goal can be
> segmented into several intermediate milestones.
I like, depending on how far you go. :-)
My own personal plan at the moment is to write an umbrella command-line
program 'mdoc' to better associate the current programs.
For example:
Old: New:
--- ---
mdassembler mdoc assemble
monodocs2html mdoc export-html
monodocs2slashdoc mdoc export-slashdoc
mdnormalizer mdoc normalize
monodocer mdoc update
mdvalidater mdoc validate
mod mdoc view
I wouldn't remove the old programs, but the idea is that this would
allow a "naming" framework for new programs that wouldn't continually
"pollute" $PATH. It would also bring some mental consistency; the name
"monodocer" doesn't really make it easily associated with any of the
other apps as seen through e.g. shell tab completion. :-)
I also want to update the command-line arguments of these apps to
increase consistency, e.g. -o vs. -dest or -path, etc.
So my fear is that your integrated WYSIWYG editor would obsolete this
idea.
I like the idea of a WYSIWYG editor, but I don't want to lose the
ability to do separate command-line updates. I also want to avoid code
duplication. (For example, `mdoc' will simply execute the existing
$prefix/lib/monodoc/*.exe programs, NOT re-implement them.)
Otherwise, I love the idea. :-)
- Jon
More information about the Mono-docs-list
mailing list