[Mono-docs-list] mdoc: Introduction and RFC
Jonathan Pryor
jonpryor at vt.edu
Thu Feb 21 07:24:25 EST 2008
On Thu, 2008-02-21 at 06:58 -0500, Joshua Tauberer wrote:
> Why not just merge all of the tools into a mdoc.exe (with the new
> options parsing library to boot), rather than wrapping them all with a
> script?
Because that would imply removing the older tools, which would break any
number of existing projects; I know that removing monodocer and
monodocs2html would break Mono.Fuse and NDesk.Options, and probably
Gtk#. These tools will need to remain for the foreseeable future, and
potentially may never be removed. New tools can be restricted to just
mdoc sub-commands.
Furthermore, mdoc isn't a shell script, it is a C# .exe. As such, I can
do such wonderful things as -r:monodocer.exe and invoke the monodocer
Main() function directly from mdoc. Alas, this means that everything is
transferred between mdoc and the subcommands via a string[], but this
allows simpler maintenance and code re-use.
> But otherwise I think it's a good idea.
>
> > - `mdoc update' has *far* fewer options than monodocer, mostly because
> > I can't see the need for some monodocer options such as
> > -ignore_extra_docs (it should die now), -pretty (when don't you want
> > nicely formatted XML?), -name, -since, etc.
>
> I think I added -pretty because reformatting XML causes problems with
> version control.
I found that without -pretty, all "unnecessary" whitespace was removed,
which resulted in *huge* diffs after minor updates (lack of newlines,
etc.). Also (monodocer bug?), the initial monodocer output was usually
pretty-printed, even if -pretty wasn't provided, which resulted in
further executions *removing* the whitespace (thus contributing to the
diff problem).
What I have observed is that monodocer occasionally goes schizo and
removes whitespace from e.g. <list/> elements. I have no idea why, nor
have I fixed this yet.
> And I don't even recall what -name does.
Allows you to provide the project name. :-)
Also missing is -type, -namespace, -updateto....
And -overrides is enabled by default under `mdoc update`.
- Jon
More information about the Mono-docs-list
mailing list