* Mono.Documentation/webdoc.cs: When extracting files from the .zip
[mono.git] / mcs / tools / mdoc / ChangeLog
1 2009-04-15  Jonathan Pryor <jpryor@novell.com>
2
3         * Mono.Documentation/webdoc.cs: When extracting files from the .zip
4           file, ensure that the output file is closed.  Properly pre-render
5           ecma namespace documentation.
6
7 2009-04-15  Jonathan Pryor <jpryor@novell.com>
8
9         * Makefile: Add reference to ICSharpCode.SharpZipLib.dll.
10         * mdoc.exe.sources: Add Mono.Rocks/ObjectRocks.cs,
11           Mono.Rocks/StreamRocks.cs.
12         * Mono.Documentation/webdoc.cs: Refactor into smaller methods.  Extract 
13           ZIP file contents in addition to generating HTML output.  Use
14           monodoc helper methods to determine cache directory.
15         * Mono.Documentation/ObjectRocks.cs: Rename to
16           Mono.Rocks/ObjectRocks.cs.
17         * Mono.Rocks/ObjectRocks.cs: Add Check.Destination().
18         * Mono.Rocks/StreamRocks.cs: Added; extension methods for Streams.
19
20 2009-04-15  Jonathan Pryor <jpryor@novell.com>
21
22         * Mono.Documentation/webdoc.cs: The timestamp logic was wrong it the
23           output directory didn't exist.  Fix.
24
25 2009-04-15  Jonathan Pryor <jpryor@novell.com>
26
27         * Mono.Documentation/webdoc.cs: Do as make(1) does: if the
28           target directory already exists and is newer than the source files, 
29           don't regenerate output.  (Greatly speeds things up if nothing has
30           changed.)  Add a --force-update option to disable this behavior.
31
32 2009-04-15  Jonathan Pryor <jpryor@novell.com>
33
34         * Mono.Documentation/webdoc.cs: Change the default -o value to
35           include a "cache" intermediate directory.  This makes it easier to
36           kill the entire cache at once.
37
38 2009-04-15  Jonathan Pryor <jpryor@novell.com>
39
40         * Mono.Documentation/webdoc.cs: Provide nice default -o value.
41
42 2009-04-15  Jonathan Pryor <jpryor@novell.com>
43
44         * Mono.Documentation/webdoc.cs: Load documentation through a
45           HelpSource, not through the RootTree, as URLs of the form
46           "ecma:0#AvoidExtensionMethodOnSystemObjectRule/" use the number (0
47           in this case) as a HelpSource-relative identifier.  Result: you get
48           the wrong documentation if you go through RootTree.
49
50 2009-04-15  Jonathan Pryor <jpryor@novell.com>
51
52         * Makefile: Add reference to System.Web.dll, for HttpUtility.
53         * mdoc.exe.sources: Add ObjectRocks.cs, webdoc.cs to the build.
54         * Mono.Documentation/mdoc.cs: Add export-html-webdoc command, which
55           "pre-renders" HTML for use by the webdoc ASP.NET renderer.
56         * Mono.Documentation/webdoc.cs: Added; MDocExportWebdocHtml
57           implementation; attempts to pre-render HTML based on .tree/.zip
58           file contents.
59         * Mono.Documentation/ObjectRocks.cs: Added; extension methods for tree
60           traversal (from Mono.Rocks).  For use in webdoc.cs.
61
62 2009-04-09  Jonathan Pryor <jpryor@novell.com>
63
64         * Mono.Documentation/monodocer.cs: Using a single IAssemblyResolver is
65           an improvement, but doesn't fix all problems.  In particular, some
66           assemblies will depend upon other assemblies to load (e.g. 3rd party
67           assemblies) but these dependent assemblies shouldn't be documented.
68           Add support for -r:ASSEMBLY and -L:DIRECTORY arguments to allow the
69           user to manually add to the assembly search path so that assemblies
70           can be found.  Assemblies added via -r will NOT be documented.
71
72 2009-04-08  Jonathan Pryor <jpryor@novell.com>
73
74         * Mono.Documentation/monodocer.cs: Use a single IAssemblyResolver
75           shared amongst all AssemblyDefinitions to resolve assembly/type
76           references with Cecil.  Otherwise, if we have deeply nested
77           directories with cross-directory assembly dependencies, then Cecil
78           won't find the necessary assemblies (e.g. b/bin/Debug/b.dll has a
79           type which inherits from a/bin/Debug/a.dll -- here, we'll have two
80           separate AssemblyDefinitions, and when b.dll's AssemblyDefinition
81           tries to resolve types from a.dll, it fails).
82           See: http://lists.ximian.com/pipermail/mono-devel-list/2009-April/031646.html
83
84 2009-03-29  Jonathan Pryor <jpryor@novell.com>
85
86         * Mono.Documentation/exceptions.cs: Add
87           ExceptionLocations.AddedMember, used for --exceptions=added support.
88         * Mono.Documentation/monodocer.cs: Add --exceptions=added, which will 
89           only add <exception/> elements for newly added elements.  This is
90           useful for updating documentation for established projects which
91           already have <exception/> corrections (e.g. *removal* of
92           <exception/> elements because the exceptions weren't actually
93           possible), so only new members should have <exception/> created.
94
95 2009-03-20  Jonathan Pryor <jpryor@novell.com>
96
97         * Mono.Documentation/monodocs2html.cs: Perform the timestamp check for
98           the top-level and namespace-level index files.
99
100 2009-03-21  Jonathan Pryor <jpryor@novell.com>
101
102         * Mono.Documentation/monodocer.cs: Be nice to make,
103           mdoc-export-html, and other apps that use file timetamps: if the 
104           file contents haven't changed after the update, don't replace the
105           "original" file.  This preserves file timestamps, thus allowing
106           other apps to behave nicely (e.g. mdoc-export-html won't update all
107           documentation after running mdoc-update, as the files won't change
108           unless something has *actually* changed).
109
110 2009-03-20  Jonathan Pryor <jpryor@novell.com>
111
112         * Mono.Documentation/monodocs2html.cs: Do as make(1) does: if the
113           target file already exists and is newer than the source file, don't
114           regenerate it.  (Greatly speeds things up if only a few .xml files
115           changed.)  Add a --force-update option to disable this behavior.
116
117 2009-02-26  Jonathan Pryor <jpryor@novell.com>
118
119         * Mono.Documentation/assembler.cs: When processing an empty directory,
120           it's possible for HelpSource.Tree to be null; avoid an NRE.
121
122 2009-02-17  Jonathan Pryor <jpryor@novell.com>
123
124         * Test/DocTest-v1.cs: Add test for #475814.
125         * Mono.Documentation/exceptions.cs, Mono.Documentation/monodocer.cs:
126           Use the new Mono.Cecil .Resolve() methods instead of (erroneously)
127           duplicating their functionality with the .GetDefinition() methods.
128           ExceptionLookup.this[IMemberReference] checks for multi-dimensional
129           arrays, as MD arrays are "special" (Cecil can't resolve them, as
130           they're internal to the runtime with no specific associated IL).
131           Fixes #475814.
132
133 2009-02-17  Jonathan Pryor <jpryor@novell.com>
134
135         * Mono.Documentation/monodocer.cs: Check that the cref attribute is
136           non-null before trying to use it when importing slashdoc sources.
137           Fixes #475852.
138         * Test/DocTest-v1.cs: Add an <exception/> doc comment with an invalid
139           attribute value for testing.
140
141 2009-02-17  Jonathan Pryor <jpryor@novell.com>
142
143         * Mono.Documentation/mdoc.cs: Set Environment.ExitCode=1 if an
144           exception occurs, so that calling code can determine that an error
145           occurred w/o resorting to parsing stderr.  Fixes #475746.
146
147 2009-02-16  Jonathan Pryor <jpryor@novell.com>
148
149         * Mono.Documentation/monodocer.cs: Support C#4 variant generics, e.g.
150           `delegate TRet Func<in TArg, out TRet>(TArg a)'.  Alas, this
151           required making MemberFormatter explicitly stateful, so any thoughts
152           of using instances w/o locking are now out the window...  (Not that
153           threads are currently used, but they're planned to be used...)
154           TODO: Add a test to Test/DocTest-v1.cs.  This wasn't done as the
155           current gmcs support doesn't like intermixing variance with generic
156           parameter attributes, and I don't want to introduce a new delegate
157           type (and the ~6 new files that would imply) just for this feature.
158
159 2009-02-10  Jonathan Pryor <jpryor@novell.com>
160
161         * Mono.Documentation/monodocer.cs: Cleanup: turn static data into
162           instance data (for future Threading changes, as only static data
163           will be tracked for thread-safety); use MDocCommand.Message() and
164           MDocCommand.Error() for message reporting; remove warnings.
165
166 2009-01-05  Jonathan Pryor <jpryor@novell.com>
167
168         * Makefile: Fix $(PROGRAM) dependencies so that mdoc.exe is rebuilt
169           when one of the dependent ../monodoc/Resources/* files is changed.
170
171 2009-01-05  Jonathan Pryor <jpryor@novell.com>
172
173         * Mono.Documentation/mdoc.cs: `mdoc' (no arguments) shouldn't print an
174           index out of range error.  Fix.
175         * Mono.Documentation/monodocer.cs: Rename -fno-member-assembly-info to
176           -fno-assembly-versions, which prevents generation of //AssemblyVersion
177           elements.  This suffers the same warning as -fno-member-assembly-info,
178           so don't use unless you can guarantee that no members will 
179           ever be removed from your public API. :-)
180           Clean up -f handling so that -f:no-assembly-versions will work as
181           expected.
182
183 2009-01-05  Jonathan Pryor <jpryor@novell.com>
184
185         * Mono.Documentation/monodocer.cs: Add -fno-member-assembly-info,
186           which remove /Type/Members/Member/AssemblyInfo elements.
187           Requested by Mike Kestner.
188           Warning: this option will break automatic version tracking, so if a
189           member is present in e.g. v1.0 and is removed in e.g. v2.0, 
190           the //Member element will be removed entirely when updating the
191           documentation against the 2.0 assembly.  Use with care.
192
193 2008-12-06  Jonathan Pryor <jpryor@novell.com>
194
195         * Mono.Documentation/monodocer.cs: Remove "exception" from DocsNodeOrder
196           so that <exception/> elements aren't grouped together.  This causes
197           `make doc-update` to result in ~0 changes in ../../class/corlib.
198           Change the sorting of --exceptions-generated <exception/> nodes so
199           that namespaces are taken into consideration, thus "properly"
200           grouping types by namespaces, as I'd usually expect...
201
202 2008-12-05  Jonathan Pryor <jpryor@novell.com>
203
204         * Mono.Documentation/monodocer.cs, Mono.Documentation/monodocs2html.cs: 
205           Reorder parameters to be in sorted order, so `mdoc help COMMAND` 
206           parameters are sorted.
207         * Mono.Documentation/monodocer.cs: Remove try/catch in
208           MDocUpdater.Run(MDocUpdaterOptions), so that any generated exceptions
209           will be handled within mdoc itself (thus allowing the normal 
210           "See `mdoc help' for more information." message).  Improve some
211           error messages so they're more useful.
212
213 2008-12-04  Jonathan Pryor <jpryor@novell.com>
214
215         * Makefile: Specify --exceptions=all in mdoc-update invocations.
216         * exceptions.cs: Add support for documenting a *subset* of all
217           possible exceptions.  Subsets include: the member itself, the member
218           and methods it calls that are in the same assembly, and all possible
219           methods across all assemblies.
220         * monodocer.cs: Allow --exceptions to take a SOURCES argument, to
221           control which location sources will be searched for exceptions.
222
223 2008-12-02  Jonathan Pryor <jpryor@novell.com>
224
225         * Makefile: Add --exceptions to `mdoc update` invocations to test
226           <exception/> generation.
227         * mdoc.exe.sources: Add Mono.Documentation/exceptions.cs to the build.
228         * Mono.Documentation/exceptions.cs: Added; searches through the
229           callgraph of an IMemberReference, recording which exception types
230           are created (and where they're created from).
231         * Mono.Documentation/monodocer.cs: Generate <exception/> elements.
232         * Test/DocTest-v1.cs: Modify some methods so that exceptions are
233           emitted (thus testing <exception/> generation).
234         * Test/DocTest-v2.patch: Update (so patch(1) doesn't complain).
235         * Test/en.expected.importecmadoc/System/Array.xml,
236           Test/en.expected.importecmadoc/System/Environment.xml,
237           Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
238           Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
239           Test/en.expected.importslashdoc/Mono.DocTest/DocValueType.xml,
240           Test/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
241           Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
242           Test/en.expected.importslashdoc/System/Array.xml,
243           Test/en.expected.importslashdoc/System/Environment.xml,
244           Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
245           Test/en.expected.since/Mono.DocTest/DocAttribute.xml,
246           Test/en.expected.since/Mono.DocTest/DocValueType.xml,
247           Test/en.expected.since/Mono.DocTest/UseLists.xml,
248           Test/en.expected.since/Mono.DocTest/Widget.xml,
249           Test/en.expected.since/System/Array.xml,
250           Test/en.expected.since/System/Environment.xml,
251           Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
252           Test/en.expected/Mono.DocTest/DocAttribute.xml,
253           Test/en.expected/Mono.DocTest/DocValueType.xml,
254           Test/en.expected/Mono.DocTest/UseLists.xml,
255           Test/en.expected/Mono.DocTest/Widget.xml,
256           Test/en.expected/System/Array.xml,
257           Test/en.expected/System/Environment.xml,
258           Test/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
259           Test/html.expected/Mono.DocTest/DocAttribute.html,
260           Test/html.expected/Mono.DocTest/DocValueType.html,
261           Test/html.expected/Mono.DocTest/UseLists.html,
262           Test/html.expected/Mono.DocTest/Widget.html,
263           Test/html.expected/System/Array.html,
264           Test/html.expected/System/Environment.html,
265           Test/msxdoc-expected.importslashdoc.xml: Flush; adds <exception/>
266           elements (and/or HTML-rendered output of <exception/> elements).
267
268 2008-11-19  Jonathan Pryor <jpryor@novell.com>
269
270         * Mono.Documentation/monodocer.cs: Add the assembly's directory to
271           Cecil's BaseAssemblyResolver search list so that assemblies in the
272           same directory as the assembly we're processing can be found.
273           Allows mono-tools/gendarme to be built with a Cecil-using mdoc.
274
275 2008-11-15  Jonathan Pryor <jpryor@novell.com>
276
277         * Mono.Documentation/monodocer.cs: Properties on interfaces shouldn't
278           have `abstract' on them.
279         * Test/DocTest-v1.cs: Add a property to an interface to check above.
280         * Test/en.expected.importslashdoc/Mono.DocTest/Widget+IMenuItem.xml,
281           Test/en.expected.since/Mono.DocTest/Widget+IMenuItem.xml,
282           Test/en.expected/Mono.DocTest/Widget+IMenuItem.xml,
283           Test/html.expected/Mono.DocTest/Widget+IMenuItem.html,
284           Test/msxdoc-expected.importslashdoc.xml: Flush.
285
286 2008-11-15  Jonathan Pryor <jpryor@novell.com>
287
288         * Mono.Documentation/monodocer.cs: Fix regressions found from 
289           `make doc-update` in corlib:
290           - Ensure that custom attributes are sorted (they weren't before,
291             resulting in spurious differences between Reflection & Cecil
292             output).
293           - CecilExtensions.GetMethod() should return null if the method can't
294             be found.
295           - DocUtils.IsDelegate() should ensure that the delegate type isn't
296             abstract (otherwise it dies on System.MulticastDelegate, which is
297             an abstract type lacking an "Invoke" method).
298           - Properly count generic argument counts for nested types (fixes IOE
299             from S.C.G.Dictionary`2.KeyCollection.Enumerator).
300         * Test/DocTest-v1.cs: Add doubly-nested class under a generic class to
301           simulate S.C.G.Dictionary`2.KeyCollection.Enumerator behavior.
302         * Test/en.expected.importslashdoc/index.xml,
303           Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml,
304           Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml,
305           Test/en.expected.since/index.xml,
306           Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml,
307           Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml,
308           Test/en.expected/index.xml,
309           Test/en.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml,
310           Test/en.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml,
311           Test/html.expected/index.html,
312           Test/html.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.html,
313           Test/html.expected/Mono.DocTest.Generic/GenericBase`1+NestedCollection.html,
314           Test/html.expected/Mono.DocTest.Generic/index.html,
315           Test/msxdoc-expected.importslashdoc.xml: Flush (new types/changes
316           from DocTest-v1.cs changes).
317
318
319 2008-11-14  Jb Evain  <jbevain@novell.com>
320
321         * Makefile: Use Mono.Cecil from class/lib/net_1_1, not net_2_0.
322
323 2008-11-14  Jonathan Pryor <jpryor@novell.com>
324
325         * Makefile: Don't build monodocer1.exe, and add Mono.Cecil.dll to the 
326           list of assembly references for mdoc.exe.
327         * Mono.Documentation/monodocer.cs: Migrate from System.Reflection to
328           Mono.Cecil.  This was done for two reasons:
329           1. mscorlib.dll: Reflection can load only one mscorlib.dll into an
330              AppDomain, which must be the same mscorlib.dll as the runtime
331              version.  Thus, in order to run monodocer on mscorlib.dll v1.1,
332              monodocer must be a .NET 1.1 application, and to document
333              mscorlib.dll v2.0, monodocer must be a .net 2.0 app.
334           1.a I don't think it's feasable to drop support for 
335              mscorlib.dll v1.1.
336           1.b This has been previously handled (so far) with conditional 
337              compilation, but the conditional compilation is painful to
338              maintain, and prevents use of LINQ in ongoing development.
339           1.c .NET 4.0 will be coming out "soon" (within 2 years?), and it's
340              possible that mono will maintain the same limitation, thus
341              necessitating having *three* different monodocer programs to
342              document mscorlib.dll for v1.1, v2.0, and v4.0.  Yech.
343           2. Future directions: It would be nice to parse method/property IL
344              bodies to determine which exceptions can be generated, thus
345              generating <exception cref="..."/> stubs.  Even with empty stubs,
346              I belive this would be useful within e.g. MonoDevelop to know
347              which exceptions a method is able to generate.
348              This cannot be done (at present) with System.Reflection, and
349              would require Mono.Cecil.
350           Downsides: mdoc now depends upon Mono.Cecil, which is API-unstable.
351           This will likely also complicate execution under .NET, as Mono.Cecil
352           would need to be XCOPY deployed into mdoc.exe's directory.
353         * Test/DocTest-v1.cs: Add additional tests for Custom Attribute
354           generation.
355         * Test/en.expected.importslashdoc/Mono.DocTest.Generic/Func`2.xml,
356           Test/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
357           Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
358           Test/en.expected.importslashdoc/Mono.DocTest/Widget+Direction.xml,
359           Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
360           Test/en.expected.since/Mono.DocTest.Generic/Func`2.xml,
361           Test/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
362           Test/en.expected.since/Mono.DocTest/DocAttribute.xml,
363           Test/en.expected.since/Mono.DocTest/Widget+Direction.xml,
364           Test/en.expected.since/Mono.DocTest/Widget.xml,
365           Test/en.expected/Mono.DocTest.Generic/Func`2.xml,
366           Test/en.expected/Mono.DocTest.Generic/MyList`2.xml,
367           Test/en.expected/Mono.DocTest/DocAttribute.xml,
368           Test/en.expected/Mono.DocTest/Widget+Direction.xml,
369           Test/en.expected/Mono.DocTest/Widget.xml,
370           Test/html.expected/Mono.DocTest.Generic/Func`2.html,
371           Test/html.expected/Mono.DocTest.Generic/MyList`2.html,
372           Test/html.expected/Mono.DocTest/DocAttribute.html,
373           Test/html.expected/Mono.DocTest/Widget+Direction.html,
374           Test/html.expected/Mono.DocTest/Widget.html,
375           Test/msxdoc-expected.importslashdoc.xml: Flush -- updated output due
376           to new custom attributes, better implemented interface detection --
377           care of the Mono.Cecil migration -- etc.
378
379 2008-11-13  Jonathan Pryor <jpryor@novell.com>
380
381         * Test/html.expected/**: Update 
382           //meta[@http-equiv='Content-Type']/@content attribute value (changed
383           due to yesterday's defaulttemplate.xsl fix).
384
385 2008-11-12  Jonathan Pryor <jpryor@novell.com>
386
387         * Resources/defaulttemplate.xsl: Update /html/head/meta/@content value
388           so that IE7 properly recognizes the file as UTF-8 encoded.
389           Fixes #444009.
390
391 2008-10-27  Jonathan Pryor <jpryor@novell.com>
392
393         * Makefile: Fix build error caused by filenames containing '`'.
394
395 2008-10-27  Jonathan Pryor <jpryor@novell.com>
396
397         * Mono.Documentation/mdoc.cs: TraceLevel.Error messages should go to
398           Console.Error, as per Unix convention.
399         * Makefile: cehck-mdoc-validate* needs to also capture standard error.
400
401 2008-10-27  Jonathan Pryor <jpryor@novell.com>
402
403         * Mono.Documentation/validate.cs: Remove warnings
404         * Test/validate.check.monodocer, Test/validate.check.monodocer.since:
405           Don't generate output if no errors are found.
406         * Test/validate.check.monodocer.importslashdoc: Prefix error messages
407           with "mdoc:", as per Unix convention.
408
409 2008-10-24  Jonathan Pryor <jpryor@novell.com>
410
411         * Makefile: Fixup mdoc.exe dependencies so that it's rebuilt if the
412           resources or monodoc.dll change.  Add tests for mdoc-validate.
413         * Mono.Documentation/assembler.cs, Mono.Documentation/mdoc.cs,
414           Mono.Documentation/monodocer.cs, Mono.Documentation/monodocs2html.cs,
415           Mono.Documentation/monodocs2slashdoc.cs,
416           Mono.Documentation/validate.cs: 
417           - Major rearchitecture; instead of having the option parsing 
418             centralized within mdoc.cs, keep option parsing within the relevant 
419             files/types.
420           - Introduce the MDocCommand abstract class to serve as the base class 
421             -- primarily done to introduce the new Message() and Error() 
422             methods, in which Message() will only show the message if the 
423             current message level is >= the message's level (thus minimizing 
424             console spew); see ../monodoc for more details.
425           - Add `-v' ("verbose") top-level argument to allow setting/adding 
426             levels, so that `mdoc -v -v assemble ...` will show *all*
427             assemble-associated messages (which can be quite voluminous).
428           - Remove compiler warnings, when able.
429         * Mono.Documentation/XhtmlWriter.cs: Remove warning about unused
430           variable.
431         * Resources/monodoc-ecma.xsd: Extend the XSD to support more
432           elements/attributes on various elements -- e.g. mdoc-update looks
433           for a //code/@src attribute, which wasn't defined in the XSD.  Oops.
434         * Test/validate.check.monodocer.importslashdoc: Flush (due to above
435           XSD changes).
436
437 2008-10-22  Jonathan Pryor <jpryor@novell.com>
438
439         * Makefile: Correct path names.
440         * Mono.Documentation/monodocer.cs: Better support nested types.
441         * Test/DocTest-v1.cs: Add 4 levels of nested types.
442         * Test/en.expected.importslashdoc/index.xml,
443           Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
444           Test/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml,
445           Test/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass+Double+Triple.xml,
446           Test/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass+Double.xml,
447           Test/en.expected.since/index.xml,
448           Test/en.expected.since/Mono.DocTest/Widget.xml,
449           Test/en.expected.since/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml,
450           Test/en.expected.since/Mono.DocTest/Widget+NestedClass+Double+Triple.xml,
451           Test/en.expected.since/Mono.DocTest/Widget+NestedClass+Double.xml,
452           Test/en.expected/index.xml,
453           Test/en.expected/Mono.DocTest/Widget.xml,
454           Test/en.expected/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml,
455           Test/en.expected/Mono.DocTest/Widget+NestedClass+Double+Triple.xml,
456           Test/en.expected/Mono.DocTest/Widget+NestedClass+Double.xml,
457           Test/html.expected/index.html,
458           Test/html.expected/Mono.DocTest/index.html,
459           Test/html.expected/Mono.DocTest/Widget.html,
460           Test/html.expected/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.html,
461           Test/html.expected/Mono.DocTest/Widget+NestedClass+Double+Triple.html,
462           Test/html.expected/Mono.DocTest/Widget+NestedClass+Double.html,
463           Test/msxdoc-expected.importslashdoc.xml: Flush.
464
465 2008-10-17  Jonathan Pryor <jpryor@novell.com>
466
467         * Makefile: Reference the monodoc.dll from the net_1_1 profile, as 
468           that's the only one that will get built.
469
470 2008-10-17  Jonathan Pryor <jpryor@novell.com>
471
472         * Makefile: Fix $(EXTRA_DISTFILES) so that `make distcheck` doesn't
473           fail on mdoc anymore...
474
475 2008-10-18  Raja R Harinath  <harinath@hurrynot.org>
476
477         * Makefile (MCS1): Use 'class/lib/net_1_1', not 'class/lib/1.0'.
478
479 2008-10-17  Jonathan Pryor <jpryor@novell.com>
480
481         * Mono.Documentation/monodocer.cs: -overrides & -pretty should default 
482           to true.  (Not a major change, as mdoc.exe already did this, so it
483           really only impacts monodocer1.exe, which is internal...)
484
485 2008-10-17  Jonathan Pryor <jpryor@novell.com>
486
487         * Mono.Documentation/monodocer.cs: Only provide a Main() method and
488           use Mono.GetOptions when targeting .NET 1.0 (i.e. monodocer1.exe).
489
490 2008-10-16  Jonathan Pryor <jpryor@novell.com>
491
492 Migration from monodoc/tools to mcs/tools/mdoc...
493
494         * . (svn:ignore), Test (svn:ignore): Ignore generated files.
495         * assembler.cs, mdoc.cs, monodocer.cs, monodocs2html.cs,
496           monodocs2slashdoc.cs, normalize.cs, validate.cs, XhtmlWriter.cs:
497           Move to Mono.Documentation.
498         * defaulttemplate.xsl, overview.xsl, stylesheet.xsl: Moved to
499           Resources.
500         * DocTest: Moved to Test.
501         * DocTest-v1.cs, DocTest-v2.patch, TestEcmaDocs.xml: Moved to Test.
502         * mdoc.exe.sources: Added; mcs include file to build mdoc.exe.
503         * Makefile: Added; build mdoc.exe, monodocer1.exe, and unit tests for
504           mdoc.exe
505         * Mono.Documentation/assembler.cs, Mono.Documentation/normalize.cs,
506           Mono.Documentation/mdoc.cs, Mono.Documentation/monodocs2slashdoc.cs,
507           Mono.Documentation/monodocs2html.cs, Mono.Documentation/validate.cs:
508           Modify command line handling to remove Mono.GetOptions dependency.
509         * Test/DocTest-v1.cs: Update //code/@src attribute due to changed paths.
510         * Test/msxdoc-expected.importslashdoc.xml,
511         * Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml: Flush 
512           due to above DocTest-v1.cs change.
513
514 2008-10-16  Jonathan Pryor <jpryor@novell.com>
515
516         * monodocer.cs: Fixup sorting of explicitly-implement generic members.  
517           This keeps members from "bouncing around" in random orders when
518           updating documentation...
519         * DocTest-v1.cs: Explicitly implement some generic interface members on
520           MyList<A,B> to provoke the bug fixed above.
521           Dictionary<K,V>.ValueCollection in mscorlib was the original
522           example.
523         * DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
524           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
525           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
526           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
527           DocTest/msxdoc-expected.importslashdoc.xml: Flush.
528
529 2008-10-15  Jonathan Pryor <jpryor@novell.com>
530
531         * monodocer.cs: Ignore some attributes, because they're ~meaningless
532           for documentation purposes (e.g. who cares if we need attributes to
533           represent decimal constants, or that a method shouldn't be stepped
534           into with the debugger, or...).
535         * DocTest/en.expected/index.xml,
536         * DocTest/en.expected/Mono.DocTest/Widget.xml,
537         * DocTest/en.expected/Mono.DocTest.Generic/Extensions.xml,
538         * DocTest/en.expected.since/index.xml,
539         * DocTest/en.expected.since/Mono.DocTest/Widget.xml,
540         * DocTest/en.expected.since/Mono.DocTest.Generic/Extensions.xml,
541         * DocTest/html.expected/Mono.DocTest/Widget.html,
542         * DocTest/html.expected/Mono.DocTest.Generic/Extensions.html,
543         * DocTest/en.expected.importslashdoc/index.xml,
544         * DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
545         * DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/Extensions.xml:
546           Flush.
547
548 2008-10-05  Jonathan Pryor <jpryor@novell.com>
549
550         * monodocer.cs: When sorting <Member/> elements elements, take generic
551           type parameters into account, so that methods with the same number
552           of type parameters are sorted together, instead of strewn across the
553           file according to the full //Member/@MemberName comparison.
554         * DocTest/**: Flush (and wtf is with the [DebuggerHidden] appearance?).
555
556 2008-09-19  Jonathan Pryor <jpryor@novell.com>
557
558         * DocTest-v1.cs: Add a member with a "deeply nested" generic parameter
559           list, so test the mdoc-html-utils.xsl fix.
560         * DocTest/msxdoc-expected.importslashdoc.xml,
561           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
562           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
563           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
564           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html: Flush.
565
566 2008-09-16  Jonathan Pryor <jpryor@novell.com>
567
568         * monodocer.cs: FieldInfo.GetValue() may throw, particularly if getting 
569           the value of a public+static+readonly field, and the constructor for 
570           the type of said field throws an exception (though DocTest-v1.cs has
571           a similar scenario).  This is bad, as it prevents monodocer from
572           completing its work.  Found by Dan Morgan.
573         * DocTest-v1.cs: Create a `public static readonly` field that will
574           generate an exception from the class constructor.
575         * DocTest/en.expected/Mono.DocTest/Widget.xml,
576           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
577           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
578           DocTest/html.expected/Mono.DocTest/Widget.html,
579           DocTest/msxdoc-expected.importslashdoc.xml: Flush.
580
581 2008-09-16  Jonathan Pryor <jpryor@novell.com>
582
583         * monodocer.cs: Allow #region/#endregion parsing to cope with blank lines.
584
585 2008-09-15  Jonathan Pryor <jpryor@novell.com>
586
587         * monodocer.cs: Strip off leading whitespace up to the indent level that
588           #region was found.  This allows controlling how much leading whitespace is
589           preserved within the documentation (as too much whitespace will cause the
590           code to be indented significantly when rendered to e.g. html).
591         * DocTest-v1.cs: Indent the #region, to test the above.
592         * DocTest/msxdoc-expected.importslashdoc.xml,
593           DocTest/html.expected/Mono.DocTest/DocAttribute.html,
594           DocTest/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml:
595           Flush.
596
597 2008-09-15  Jonathan Pryor <jpryor@novell.com>
598
599         * monodocer.cs: Allow //code/@src to include an anchor, in which the 
600           anchor specifies a #region to include, instead of including the
601           entire document.  This is currently limited to C# code.  For example,
602           `<code lang="C#" src="foo.cs#Text"/>` would look insert all text
603           between `#region Text` and `#endregion` within foo.cs.
604         * DocTest-v1.cs: Add a #region, <code/> block to test the above.
605         * DocTest/msxdoc-expected.importslashdoc.xml,
606           DocTest/html.expected/Mono.DocTest/DocAttribute.html,
607           DocTest/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml:
608           Flush.
609
610 2008-09-11  Jonathan Pryor <jpryor@novell.com>
611
612         * stylesheet.xsl: Post-process $cref so that we can use "nice" 
613           //see/@cref strings that can actually refer to the right member.
614           For example, `<see cref="P:Foo.Bar{T}.Baz"/>` is needed to get a
615           nicely rendered "Foo.Bar<T>.Baz" link text, but previously it
616           wouldn't link to anything -- you'd need 
617           `<see cref="P:Foo.Bar`1.Baz"/>` to get a functioning link for HTML
618           output.  This now works.
619
620 2008-09-04  Jonathan Pryor <jpryor@novell.com>
621
622         * monodocer.cs: You can't use FieldInfo.GetValue() on generic types.
623         * DocTestv1.cs: Add checks for static fields on generic types.
624         * DocTest/**: Flush.
625
626 2008-09-04  Jonathan Pryor <jpryor@novell.com>
627
628         * monodocer.cs: Clear out existing <value/> elements when import XML
629           documentation which also contains a <value/> element.  (This keeps us from
630           getting multiple duplicate <value/> elements every time we update while
631           importing.)
632
633 2008-08-31  Jonathan Pryor <jpryor@novell.com>
634
635         * DocTest-v1.cs: Update XML doc comment to mention correct cref.
636         * monodocer.cs: Further fixup XML documentation import and import the actual
637           *contents* of the <exception/> element (oops).  Add support for importing
638           XML documentation for explicitly implemented interface members (CSC-style,
639           not gmcs-style).
640
641 2008-08-27  Jonathan Pryor <jpryor@novell.com>
642
643         * monodocer.cs: Fixup XML documentation import to be more consistent with
644           ECMA XML import.  In particular, this fixes <exception/> import so that
645           the same element isn't imported multiple times, leading to duplicate
646           <exception/> elements the more often monodocer is run.
647         * DocTest/msxdoc-expected.importslashdoc.xml,
648           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml: Flush.
649           Changes order of imported XML to reflect the original element order.
650
651 2008-08-11  Jonathan Pryor <jpryor@novell.com>
652
653         * monodocer.cs: Build fix (gmcs doesn't like using-alias-directives to
654           private nested types anymore).
655
656 2008-05-06  Wade Berrier  <wberrier@novell.com>
657
658         * Makefile.am: Add Options.cs to EXTRA_DIST
659
660 2008-04-22  Jonathan Pryor <jpryor@novell.com>
661
662         * DocTest/en.expected/Mono.DocTest.Generic/Func`2.xml,
663           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/Func`2.xml,
664           DocTest/en.expected.since/Mono.DocTest.Generic/Func`2.xml,
665           DocTest/html.expected/Mono.DocTest.Generic/Func`2.html: Flush: n377596 
666           got fixed, so we can now retrieve custom attributes on all generic type
667           parameters.
668
669 2008-04-15  Jonathan Pryor <jpryor@novell.com>
670
671         * . (svn:ignore): ignore generated files.
672         * Makefile.am: Add XmlDocUtils.cs to the build.  Add unit tests for
673           monodocs2slashdoc; other monodocs2slashdoc changes.
674         * mdoc.cs: Update the arguments accepted by monodocs2slashdoc.
675         * monodocs2slashdoc.cs: Move DocUtils class into ../engine/XmlDocUtils.cs.
676           Add support for a -o parameter which contains all output (if specified).
677         * monodocer.cs:
678           - Add special support for extension methods -- index.xml now contains an
679             /Overview/ExtensionMethods element which contains ExtensionMethod
680             elements for all extension methods within all assemblies processed.
681           - The <ExtensionMethod/> element contains a subset of the <Member/> of the
682             actual extension method (and thus will contain a useful subset of the
683             documentation the source <Member/> contains), along with a <Targets/>
684             element describing all types the extension method applies to.
685           - Consequently, if you edit the documentation of your extension method,
686             you need to re-run monodocer to get the newly written documentation
687             inserted into index.xml.
688           - //Parameter/@RefType is "overloaded" to contain the "this" modifier of
689             extension methods (as this was easiest within mdoc-html-utils.xsl).
690           - Within CSharpMemberFormatter, insert generic type constraints for 
691             methods.  (Previously constraints were only done on types due to an
692             oversight.)
693         * monodocs2html.cs: Before rendering documentation via the XSLT, insert any
694           extension methods applicable to the type so that the extension methods
695           will be displayed.
696         * DocTest-v1.cs: Add a class providing extension methods.
697         * stylesheet.xsl: Extension methods shouldn't be documented within the type,
698           just declared (and linked to the actual type's documentation).
699         * DocTest/msxdoc-expected.importslashdoc.xml: Added; expected output for
700           monodocs2slashdoc unit test.
701         * DocTest/en.expected/index.xml, 
702           DocTest/en.expected/Mono.DocTest/UseLists.xml, 
703           DocTest/en.expected/Mono.DocTest.Generic/Extensions.xml, 
704           DocTest/en.expected/Mono.DocTest.Generic/Func`2.xml, 
705           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml, 
706           DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml, 
707           DocTest/en.expected.since/index.xml, 
708           DocTest/en.expected.since/Mono.DocTest/UseLists.xml, 
709           DocTest/en.expected.since/Mono.DocTest.Generic/Extensions.xml, 
710           DocTest/en.expected.since/Mono.DocTest.Generic/Func`2.xml, 
711           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml, 
712           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml, 
713           DocTest/en.expected.importslashdoc/index.xml, 
714           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml, 
715           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/Extensions.xml, 
716           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/Func`2.xml, 
717           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml, 
718           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml, 
719           DocTest/html.expected/index.html, 
720           DocTest/html.expected/NoNamespace.html, 
721           DocTest/html.expected/Mono.DocTest/DocAttribute.html, 
722           DocTest/html.expected/Mono.DocTest/DocValueType.html, 
723           DocTest/html.expected/Mono.DocTest/IProcess.html, 
724           DocTest/html.expected/Mono.DocTest/UseLists.html, 
725           DocTest/html.expected/Mono.DocTest/Widget.html, 
726           DocTest/html.expected/Mono.DocTest/Widget+IMenuItem.html, 
727           DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html, 
728           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html, 
729           DocTest/html.expected/Mono.DocTest.Generic/index.html, 
730           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html, 
731           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.html, 
732           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html, 
733           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html, 
734           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html, 
735           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html, 
736           DocTest/html.expected/System/Array.html: Flush; also contains additional
737           <Attributes/> elements on generic type parameters due to a mono fix.
738
739 2008-04-09  Jonathan Pryor <jpryor@novell.com>
740
741         * DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html: Fix the
742           System.EventHandler link.
743
744 2008-04-08  Jonathan Pryor <jpryor@novell.com>
745
746         * DocTest-v1.cs: Add more attributes, generic constraints to further test
747           monodocer.
748         * Makefile.am: Add check-md-html-dir target to help with testing
749           monodocs2html w/o re-generating the DocTest/en.actual directory.
750         * monodocer.cs: Lots of changes:
751           - Format change: /Type/TypeParameters/TypeParameter doesn't store the type 
752             parameter name as it's value (e.g.  <TypeParameter>A</TypeParameter>), 
753             but instead stores the name as an attribute (e.g. 
754             <TypeParameter Name="A" />).  This was done as Generic Arguments can
755             contain both constraints and attributes which were previously
756             unrecorded. 
757           - Record constraints under a //TypeParameter/Constraints element, and 
758             attributes under a //TypeParameter/Attributes element.
759           - Generic arguments for methods are now recorded in a
760             /Type/Members/Member/TypeParameters element, with the same schema as
761             type-level arguments.
762           - Properly insert the [return:...] attributes on delegates.
763           - Modify CSharpFullMemberFormatter to generate generic argument
764             constraints on type and member signatures.
765           - Note: attributes are currently not inserted due to n#322399.
766         * stylesheet.xsl: Properly escape generic type names so that all anchors
767           are modeled after ECMA-334 CREFs, e.g. T:Foo.Bar`1, not T:Foo.Bar<T>.
768         * DocTest/en.expected/index.xml,
769           DocTest/en.expected/Mono.DocTest/UseLists.xml,
770           DocTest/en.expected/Mono.DocTest/Widget.xml,
771           DocTest/en.expected/Mono.DocTest/Widget+NestedClass`1.xml,
772           DocTest/en.expected/Mono.DocTest.Generic/Func`2.xml,
773           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
774           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml,
775           DocTest/en.expected/Mono.DocTest.Generic/IFoo`1.xml,
776           DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml,
777           DocTest/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
778           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
779           DocTest/en.expected/System/Action`1.xml,
780           DocTest/en.expected/System/Array.xml,
781           DocTest/en.expected.since/index.xml,
782           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
783           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
784           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass`1.xml,
785           DocTest/en.expected.since/Mono.DocTest.Generic/Func`2.xml,
786           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
787           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml,
788           DocTest/en.expected.since/Mono.DocTest.Generic/IFoo`1.xml,
789           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml,
790           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
791           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
792           DocTest/en.expected.since/System/Action`1.xml,
793           DocTest/en.expected.since/System/Array.xml,
794           DocTest/en.expected.importecmadoc/System/Action`1.xml,
795           DocTest/en.expected.importecmadoc/System/Array.xml,
796           DocTest/en.expected.importslashdoc/System/Array.xml,
797           DocTest/en.expected.importslashdoc/System/Action`1.xml,
798           DocTest/en.expected.importslashdoc/index.xml,
799           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml,
800           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
801           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml,
802           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
803           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/IFoo`1.xml,
804           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/Func`2.xml,
805           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
806           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
807           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass`1.xml,
808           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
809           DocTest/html.expected/index.html,
810           DocTest/html.expected/Mono.DocTest/Widget.html,
811           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
812           DocTest/html.expected/Mono.DocTest/UseLists.html,
813           DocTest/html.expected/Mono.DocTest.Generic/index.html,
814           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
815           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.html,
816           DocTest/html.expected/Mono.DocTest.Generic/Func`2.html,
817           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html,
818           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
819           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
820           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
821           DocTest/html.expected/System/Action`1.html,
822           DocTest/html.expected/System/Array.html: Flush.
823
824 2008-04-04  Jonathan Pryor <jpryor@novell.com>
825
826         * DocTest-v1.cs: Add nested generic type for testing.
827         * DocTest/en.expected/index.xml,
828           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml,
829           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
830           DocTest/en.expected.importslashdoc/index.xml,
831           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml,
832           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
833           DocTest/en.expected.since/index.xml,
834           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml,
835           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
836           DocTest/html.expected/index.html,
837           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.html,
838           DocTest/html.expected/Mono.DocTest.Generic/index.html,
839           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html: Flush.
840
841 2008-03-31  Jonathan Pryor <jpryor@novell.com>
842
843         * DocTest-v1.cs: Add a member returning an IEnumerator<int[]> to test n375291.
844         * DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml,
845           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml,
846           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml,
847           DocTest/html.expected/Mono.DocTest/Widget.html,
848           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html: Flush.
849
850 2008-03-26  Jonathan Pryor <jpryor@novell.com>
851
852         * DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html: Flush due to 
853           ../engine/mdoc-html-utils.xsl changes with migration of explicitly
854           implemented interface members to a separate section.
855
856 2008-03-26  Jonathan Pryor <jpryor@novell.com>
857
858         * DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
859           DocTest/html.expected/Mono.DocTest/UseLists.html: Flush due to
860           ../engine/mdoc-html-utils.xsl changes with s/System.Collections.Generic//.
861
862
863 2008-03-26  Jonathan Pryor <jpryor@novell.com>
864
865         * Makefile.am: Import docs for System.Action<T>.
866         * DocTest-v1.cs: Add System.Action<T> to test generic type importing.
867         * monodocer.cs: Misc. fixes:
868           - Properly lookup generic types when importing ECMA docs, so that e.g.
869             System.Collections.Generic.List<T> docs can be imported.
870           - Fix member duplicate checking so that we don't get an exception due to
871             seenmembers.Add(sig, "") for duplicate sigs.
872           - Fix UpdateParameters() to handle updating <param/> nodes on delegates.
873         * TestEcmaDocs.xml: Add docs for System.Action<T>.
874         * DocTest/en.expected/index.xml, DocTest/en.expected/System/Action`1.xml,
875           DocTest/en.expected.importecmadoc/System/Action`1.xml,
876           DocTest/en.expected.importslashdoc/index.xml,
877           DocTest/en.expected.importslashdoc/System/Action`1.xml,
878           DocTest/en.expected.since/index.xml,
879           DocTest/en.expected.since/System/Action`1.xml,
880           DocTest/html.expected/index.html, DocTest/html.expected/System/index.html,
881           DocTest/html.expected/System/Action`1.html: Flush.
882
883 2008-03-25  Jonathan Pryor <jpryor@novell.com>
884
885         * stylesheet.xsl: Implement CreateEditLink() for mdoc-html-utils.xsl.
886
887 2008-03-24  Jonathan Pryor <jpryor@novell.com>
888
889         * stylesheet.xsl: Implement CreateExpandedToggle() for
890           mdoc-sections-css.xsl.
891
892 2008-03-24  Jonathan Pryor <jpryor@novell.com>
893
894         * DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html: Flush due to
895           changes in ID string generation in ../engine/mdoc-html-utils.xsl.
896
897 2008-03-17  Jonathan Pryor <jpryor@novell.com>
898
899         * monodocer.cs: Modify index.xml so that there's a //Type/@Kind attribute.
900           This allows mkestner's doc engine to display the tree view (e.g. "Foo
901           Class") w/o loading the underlying Foo.xml file, improving start time.
902         * DocTest/en.expected/index.xml, DocTest/en.expected.since/index.xml,
903           DocTest/en.expected.importslashdoc/index.xml: Flush.
904
905 2008-03-15  Jonathan Pryor <jpryor@novell.com>
906
907         * monodocs2html.cs: Fix DumpTemplate() -- sending the output through an
908           intermediate XmlDocument seems to "corrupt" the file, such that any user
909           of the dumped file will get errors such as "Could not resolve named
910           template create-default-style."
911
912 2008-03-15  Jonathan Pryor <jpryor@novell.com>
913
914         * defaulttemplate.xsl: Cleanup (add/remove CSS properties, etc.).
915         * Makefile.am: monodocs2html needs to pull in resources from ../engine.
916         * monodocs2html.cs: Use ManifestResourceResolver so that .xsl files embedded
917           within the monodocs2html.exe assembly can refer to each other; use
918           XhtmlWriter so that certain XHTML elements are "closed", e.g. <br/>
919           instead of <br></br>.
920         * XhtmlWriter.cs: Added; XmlWriter subclass which generates nicer XHTML.
921         * stylesheet.xsl: *Major* refactor to share XSLT code with ../engine.
922         * DocTest/html.expected/index.html, DocTest/html.expected/NoNamespace.html,
923           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html,
924           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
925           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
926           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
927           DocTest/html.expected/Mono.DocTest.Generic/index.html,
928           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
929           DocTest/html.expected/Mono.DocTest/Color.html,
930           DocTest/html.expected/Mono.DocTest/Widget+Direction.html,
931           DocTest/html.expected/Mono.DocTest/Widget.html,
932           DocTest/html.expected/Mono.DocTest/Widget+Del.html,
933           DocTest/html.expected/Mono.DocTest/DocValueType.html,
934           DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html,
935           DocTest/html.expected/Mono.DocTest/IProcess.html,
936           DocTest/html.expected/Mono.DocTest/index.html,
937           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
938           DocTest/html.expected/Mono.DocTest/DocAttribute.html,
939           DocTest/html.expected/Mono.DocTest/Widget+IMenuItem.html,
940           DocTest/html.expected/Mono.DocTest/UseLists.html,
941           DocTest/html.expected/System/Environment+SpecialFolder.html,
942           DocTest/html.expected/System/Array.html,
943           DocTest/html.expected/System/Environment.html,
944           DocTest/html.expected/System/index.html,
945           DocTest/html.expected/System/AsyncCallback.html: Flush.
946
947 2008-03-07  Jonathan Pryor <jpryor@novell.com>
948
949         * mdoc.cs: Rename export-slashdoc command to export-msxdoc.  Add a space
950           between the `usage:' and command description to ease reading.
951
952 2008-03-07  Jonathan Pryor <jpryor@novell.com>
953
954         * monodocs2slashdoc.cs: Update to cope with .NET 2.0 generics.
955         * DocTest-v1.cs: Fix CREF comments.
956         * DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/IFoo`1.xml, 
957           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
958           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html,
959           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html: Flush
960           due to above CREF changes.
961
962 2008-03-06  Joshua Tauberer <jit@occams.info>
963
964         * monodocer.cs: Use Path.Combine in a few places.
965
966 2008-03-03  Jonathan Pryor <jpryor@novell.com>
967
968         * Makefile.am: Test the new -import: monodocer option.
969         * mdoc.cs: Make --import take only one parameter, the file to import.
970         * monodocer.cs: Add a new -import option which auto-detects the XML format
971           so that mdoc (and the user) doesn't need to care about file formats.
972         * Options.cs: Flush (fixes "<>" error when parsing 2-value "i|import").
973
974 2008-02-29  Jonathan Pryor <jpryor@novell.com>
975
976         * Makefile.am: Use mcs1 to build monodocer1.exe (as mcs now targets the 2.0
977           profile by default).
978
979 2008-02-29  Jonathan Pryor <jpryor@novell.com>
980
981         * Makefile.am: Corrections to pass distcheck.
982
983 2008-02-27  Jonathan Pryor <jpryor@novell.com>
984
985         * mdoc.cs: `mdoc assemble` should default to the "ecma" format, as that's
986           what most of the other mdoc tools produce & consume.
987
988 2008-02-26  Jonathan Pryor <jpryor@novell.com>
989
990         * mdoc.cs: Allow multiple formats to be specified on the `mdoc assemble`
991           command line; directories use the last specified format.  This allows more
992           than one format to be specified at once, e.g.
993           `mdoc assemble -o foo --format=ecma A B --format=error C D`.
994         * Options.cs: Update to permit the above "argument run" parsing behavior.
995
996 2008-02-24  Jonathan Pryor <jpryor@novell.com>
997
998         * mdoc.cs: Remove array index out of bound exception in ExportHtml; remove
999           debug messages.
1000         * defaulttemplate.xsl: s/<tab>/  /; add create-default-collection-title,
1001           create-default-title, create-default-summary, create-default-signature,
1002           create-default-remarks, create-default-members named templates (for use by
1003           importing XSLT files).
1004         * DocTest/html.expected/**/*.html: Flush (whitespace changes).
1005
1006 2008-02-21  Jonathan Pryor <jpryor@novell.com>
1007
1008         * Makefile.am: Add mdoc.exe to the build.
1009         * monodocer.cs: Place into the Mono.Documentation namespace; 
1010           rename Stub to Updater.
1011         * monodocs2slashdoc.cs: Place into the Mono.Documentation namespace; allow
1012           it to convert multiple directories.
1013         * mdoc.cs: Added; a unifying front-end to the various monodoc-related
1014           utilities such as monodocer, monodocs2html, mdassembler, etc.
1015         * Options.cs: An option parser; DO NOT EDIT; instead, see NDesk.Options at
1016           http://www.ndesk.org/Options.
1017
1018 2008-02-19  Jonathan Pryor <jpryor@novell.com>
1019
1020         * defaulttemplate.xsl: Insert id attributes so that an "index" can be added;
1021           Add a small "index" to the top of the page to simplify navigation -- 
1022           useful when there are lots of docs that make the "Members" section 
1023           difficult to otherwise find.  Add a http-equiv Content-Type, so that the 
1024           charset is set to UTF-8.
1025         * stylesheet.xsl: Don't use generate-id(), as the result includes the full
1026           path of the input file, which breaks unit tests if run on a different
1027           machine (and everyone runs the unit tests, right?).  Add id attributes so
1028           that defaulttemplate.xsl can create an index.
1029         * DocTest/html.expected/System/Environment+SpecialFolder.html,
1030           DocTest/html.expected/System/Array.html,
1031           DocTest/html.expected/System/Environment.html,
1032           DocTest/html.expected/System/index.html,
1033           DocTest/html.expected/System/AsyncCallback.html,
1034           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html,
1035           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
1036           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
1037           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1038           DocTest/html.expected/Mono.DocTest.Generic/index.html,
1039           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
1040           DocTest/html.expected/index.html,
1041           DocTest/html.expected/Mono.DocTest/Color.html,
1042           DocTest/html.expected/Mono.DocTest/Widget+Direction.html,
1043           DocTest/html.expected/Mono.DocTest/Widget.html,
1044           DocTest/html.expected/Mono.DocTest/Widget+Del.html,
1045           DocTest/html.expected/Mono.DocTest/DocValueType.html,
1046           DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html,
1047           DocTest/html.expected/Mono.DocTest/IProcess.html,
1048           DocTest/html.expected/Mono.DocTest/index.html,
1049           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
1050           DocTest/html.expected/Mono.DocTest/DocAttribute.html,
1051           DocTest/html.expected/Mono.DocTest/Widget+IMenuItem.html,
1052           DocTest/html.expected/Mono.DocTest/UseLists.html,
1053           DocTest/html.expected/NoNamespace.html: Flush.
1054
1055 2008-02-15  Jonathan Pryor <jpryor@novell.com>
1056
1057         * defaulttemplate.xsl: Move the <style/> and (new) <script/> into named
1058           templates so that this file can be <xsl:import/>d and the named templates
1059           invoked without clobbering the importing document; add toggle_display()
1060           JavaScript function for some bling.  Modify CSS so things look nicer.
1061         * stylesheet.xsl: Make monodocs2html output not suck (as badly):
1062           - Allow *all* headers to also act as show/hide toggles, so that e.g.
1063             Remarks, Examples, Parameters, etc. can be hidden.
1064           - Move the summary information above the member prototype (consistent 
1065             with MSDN, and I think it looks nicer).
1066           - Provide an `id' attribute for enumeration members, so that 
1067             <see cref="F:..." /> will work reasonably.
1068           - Allow the <pre/> blocks to use the `prettyprint.js' file (used by
1069             monologue for syntax coloring) -- requires setting the <pre/> class to
1070             e.g. code-csharp for C# coloring.
1071         * DocTest/html.expected/System/Environment+SpecialFolder.html,
1072           DocTest/html.expected/System/Array.html,
1073           DocTest/html.expected/System/Environment.html,
1074           DocTest/html.expected/System/index.html,
1075           DocTest/html.expected/System/AsyncCallback.html,
1076           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html,
1077           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
1078           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
1079           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1080           DocTest/html.expected/Mono.DocTest.Generic/index.html,
1081           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
1082           DocTest/html.expected/index.html,
1083           DocTest/html.expected/Mono.DocTest/Color.html,
1084           DocTest/html.expected/Mono.DocTest/Widget+Direction.html,
1085           DocTest/html.expected/Mono.DocTest/Widget.html,
1086           DocTest/html.expected/Mono.DocTest/Widget+Del.html,
1087           DocTest/html.expected/Mono.DocTest/DocValueType.html,
1088           DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html,
1089           DocTest/html.expected/Mono.DocTest/IProcess.html,
1090           DocTest/html.expected/Mono.DocTest/index.html,
1091           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
1092           DocTest/html.expected/Mono.DocTest/DocAttribute.html,
1093           DocTest/html.expected/Mono.DocTest/Widget+IMenuItem.html,
1094           DocTest/html.expected/Mono.DocTest/UseLists.html,
1095           DocTest/html.expected/NoNamespace.html: Flush (lots of HTML changes due to
1096           defaulttemplate.xsl and stylesheet.xsl changes).
1097
1098 2008-02-14  Jonathan Pryor <jpryor@novell.com>
1099
1100         * stylesheet.xsl: Support <typeparamref/>.
1101
1102 2008-02-13  Jonathan Pryor <jpryor@novell.com>
1103
1104         * DocTest-v1.cs: Add/fix doc comments; add a
1105           Widget(Converter<string,string>) constructor for testing.
1106         * stylesheet.xsl: Fix display issues:
1107           - Generic types should have GetTypeDisplayName() on their constituent
1108             parts, so System.Converter<System.String,System.String>
1109             gets converted into the nicer Converter<string, string>.
1110           - Generic types within method argument lists should be supported.
1111           - Permit constructor references to contain arguments, so that 
1112             "C:My.Full.Type(Type1,Type2)" actually works.
1113           - Fix remote type references so 
1114             <see cref="M:System.Collections.Generic.List{System.Int32}.Remove(`0)"/>
1115             properly reference the remote uri 
1116             System.Collections.Generic.List`1.Remove(`0).
1117         * DocTest/en.expected/Mono.DocTest/Widget.xml,
1118           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
1119           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
1120           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
1121           DocTest/html.expected/System/Array.html,
1122           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
1123           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1124           DocTest/html.expected/Mono.DocTest/Widget.html,
1125           DocTest/html.expected/Mono.DocTest/UseLists.html: Flush.
1126
1127 2008-02-08  Jonathan Pryor <jpryor@novell.com>
1128
1129         * stylesheet.xsl: Allow use of both <see cref="GenericType{A}" /> and 
1130           <see cref="GenericType&lt;A&gt;" /> to be consistent wrt each other.
1131           - Canonicalize generic types within link targets so that {} is used, as 
1132             1. this is what the */@id code generates, so such links will actually 
1133                work (as opposed to <>-using links, which will fail), and 
1134             2. the {} links are shorter and easier to read due to less markup.
1135           - Canonicalize generic types within link text to use <>, so e.g. 
1136             <see cref="System.Action{`0}" /> is displayed as System.Action<`0>.
1137             This also allows output to be consistent, no matter what the see/@cref
1138             text uses.
1139           - When creating links to go-mono.com, ensure that generic type names are 
1140             of the form Type`N, not Type{...}, as go-mono.com doesn't generate 
1141             useful output for the latter form of URL.
1142         * DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html: Flush.
1143
1144 2008-01-06  Jonathan Pryor <jpryor@novell.com>
1145
1146         * monodocer.cs: Yet another "if you remove a node while traversing its
1147           containing list, you skip elements" bug (in this case, if you had extra
1148           <param/> elements for non-existant parameters, only the first extra
1149           <param/> was removed, and the others were skipped).  Modify the messge
1150           displayed for undeletable <param/> nodes to provide more contextual 
1151           information.
1152
1153 2008-01-05  Jonathan Pryor <jpryor@novell.com>
1154
1155         * monodocer.cs: 
1156           - Fix duplicate and removed member checking/handling, so that duplicate 
1157             and removed members are properly warned about/removed (depending 
1158             on MemberDocsHaveUserContent()).  
1159           - Member sorting should take the return type into consideration, as I've 
1160             seen some ../class/** members which change the return type between 
1161             v1.0 and v2.0, causing the order of these members to "float" (as they 
1162             previously had the same sort order).
1163
1164 2008-01-03  Jonathan Pryor <jpryor@novell.com>
1165
1166         * monodocer.cs: XmlNodeList doesn't appear to support removing nodes while
1167           you're traversing the list.  (It doesn't complain, but it doesn't iterate
1168           over all the nodes either if you do so.)  Don't do that.
1169
1170 2008-01-02  Jonathan Pryor <jpryor@novell.com>
1171
1172         * monodocer.cs: Don't generate files that contain characters that are
1173           invalid on Win32 platforms.  These are frequently compiler-generated
1174           types, e.g. '<>c__CompilerGenerated2+<>c__CompilerGenerated13', but are
1175           occasionally public when they shouldn't be.  Fix the
1176           UpdateAssemblyVersions() logic to return true IFF there are > 0
1177           <AssemblyVersion/> elements.
1178
1179 2008-01-02  Jonathan Pryor <jpryor@novell.com>
1180
1181         * DocTest-v1.cs: Add a type to the root namespace.
1182         * monodocer.cs: Permit types to exist in the root namespace.  This is needed
1183           to properly document ../class/Npgsql, though I have no idea how `monodoc'
1184           will actually display these types...
1185         * overview.xsl: Support types within the root namespace.
1186         * DocTest/en.expected/index.xml, DocTest/en.expected.since/index.xml, 
1187           DocTest/en.expected.importslashdoc/index.xml, 
1188           DocTest/html.expected/System/index.html, 
1189           DocTest/html.expected/Mono.DocTest.Generic/index.html, 
1190           DocTest/html.expected/index.html, 
1191           DocTest/html.expected/Mono.DocTest/index.html: Flush.
1192         * DocTest/en.expected/NoNamespace.xml, 
1193           DocTest/en.expected/ns-.xml, 
1194           DocTest/en.expected.importslashdoc/NoNamespace.xml, 
1195           DocTest/en.expected.importslashdoc/ns-.xml, 
1196           DocTest/en.expected.since/NoNamespace.xml, 
1197           DocTest/en.expected.since/ns-.xml, 
1198           DocTest/html.expected/NoNamespace.html: Added.
1199
1200 2008-01-02  Jonathan Pryor <jpryor@novell.com>
1201
1202         * monodocer.cs: 
1203           - Write namespace files as 'ns-<Namespace>.xml', not '<Namespace>.xml', as 
1204             the previous behavior would break monodoc checkout on Win32 (due to dir 
1205             class/System.Security/en/System.Security.Cryptography.Xml vs. file
1206             class/System.Security/en/System.Security.Cryptography.xml).
1207           - This will rename existing <Namespace>.xml to ns-<Namespace>.xml
1208             automatically.
1209           - gmcs/mcs changed Reflection names (again); cope.
1210         * DocTest/en.expected/System.xml, 
1211           DocTest/en.expected/Mono.DocTest.Generic.xml, 
1212           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml, 
1213           DocTest/en.expected/Mono.DocTest.xml, DocTest/en.expected.since/System.xml, 
1214           DocTest/en.expected.since/Mono.DocTest.Generic.xml, 
1215           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml, 
1216           DocTest/en.expected.since/Mono.DocTest.xml, 
1217           DocTest/en.expected.importslashdoc/System.xml, 
1218           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic.xml, 
1219           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml, 
1220           DocTest/en.expected.importslashdoc/Mono.DocTest.xml: Rename to have a
1221           'ns-' prefix.
1222         * Makefile.am: Remove obsolete targets; add -show_exceptions to tests so we
1223           get more information on errors.
1224         * overview.xsl: Use the 'ns-' prefixed namespace documentation files.
1225
1226 2007-12-19  Jonathan Pryor <jpryor@novell.com>
1227
1228         * monodocer.cs: PropertyInfo.GetValue() may throw (in particular, within
1229           System.Data when trying to read ToolboxItemAttribute which references an
1230           assembly not present within the GAC).  Workaround this.
1231
1232 2007-12-19  Jonathan Pryor <jpryor@novell.com>
1233
1234         * monodocer.cs: Add a -show_exceptions argument to provide full stack traces
1235           when an error occurs (helps with debugging).  Allow VersionComparer to
1236           work on "slightly" malformed Version strings like 1.0.x.x, which some
1237           existing documentation uses.
1238
1239 2007-12-18  Jonathan Pryor <jpryor@novell.com>
1240
1241         * monodocer.cs: Don't append ';' to property declarations.
1242         * DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1243           DocTest/en.expected/Mono.DocTest/Widget.xml,
1244           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1245           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
1246           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
1247           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml: Flush.
1248
1249 2007-12-18  Jonathan Pryor <jpryor@novell.com>
1250
1251         * monodocer.cs: Insert [return:] custom attributes within <ReturnValue/>.
1252         * DocTest-v1.cs: Add custom attributes to various members for testing.
1253         * DocTest/en.expected/Mono.DocTest/Widget.xml,
1254           DocTest/en.expected/Mono.DocTest/DocAttribute.xml,
1255           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
1256           DocTest/en.expected.since/Mono.DocTest/DocAttribute.xml,
1257           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
1258           DocTest/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
1259           DocTest/html.expected/Mono.DocTest/Widget.html,
1260           DocTest/html.expected/Mono.DocTest/DocAttribute.html: Flush.
1261
1262 2007-12-17  Jonathan Pryor <jpryor@novell.com>
1263
1264         * monodocer.cs: Document protected events.
1265         * DocTest-v1.cs: Change the visibility of various members so we can better
1266           test the monodocs2html output.
1267         * stylesheet.xsl: Fix the `protected' check so that public members aren't
1268           displayed under the Protected [MemberType] section.
1269         * DocTest/en.expected/Mono.DocTest/Widget.xml,
1270           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
1271           DocTest/html.expected/Mono.DocTest/Widget.html,
1272           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml: Flush.
1273
1274 2007-12-13  Jonathan Pryor  <jonpryor@vt.edu>
1275
1276         * monodocer.cs: Er, *really* sort the <AssemblyVersion/> entries.
1277
1278 2007-12-12  Jonathan Pryor  <jonpryor@vt.edu>
1279
1280         * monodocer.cs: Sort the <AssemblyVersion/> entries so that when rendering
1281           them within monodoc we show versions in increasing order.
1282
1283 2007-12-11  Jonathan Pryor  <jonpryor@vt.edu>
1284
1285         * monodocer.cs: Don't use File.OpenWrite(), as that doesn't truncate the
1286           file (resulting in invalid XML errors if the new file is smaller than the
1287           previous file).  Add a local OpenWrite() to ensure that UTF8 is used
1288           everywhere.
1289
1290 2007-12-11  Jonathan Pryor  <jonpryor@vt.edu>
1291
1292         * monodocer.cs: Generate a per-member <AssemblyInfo/> element, not an
1293           <AssemblyVersions/> element.  This makes it easeier to write the XSLT 
1294           used in the docbrowser to generate the Requirements section.
1295         * stylesheet.xsl: Use <AssemblyInfo/>, not <AssemblyVersions/>.
1296         * DocTest/en.expected/System/Environment.xml,
1297           DocTest/en.expected/System/AsyncCallback.xml,
1298           DocTest/en.expected/System/Environment+SpecialFolder.xml,
1299           DocTest/en.expected/System/Array.xml,
1300           DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml,
1301           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1302           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
1303           DocTest/en.expected/Mono.DocTest.Generic/IFoo`1.xml,
1304           DocTest/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1305           DocTest/en.expected/Mono.DocTest/Widget.xml,
1306           DocTest/en.expected/Mono.DocTest/Widget+Del.xml,
1307           DocTest/en.expected/Mono.DocTest/DocValueType.xml,
1308           DocTest/en.expected/Mono.DocTest/IProcess.xml,
1309           DocTest/en.expected/Mono.DocTest/Widget+NestedClass.xml,
1310           DocTest/en.expected/Mono.DocTest/Widget+NestedClass`1.xml,
1311           DocTest/en.expected/Mono.DocTest/DocAttribute.xml,
1312           DocTest/en.expected/Mono.DocTest/UseLists.xml,
1313           DocTest/en.expected/Mono.DocTest/Widget+IMenuItem.xml,
1314           DocTest/en.expected/Mono.DocTest/Color.xml,
1315           DocTest/en.expected/Mono.DocTest/Widget+Direction.xml,
1316           DocTest/en.expected.since/System/Environment.xml,
1317           DocTest/en.expected.since/System/AsyncCallback.xml,
1318           DocTest/en.expected.since/System/Environment+SpecialFolder.xml,
1319           DocTest/en.expected.since/System/Array.xml,
1320           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml,
1321           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1322           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
1323           DocTest/en.expected.since/Mono.DocTest.Generic/IFoo`1.xml,
1324           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1325           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
1326           DocTest/en.expected.since/Mono.DocTest/AddedType.xml,
1327           DocTest/en.expected.since/Mono.DocTest/Widget+Del.xml,
1328           DocTest/en.expected.since/Mono.DocTest/DocValueType.xml,
1329           DocTest/en.expected.since/Mono.DocTest/IProcess.xml,
1330           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass.xml,
1331           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass`1.xml,
1332           DocTest/en.expected.since/Mono.DocTest/DocAttribute.xml,
1333           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
1334           DocTest/en.expected.since/Mono.DocTest/Widget+IMenuItem.xml,
1335           DocTest/en.expected.since/Mono.DocTest/Color.xml,
1336           DocTest/en.expected.since/Mono.DocTest/Widget+Direction.xml,
1337           DocTest/en.expected.importecmadoc/System/Environment.xml,
1338           DocTest/en.expected.importecmadoc/System/AsyncCallback.xml,
1339           DocTest/en.expected.importecmadoc/System/Array.xml,
1340           DocTest/en.expected.importslashdoc/System/Environment.xml,
1341           DocTest/en.expected.importslashdoc/System/AsyncCallback.xml,
1342           DocTest/en.expected.importslashdoc/System/Environment+SpecialFolder.xml,
1343           DocTest/en.expected.importslashdoc/System/Array.xml,
1344           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml,
1345           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
1346           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
1347           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/IFoo`1.xml,
1348           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1349           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Del.xml,
1350           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
1351           DocTest/en.expected.importslashdoc/Mono.DocTest/DocValueType.xml,
1352           DocTest/en.expected.importslashdoc/Mono.DocTest/IProcess.xml,
1353           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass.xml,
1354           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass`1.xml,
1355           DocTest/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
1356           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
1357           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+IMenuItem.xml,
1358           DocTest/en.expected.importslashdoc/Mono.DocTest/Color.xml,
1359           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Direction.xml:
1360           Flush; s/AssemblyVersion/AssemblyInfo/g.
1361
1362 2007-12-10  Jonathan Pryor  <jonpryor@vt.edu>
1363
1364         * DocTest-v2.patch: Remove some members so that we can see some
1365           <AssemblyVersions/> differences in the XML output.
1366         * monodocer.cs: Add a <AssemblyVersions/> element under every type and member
1367           to better track versioning information.  The XML documentation now becomes
1368           a "version database" of sorts, in which each member lists which assembly
1369           versions it exists in.  This permits tracking which members were added or
1370           removed over time with greater fidelity than <since/>.  This also removes
1371           the need for -ignore_extra_docs, which is maintained (for compatibility)
1372           but ignored.
1373         * DocTest-v1.cs: Have differing visibility on a property to ensure it works
1374           properly.
1375         * stylesheet.xsl: Print out the per-member <AssemblyVersions/> element.
1376         * DocTest/en.expected/System/Environment.xml,
1377           DocTest/en.expected/System/AsyncCallback.xml,
1378           DocTest/en.expected/System/Environment+SpecialFolder.xml,
1379           DocTest/en.expected/System/Array.xml,
1380           DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml,
1381           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1382           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
1383           DocTest/en.expected/Mono.DocTest.Generic/IFoo`1.xml,
1384           DocTest/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1385           DocTest/en.expected/Mono.DocTest/Widget.xml,
1386           DocTest/en.expected/Mono.DocTest/Widget+Del.xml,
1387           DocTest/en.expected/Mono.DocTest/DocValueType.xml,
1388           DocTest/en.expected/Mono.DocTest/IProcess.xml,
1389           DocTest/en.expected/Mono.DocTest/Widget+NestedClass.xml,
1390           DocTest/en.expected/Mono.DocTest/Widget+NestedClass`1.xml,
1391           DocTest/en.expected/Mono.DocTest/DocAttribute.xml,
1392           DocTest/en.expected/Mono.DocTest/UseLists.xml,
1393           DocTest/en.expected/Mono.DocTest/Widget+IMenuItem.xml,
1394           DocTest/en.expected/Mono.DocTest/Color.xml,
1395           DocTest/en.expected/Mono.DocTest/Widget+Direction.xml,
1396           DocTest/en.expected.since/System/Environment.xml,
1397           DocTest/en.expected.since/System/AsyncCallback.xml,
1398           DocTest/en.expected.since/System/Environment+SpecialFolder.xml,
1399           DocTest/en.expected.since/System/Array.xml,
1400           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml,
1401           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1402           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
1403           DocTest/en.expected.since/Mono.DocTest.Generic/IFoo`1.xml,
1404           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1405           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
1406           DocTest/en.expected.since/Mono.DocTest/AddedType.xml,
1407           DocTest/en.expected.since/Mono.DocTest/Widget+Del.xml,
1408           DocTest/en.expected.since/Mono.DocTest/DocValueType.xml,
1409           DocTest/en.expected.since/Mono.DocTest/IProcess.xml,
1410           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass.xml,
1411           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass`1.xml,
1412           DocTest/en.expected.since/Mono.DocTest/DocAttribute.xml,
1413           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
1414           DocTest/en.expected.since/Mono.DocTest/Widget+IMenuItem.xml,
1415           DocTest/en.expected.since/Mono.DocTest/Color.xml,
1416           DocTest/en.expected.since/Mono.DocTest/Widget+Direction.xml,
1417           DocTest/html.expected/System/Array.html,
1418           DocTest/html.expected/System/Environment.html,
1419           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html,
1420           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
1421           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
1422           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1423           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
1424           DocTest/html.expected/Mono.DocTest/Widget.html,
1425           DocTest/html.expected/Mono.DocTest/DocValueType.html,
1426           DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html,
1427           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
1428           DocTest/html.expected/Mono.DocTest/DocAttribute.html,
1429           DocTest/html.expected/Mono.DocTest/UseLists.html,
1430           DocTest/en.expected.importecmadoc/System/Environment.xml,
1431           DocTest/en.expected.importecmadoc/System/AsyncCallback.xml,
1432           DocTest/en.expected.importecmadoc/System/Array.xml,
1433           DocTest/en.expected.importslashdoc/System/Environment.xml,
1434           DocTest/en.expected.importslashdoc/System/AsyncCallback.xml,
1435           DocTest/en.expected.importslashdoc/System/Environment+SpecialFolder.xml,
1436           DocTest/en.expected.importslashdoc/System/Array.xml,
1437           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml,
1438           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
1439           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
1440           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/IFoo`1.xml,
1441           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1442           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Del.xml,
1443           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
1444           DocTest/en.expected.importslashdoc/Mono.DocTest/DocValueType.xml,
1445           DocTest/en.expected.importslashdoc/Mono.DocTest/IProcess.xml,
1446           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass.xml,
1447           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass`1.xml,
1448           DocTest/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
1449           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
1450           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+IMenuItem.xml,
1451           DocTest/en.expected.importslashdoc/Mono.DocTest/Color.xml,
1452           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Direction.xml:
1453           Flush, inserting <AssemblyVersion/> elements as necessary.
1454
1455 2007-10-28  Jonathan Pryor  <jonpryor@vt.edu>
1456
1457         * DocTest-v1.cs: Correct doc comment.
1458         * DocTest/html.expected/System/Environment.html,
1459           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html,
1460           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
1461           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1462           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
1463           DocTest/html.expected/Mono.DocTest/UseLists.html,
1464           DocTest/en.expected.importslashdoc/System/Environment.xml,
1465           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml,
1466           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
1467           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
1468           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/IFoo`1.xml,
1469           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml: mcs and gmcs 
1470           got many bug fixes with /doc support, changing many things that depend on 
1471           /doc output.
1472
1473 2007-09-27  Raja R Harinath  <rharinath@novell.com>
1474
1475         * Makefile.am (DocTest.dll-v1, DocTest.dll-v2): Pick source from $srcdir.
1476
1477 2007-07-19  Jonathan Pryor  <jonpryor@vt.edu>
1478
1479         * monodocer.cs: Always fully consume <Docs/> children.  If we have e.g.
1480           <Docs><param name="foo"><see cref="T:Bar"/></param></Docs>, but there is
1481           no existing parameter "foo", we would previously process the nested
1482           <see/> node and append it to the <Docs/> child nodes.
1483
1484 2007-07-18  Jonathan Pryor  <jonpryor@vt.edu>
1485
1486         * monodocer.cs: Change OrderDocsNodes() so that it uses
1487           XmlNode.InsertAfter() instead of XmlNode.InsertBefore().  The result is
1488           mostly the same (i.e. no regression test changes), but if you have a
1489           non-ordered node between other nodes this will force the non-ordered node
1490           to the *end* of the <Docs/> children, not the start.  For example, given
1491           the input <Docs><summary/><exception/><remarks/></Docs/>, we used to get
1492           <Docs><exception/><summary/><remarks/></Docs>, while we now get
1493           <Docs><summary/><remarks/><exception/></Docs>.
1494
1495 2007-07-17  Jonathan Pryor  <jonpryor@vt.edu>
1496
1497         * monodocer.cs: Insert the type's <Docs/> node before <Members/>.  This is
1498           consistent with ECMA documentation ordering, and makes more sense (when
1499           editing the file you can edit the Type documentation before member
1500           documentation, instead of after all members as was the case before).
1501         * DocTest/en.expected/System/Environment.xml,
1502           DocTest/en.expected/System/Environment+SpecialFolder.xml,
1503           DocTest/en.expected/System/Array.xml,
1504           DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml,
1505           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1506           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
1507           DocTest/en.expected/Mono.DocTest.Generic/IFoo`1.xml,
1508           DocTest/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1509           DocTest/en.expected/Mono.DocTest/Widget.xml,
1510           DocTest/en.expected/Mono.DocTest/DocValueType.xml,
1511           DocTest/en.expected/Mono.DocTest/IProcess.xml,
1512           DocTest/en.expected/Mono.DocTest/Widget+NestedClass.xml,
1513           DocTest/en.expected/Mono.DocTest/Widget+NestedClass`1.xml,
1514           DocTest/en.expected/Mono.DocTest/DocAttribute.xml,
1515           DocTest/en.expected/Mono.DocTest/UseLists.xml,
1516           DocTest/en.expected/Mono.DocTest/Widget+IMenuItem.xml,
1517           DocTest/en.expected/Mono.DocTest/Color.xml,
1518           DocTest/en.expected/Mono.DocTest/Widget+Direction.xml,
1519           DocTest/en.expected.since/System/Environment.xml,
1520           DocTest/en.expected.since/System/Environment+SpecialFolder.xml,
1521           DocTest/en.expected.since/System/Array.xml,
1522           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml,
1523           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1524           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
1525           DocTest/en.expected.since/Mono.DocTest.Generic/IFoo`1.xml,
1526           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1527           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
1528           DocTest/en.expected.since/Mono.DocTest/AddedType.xml,
1529           DocTest/en.expected.since/Mono.DocTest/DocValueType.xml,
1530           DocTest/en.expected.since/Mono.DocTest/IProcess.xml,
1531           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass.xml,
1532           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass`1.xml,
1533           DocTest/en.expected.since/Mono.DocTest/DocAttribute.xml,
1534           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
1535           DocTest/en.expected.since/Mono.DocTest/Widget+IMenuItem.xml,
1536           DocTest/en.expected.since/Mono.DocTest/Color.xml,
1537           DocTest/en.expected.since/Mono.DocTest/Widget+Direction.xml,
1538           DocTest/en.expected.importecmadoc/System/Environment.xml,
1539           DocTest/en.expected.importecmadoc/System/Array.xml,
1540           DocTest/en.expected.importslashdoc/System/Environment.xml,
1541           DocTest/en.expected.importslashdoc/System/Environment+SpecialFolder.xml,
1542           DocTest/en.expected.importslashdoc/System/Array.xml,
1543           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml,
1544           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
1545           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
1546           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/IFoo`1.xml,
1547           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1548           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
1549           DocTest/en.expected.importslashdoc/Mono.DocTest/DocValueType.xml,
1550           DocTest/en.expected.importslashdoc/Mono.DocTest/IProcess.xml,
1551           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass.xml,
1552           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass`1.xml,
1553           DocTest/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
1554           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
1555           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+IMenuItem.xml,
1556           DocTest/en.expected.importslashdoc/Mono.DocTest/Color.xml,
1557           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Direction.xml:
1558           Update so that <Docs/> comes before <Members/>, not after.
1559
1560 2007-07-14  Jonathan Pryor  <jonpryor@vt.edu>
1561
1562         * monodocer.cs: If a <Type/> had an empty <Members/> element, we'd start
1563           reading the <Member/> elements from the *next* <Type/>; oops.
1564         * DocTest-v1.cs: Add System.AsyncCallback, which is a delegate and thus had
1565           an empty <Members/> element.
1566         * Makefile.am: Also import docs for System.AsyncCallback.
1567         * overview.xsl: Update $max-types so that adding System.AsyncCallback
1568           doesn't trigger the alternate behavior, creating a larger diff than
1569           necessary.
1570         * TestEcmaDocs.xml: Add docs for System.AsyncCallback.
1571         * DocTest/en.expected/System/AsyncCallback.xml,
1572           DocTest/en.expected/index.xml, 
1573           DocTest/en.expected.since/System/AsyncCallback.xml
1574           DocTest/en.expected.since/index.xml,
1575           DocTest/html.expected/System/AsyncCallback.html
1576           DocTest/html.expected/System/index.html, DocTest/html.expected/index.html,
1577           DocTest/en.expected.importecmadoc/System/AsyncCallback.xml,
1578           DocTest/en.expected.importslashdoc/System/AsyncCallback.xml,
1579           DocTest/en.expected.importslashdoc/index.xml: Added; expected imported 
1580           documentation for System.AsyncCallback.
1581
1582 2007-07-14  Jonathan Pryor  <jonpryor@vt.edu>
1583
1584         * monodocer.cs: Remove the "While Importing ECMA  <Docs/> chidren, found
1585           node..." error by ensuring that we're at the start of an actual
1586           non-whitespace element before hitting the switch statement.
1587
1588 2007-07-14  Jonathan Pryor  <jonpryor@vt.edu>
1589
1590         * monodocer.cs: Don't call DoUpdateType() with non-public types.  This
1591           allows `monodocer -importecmadoc` to fully run and import mscorlib.dll.
1592
1593 2007-07-14  Jonathan Pryor  <jonpryor@vt.edu>
1594
1595         * monodocer.cs: Ensure that getting a MemberInfo based on the documentation
1596           that the MemberInfo was actually found...  (Allows a full mscorlib.dll
1597           import to run for > 15s before dying.)
1598
1599 2007-07-04  Jonathan Pryor  <jonpryor@vt.edu>
1600
1601         * monodocer.cs: Use XmlReader instead of XPathDocument to process the ECMA
1602           documentation import.  This cuts down a -type:System.Array import from
1603           ~10-12s to ~7-8s (not great, but better).  "Fix" the ordering of <Docs/>
1604           child elements so that importing ECMA/slashdoc documentation doesn't 
1605           change the normal ordering.
1606         * DocTest/en.expected.importecmadoc/System/Array.xml,
1607           DocTest/en.expected.importecmadoc/System/Environment.xml: Alter order of
1608           <Docs/> elements to match the normally generated order.
1609
1610 2007-06-20  Jonathan Pryor  <jonpryor@vt.edu>
1611
1612         * monodocer.cs: Sort /Type/Members/Member elements so that the order is not
1613           dependent upon Reflection order.
1614         * DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1615           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1616           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
1617           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1618           DocTest/en.expected.importecmadoc/System/Array.xml,
1619           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml:
1620           Flush (sort <Member/> elements).
1621
1622 2007-06-19  Jonathan Pryor  <jonpryor@vt.edu>
1623
1624         * monodocer.cs: Sort <Namespace/> and <Type/> elements by their Name
1625           attribute.  This helps keep diff's smaller, as the generated order won't
1626           be dependent upon Reflection order.
1627         * DocTest/en.expected/index.xml, DocTest/en.expected.since/index.xml,
1628           DocTest/en.expected.importslashdoc/index.xml: Flush (sort namespaces and
1629           types alphabetically).
1630
1631 2007-06-19  Jonathan Pryor  <jonpryor@vt.edu>
1632
1633         * monodocer.cs: Cleanup Console output.
1634           - Use Console.Error for error messages, not status messages.
1635           - Error should be prefixed by "monodocer" (follows Unix conventions).
1636           - Don't print "Updating..." followed by "New Type..." for the same type.
1637           - Use __monodocer-seen__ sentinal for imported nodes so that we don't try
1638             to lookup the corresponding member later in GetDocumentationMembers().
1639
1640 2007-06-19  Jonathan Pryor  <jonpryor@vt.edu>
1641
1642         * monodocer.cs: Lots 'o fixes/improvements.
1643           - Allow multiple -type parameters to be specified.  
1644           - Remove type member enumeration from UpdateTypes() -- use DoUpdateType2().
1645           - Iterate over assembly types in Ecma Documentation order (so that we read
1646             the Ecma docs sequentially, not randomly).  
1647           - Allow -type to *create* new documentation files.
1648           - Remove unused methods.
1649         * Makefile.am: Add check-monodocer-importecmadoc,
1650           check-monodocer-importecmadoc-update targets (unit tests for
1651           -importecmadoc).
1652         * TestEcmaDocs.xml: Added; ECMA Documentation input file for use with
1653           -importecmadoc tests.
1654         * DocTest-v1.cs: Add System.Array to help test -importecmadoc behavior.
1655         * DocTest/en.expected/index.xml, DocTest/en.expected.since/index.xml,
1656           DocTest/html.expected/System/index.html, DocTest/html.expected/index.html,
1657           DocTest/en.expected.importslashdoc/index.xml: Flush (add System.Array to
1658           index files).
1659         * DocTest/en.expected/System/Array.xml, 
1660           DocTest/en.expected.since/System/Array.xml,
1661           DocTest/html.expected/System/Array.html,
1662           DocTest/en.expected.importecmadoc/System/Environment.xml,
1663           DocTest/en.expected.importecmadoc/System/Array.xml,
1664           DocTest/en.expected.importslashdoc/System/Array.xml: Added; expected
1665           output for System.Array type for various tests.
1666
1667 2007-06-18  Wade Berrier  <wberrier@novell.com>
1668
1669         * monodocer.cs: Move assembly information up top because having it at the bottom
1670         fails to compile with mcs from trunk.
1671
1672 2007-06-14  Jonathan Pryor  <jonpryor@vt.edu>
1673
1674         * monodocer.cs: Use XPathDocument instead of XmlDocument to process the ECMA
1675           documentation import.  This cuts down a -type:System.Array import from
1676           ~15-20s to ~10-12s (not great, bug better).  Fix importing of <exception/>
1677           elements -- previously we would skip them if the mono docs lacked them.
1678
1679 2007-06-12  Jonathan Pryor  <jonpryor@vt.edu>
1680
1681         * monodocer.cs: The previous fix was buggy -- if the type parameters were
1682           renamed (ConvertAll<T,U> in ECMA, ConvertAll<TInput,TOutput> in Mono),
1683           then the existing element wouldn't be found, but the MemberInfo would.
1684           Result: duplicate XML elements (BOTH ConvertAll<T,U> AND 
1685           ConvertAll<TInput,TOutput>), one of which is wrong, which clearly isn't
1686           desirable.  If the Mono XML element can't be found, try looking it up
1687           based on the MemberInfo found from the ECMA docs to avoid duplication.
1688
1689 2007-06-11  Jonathan Pryor  <jonpryor@vt.edu>
1690
1691         * monodocer.cs: Add support for renaming of template parameters (useful
1692           because ECMA 335 refers to Array.ConvertAll<T,U> while Mono/.NET have
1693           Array.ConvertAll<TInput,TOutput>).  Not terribly intelligent, but smart
1694           enough that all but two System.Array members can now be imported (a
1695           private constructor, and a member with an incorrectly documented parameter
1696           type, neither of which I plan on supporting).  Cleanup some of the 
1697           `#if NET_1_0` blocks by using `using' aliases -- alas, requires moving the
1698           [assembly:...] attributes; see bugzilla #81855.
1699
1700 2007-06-11  Jonathan Pryor  <jonpryor@vt.edu>
1701
1702         * monodocer.cs: Add support for explicity-implemented interface members.
1703           Minor cleanup.  Replace catch(NotSupportedException){} blocks.
1704         * Makefile.am (clean): Cleanup monodocer.exe* files.
1705         * DocTest-v1.cs: Add IFoo<T>, explicitly implement some interfaces on
1706           MyList<A,B> to test explicitly-implemented member support.
1707         * DocTest/en.expected/index.xml,
1708           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1709           DocTest/en.expected.since/index.xml,
1710           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1711           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1712           DocTest/html.expected/Mono.DocTest.Generic/index.html,
1713           DocTest/html.expected/index.html,
1714           DocTest/html.expected/Mono.DocTest/Widget+IMenuItem.html,
1715           DocTest/en.expected.importslashdoc/index.xml,
1716           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
1717           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+IMenuItem.xml:
1718           Update.
1719         * DocTest/en.expected/Mono.DocTest.Generic/IFoo`1.xml,
1720           DocTest/en.expected.since/Mono.DocTest.Generic/IFoo`1.xml,
1721           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/IFoo`1.xml,
1722           DocTest/html.expected/Mono.DocTest.Generic/IFoo`1.html: Added.
1723
1724 2007-05-29  Jonathan Pryor  <jonpryor@vt.edu>
1725
1726         * monodocer.cs: Invert ECMA documentation importing -- instead of iterating
1727           over the monodoc XML and importing ECMA docs as encountered (randomly), 
1728           iterate over the ECMA docs in-order and access the monodoc types randomly.
1729           This significantly improves access as the ECMA docs are ~7.2MB in size,
1730           while the monodoc XML types 10's-100's of KB (randomly accessing a 7.2 MB
1731           XML document == BAD; randomly accessing a several hundred KB document is
1732           better).  This cuts down a -type:System.Array import from ~4 minutes to
1733           < ~20s.  Alas, it appears to miss a few members as well, so it's not done.
1734
1735 2007-05-19  Jonathan Pryor  <jonpryor@vt.edu>
1736
1737         * monodocer.cs: Create diff(1)-friendly output for -importecmadocs.
1738           Previously, we'd remove <summary/>, <remarks/>, etc., and re-add them at
1739           the end of the <Docs/> node, which results in major changes for diff(1),
1740           so instead we replace the contents of existing elements when appropriate.
1741           Remove '\r' from the imported document (also to remove diff(1)-reported
1742           changes as the line endings would change).
1743
1744 2007-05-17  Jonathan Pryor  <jonpryor@vt.edu>
1745
1746         * monodocer.cs: Add -importecmadoc flag, which will import
1747           documentation found within an ECMA documetation file (e.g. the
1748           CLILibraryTypes.xml from the ECMA-335 standard).
1749           WARNING: import is currently SLOW.
1750
1751 2007-05-17  Jonathan Pryor  <jonpryor@vt.edu>
1752
1753         * monodocer.cs: Refactor MakeDocNode() so that there's only one
1754           version, not three overloads, and use a (new) DocsNodeInfo type to
1755           pass information to the new MakeDocNode() method.  This doesn't
1756           change anything per-se, but it'll make it easier to pass new
1757           parameters to MakeDocNode() without making the rediculously long
1758           parameter list even longer...
1759
1760 2007-05-12  Joshua Tauberer  <jit@occams.info>
1761
1762         * overview.xsl: Always sort type names, since when updating
1763           docs monodocer can make the list in index.xml out of order.
1764         * monodocer.cs: When deleting duplicate member entries, delay
1765           deletion until after loop is finished.
1766         * Makefile.am, DocTest-v1.cs, DocTest/en.expected.importslashdoc,
1767           DocTest/html.expected: Revise monodocs2html tests to use
1768           the /doc file so we can test those tags too. And changed two
1769           <c> tags to <see cref=/>.
1770         * stylesheet.xsl, DocTest/html.expected: Fix see-links to methods,
1771           which didn't recognize '(' as delimiting type from args, and
1772           display nice type names for arguments.
1773
1774 2007-03-15  Lluis Sanchez Gual  <lluis@novell.com>
1775
1776         * monodocer.cs: When deleting a member, don't remove it from the
1777           parent xml element until all members are checked, since doing
1778           it breaks the loop.
1779           Properly import internal protected members.
1780
1781 2006-12-29  Jonathan Pryor  <jonpryor@vt.edu>
1782
1783         * Makefile.am: Add check-monodocer-ignore_extra_docs-update,
1784           check-doc-tools-update, and check-update targets.
1785         * monodocer.cs: Fix generation of attribute parameters, as e.g.
1786           `AttributeUsage.Class|Struct' doesn't look right; it should 
1787           instead be `AttributeUsage.Class | AttributeUsage.Struct'.
1788         * DocTest-v1.cs: Add new public Attribute with an AttributeUsage for tests.
1789         * DocTest/en.expected/index.xml, 
1790           DocTest/en.expected/Mono.DocTest/DocAttribute.xml,
1791           DocTest/en.expected.importslashdoc/index.xml,
1792           DocTest/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
1793           DocTest/en.expected.since/index.xml,
1794           DocTest/en.expected.since/Mono.DocTest/DocAttribute.xml,
1795           DocTest/html.expected/index.html,
1796           DocTest/html.expected/Mono.DocTest/index.html,
1797           DocTest/html.expected/Mono.DocTest/DocAttribute.html: Added; update
1798           expected output for new tests.
1799
1800 2006-12-29  Jonathan Pryor  <jonpryor@vt.edu>
1801
1802         * monodocer.cs: Fix C# type name generation for nested types in the System
1803           namespace.  Remove TypeCastException when dealing with custom attributes.
1804         * DocTest-v1.cs: Add System.Environment type for testing System handling.
1805         * DocTest/en.expected/index.xml, DocTest/en.expected/System.xml,
1806           DocTest/en.expected/System/Environment.xml,
1807           DocTest/en.expected/System/Environment+SpecialFolder.xml,
1808           DocTest/en.expected.since/index.xml, DocTest/en.expected.since/System.xml,
1809           DocTest/en.expected.since/System/Environment+SpecialFolder.xml,
1810           DocTest/en.expected.since/System/Environment.xml,
1811           DocTest/en.expected.importslashdoc/index.xml, 
1812           DocTest/en.expected.importslashdoc/System.xml,
1813           DocTest/en.expected.importslashdoc/System/Environment.xml,
1814           DocTest/en.expected.importslashdoc/System/Environment+SpecialFolder.xml,
1815           DocTest/html.expected/index.html, DocTest/html.expected/System/index.html, 
1816           DocTest/html.expected/System/Environment.html,
1817           DocTest/html.expected/System/Environment+SpecialFolder.html:
1818           Added; update expected output for new tests.
1819
1820 2006-12-29  Jonathan Pryor  <jonpryor@vt.edu>
1821
1822         * monodocer.cs: `abstract sealed' classes are actually `static' classes.
1823
1824 2006-12-27  Jonathan Pryor  <jonpryor@vt.edu>
1825
1826         * monodocer.cs: Re-order the attributes in <Type/> elements so that the
1827           ordering is (somewhat) well defined.  This helps with `diff' output in
1828           ../class, as it prevents "false positives" when the attributes are
1829           re-ordered.  Fix CSharpFullMemberFormatter.GetTypeDeclaration() so that
1830           when handling C# builtin types (e.g. System.Byte) it uses the real name in
1831           the declaration instead of the C# keyword (`class byte' is wrong).
1832
1833 2006-12-26  Jonathan Pryor  <jonpryor@vt.edu>
1834
1835         * Makefile.am: Add check-monodocer-ignore_extra_docs test.
1836         * monodocer.cs: Fix -ignore_extra_docs.  Previously, it would just ignore
1837           "missing" types, but it would still remove "missing" members.
1838
1839 2006-12-26  Jonathan Pryor  <jonpryor@vt.edu>
1840
1841         * monodocer.cs: Don't insert internal attributes into the documentation.
1842         * DocTest-v1.cs: Add test for use of an internal attribute.
1843
1844 2006-12-21  Jonathan Pryor  <jonpryor@vt.edu>
1845
1846         * monodocer.cs: Don't include full namespace for System.* types.  *Do*
1847           include the full namespace for nested System types, e.g.
1848           System.Collections.IEnumerable.  This is what is currently in
1849           ../class/corlib/en, and making this change results in a smaller diff.
1850         * DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1851           DocTest/en.expected/Mono.DocTest/UseLists.xml,
1852           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1853           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
1854           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml, 
1855           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml:
1856           Update unit tests for above monodocer.cs change.
1857
1858 2006-12-21  Jonathan Pryor  <jonpryor@vt.edu>
1859
1860         * monodocer.cs: Don't include full namespace for System.* types.  This is
1861           what ECMA-335 CLILibraryTypes.xml does for C# declarations -- no
1862           namespaces within e.g. inheritance lists or parameter lists for the System
1863           namespace and namespaces nested within System.
1864           Remove unnecessary console output.
1865         * DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
1866           DocTest/en.expected/Mono.DocTest/UseLists.xml,
1867           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
1868           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
1869           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml, 
1870           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml:
1871           Update unit tests for above monodocer.cs change.
1872
1873 2006-12-21  Jonathan Pryor  <jonpryor@vt.edu>
1874
1875         * monodocer.cs: Make sure that the types we document are *really* public.
1876           For some reason public nested types of internal types are returned by
1877           Assembly.GetTypes(), e.g. ``internal class A { public class B {} }''
1878           These types shouldn't be documented.
1879         * DocTest-v1.cs: Add test case for above.
1880
1881 2006-12-21  Jonathan Pryor  <jonpryor@vt.edu>
1882
1883         * monodocer.cs: Add -ignore_extra_docs flag; when set, it will not rename
1884           .xml files for types not found to .xml.remove.  This is useful in ../class
1885           when we're processing assemblies multiple times for the 1.0 & 2.0
1886           profiles, as when processing the 1.0 profile we'll be "missing" the 2.0
1887           types, and we don't want those to be renamed.
1888
1889 2006-12-21  Jonathan Pryor  <jonpryor@vt.edu>
1890
1891         * Makefile.am: Add a monodocer1.exe target, which is a version of monodocer
1892           which runs under the 1.0 runtime.  This is necessary so that we can still
1893           generate/update docs for mscorlib.dll 1.0 (as only one mscorlib.dll can
1894           ever be loaded into a process).
1895         * monodocer.cs: Split out the .NET 2.0 functionality so that it can be built
1896           for both 1.0 and 2.0 runtimes.  1.0 support is controlled by the
1897           NET_1_0 define.
1898
1899 2006-12-20  Jonathan Pryor  <jonpryor@vt.edu>
1900
1901         * monodocer.cs: Don't try too hard in UpdateParameters().  Previously, if a
1902           the number of parameters a method accepted changed from > 1 to 1, the
1903           "easy" <param/> handling would (inadvertently?) change all <param/>s to have
1904           the @name of the method's single parameter -- so if you _had_ parameters
1905           A, B, and C but the method now only has D, then A, B, and C would all have
1906           their @name attribute changed to D.  Odd, but possibly acceptable...
1907           ...until we try to make sure that the <param/>s are in the right order, in
1908           which case we'll record the index of D as 0 (it's the 1st parameter), but
1909           find a parameter with a different index (the old B & C), causing us to
1910           reinsert the parameter to make sure it's in the proper order.  This 
1911           results in an infinite loop within System.Xml -- see Bugzilla #80331.
1912           It's safer to just ignore the extra parameters.
1913
1914 2006-12-07  Jonathan Pryor  <jonpryor@vt.edu>
1915
1916         * DocTest-v1.patch: Add an operator returning a generic parameter (triggers
1917           error fixed in monodocer.cs).
1918         * DocTest-v2.patch: Update (due to changes in DocTest-v1.cs).
1919         * monodocer.cs: CSharpFullMemberFormatter.AppendVisibility() needs to accept null 
1920           MethodBases (when called from GetEventDeclaration() and e.GetAddMethod()
1921           returns null); fix SlashDocMemberFormatter.GetMethodDeclaration() so that
1922           generic types can be the return value of methods.  These changes allow
1923           generation of documentation on Mono's 2.0 mscorlib.dll.
1924         * stylesheet.xsl: Use GetParameterType() to emit the return type of
1925           explicit/implicit operators, as they can be/use generic arguments.
1926         * DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
1927           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
1928           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Del.xml,
1929           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
1930           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html:
1931           Flush to match current output.
1932
1933 2006-11-22  Jonathan Pryor  <jonpryor@vt.edu>
1934
1935         * monodocer.cs: Don't generate documentation/prototypes for non-public 
1936           property get/set accessors.  Patch from Ivan N. Zlatev.
1937
1938 2006-11-01  Jonathan Pryor  <jonpryor@vt.edu>
1939
1940         * monodocer.cs: When importing -importslashdoc documentation, convert
1941           <seealso/> elements into <altmember/> elements (as the former is the
1942           recommended element within ECMA-334, while the latter is the actual
1943           element used for our ECMA documentation).
1944         * DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml: Flush.
1945
1946 2006-10-27  Jonathan Pryor  <jonpryor@vt.edu>
1947
1948         * stylesheet.xsl: Generate more correct string id's for "id" attribute 
1949           values, so that string ids match the output of CSC.EXE 2.0.  Changes:
1950           append ``N instead of `N for generic methods, and use the correct 0-based
1951           type parameter index, not a 1-based index.
1952         * DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
1953           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
1954           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
1955           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
1956           DocTest/html.expected/Mono.DocTest/UseLists.html: Flush.
1957
1958 2006-10-24  Jonathan Pryor  <jonpryor@vt.edu>
1959
1960         * DocTest-v1.cs: Add /doc comments (for use with `make
1961           check-monodocer-importslashdoc`).
1962         * DocTest-v2.patch: Update (due to changes in DocTest-v1.cs).
1963         * Makefile.am: Add check-monodocer-importslashdoc,
1964           check-monodocer-importslashdoc-update targets.
1965         * monodocer.cs: Fix -importslashdoc.  Massively refactor generation of
1966           strings from MemberInfos (Type, MethodInfo, etc.) so that commonalities
1967           between DocType, C#, and /doc string IDs can be shared and easily
1968           customized (as opposed to dealing with the > 100 line FillDocTypeName()
1969           method, which was already too complex).
1970         * DocTest/en.expected.importslashdoc/index.xml,
1971           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic.xml,
1972           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1.xml,
1973           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`2.xml,
1974           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml,
1975           DocTest/en.expected.importslashdoc/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
1976           DocTest/en.expected.importslashdoc/Mono.DocTest.xml,
1977           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
1978           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Del.xml, 
1979           DocTest/en.expected.importslashdoc/Mono.DocTest/DocValueType.xml,
1980           DocTest/en.expected.importslashdoc/Mono.DocTest/IProcess.xml,
1981           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass.xml,
1982           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+NestedClass`1.xml,
1983           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+IMenuItem.xml,
1984           DocTest/en.expected.importslashdoc/Mono.DocTest/UseLists.xml,
1985           DocTest/en.expected.importslashdoc/Mono.DocTest/Color.xml,
1986           DocTest/en.expected.importslashdoc/Mono.DocTest/Widget+Direction.xml:
1987           Added; expected output for `make check-monodocer-importslashdoc'.
1988
1989 2006-10-19  Jonathan Pryor  <jonpryor@vt.edu>
1990
1991         * Makefile.am: Change check-monodocer target to add a `monodocer -namespace'
1992           check, as `-namespace' would use a bad filename generation algorithm.
1993         * monodocer.cs: Don't use Type.Name (or equivalent) to generate filenames,
1994           but use GetTypeFileName(), so that Foo<T> only tries to open the file
1995           Foo`1, instead of the file Foo<T> which (1) is wrong, we never generate
1996           filenames like that, and (2) fails horribly on Win32 (as '<' and '>' are
1997           invalid path characters).
1998
1999 2006-10-19  Jonathan Pryor  <jonpryor@vt.edu>
2000
2001         * monodocer.cs: Sort member ordering so that when the order of members
2002           returned by Type.GetMembers() changes (as it did between 1.1.17 and
2003           1.1.18) the order of the documentation members won't change (leading to
2004           "errors" in the regression tests).
2005         * DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml,
2006           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
2007           DocTest/en.expected/Mono.DocTest/Widget.xml,
2008           DocTest/en.expected/Mono.DocTest/DocValueType.xml,
2009           DocTest/en.expected/Mono.DocTest/Widget+NestedClass.xml,
2010           DocTest/en.expected/Mono.DocTest/Widget+NestedClass`1.xml,
2011           DocTest/en.expected/Mono.DocTest/UseLists.xml,
2012           DocTest/en.expected/Mono.DocTest/Color.xml,
2013           DocTest/en.expected/Mono.DocTest/Widget+Direction.xml,
2014           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml,
2015           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml,
2016           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
2017           DocTest/en.expected.since/Mono.DocTest/DocValueType.xml,
2018           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass.xml,
2019           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass`1.xml,
2020           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
2021           DocTest/en.expected.since/Mono.DocTest/Color.xml,
2022           DocTest/en.expected.since/Mono.DocTest/Widget+Direction.xml,
2023           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
2024           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
2025           DocTest/html.expected/Mono.DocTest/Color.html,
2026           DocTest/html.expected/Mono.DocTest/Widget+Direction.html,
2027           DocTest/html.expected/Mono.DocTest/Widget.html,
2028           DocTest/html.expected/Mono.DocTest/DocValueType.html,
2029           DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html,
2030           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
2031           DocTest/html.expected/Mono.DocTest/UseLists.html: Flush.  Since monodocer
2032           generates a different member ordering, *everything* gets a different
2033           ordering.  <sigh>
2034
2035 2006-10-12  Jonathan Pryor  <jonpryor@vt.edu>
2036
2037         * monodocer.cs: Add support for inserting Docs/since element.  This element
2038           is *only* inserted for NEW type/members, never updated, and is only 
2039           inserted if the -since:SINCE command-line argument is provided.
2040         * DocTest.cs: Renamed to DocTest-v1.cs.
2041         * Makefile.am: Add DocTest.dll-v1, DocTest.dll-v2, check-monodocer-since,
2042           check-monodocer-since-update, check targets.
2043         * DocTest-v2.patch: Patch file applied to DocTest-v1.cs to get DocTest.dll
2044           version 2.0.0.0.
2045         * DocTest/en.expected.since/index.xml,
2046           DocTest/en.expected.since/Mono.DocTest.xml,
2047           DocTest/en.expected.since/Mono.DocTest/AddedType.xml,
2048           DocTest/en.expected.since/Mono.DocTest/Color.xml,
2049           DocTest/en.expected.since/Mono.DocTest/DocValueType.xml,
2050           DocTest/en.expected.since/Mono.DocTest/IProcess.xml,
2051           DocTest/en.expected.since/Mono.DocTest/UseLists.xml,
2052           DocTest/en.expected.since/Mono.DocTest/Widget.xml,
2053           DocTest/en.expected.since/Mono.DocTest/Widget+Del.xml,
2054           DocTest/en.expected.since/Mono.DocTest/Widget+Direction.xml,
2055           DocTest/en.expected.since/Mono.DocTest/Widget+IMenuItem.xml,
2056           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass.xml,
2057           DocTest/en.expected.since/Mono.DocTest/Widget+NestedClass`1.xml,
2058           DocTest/en.expected.since/Mono.DocTest.Generic.xml,
2059           DocTest/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml,
2060           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1.xml,
2061           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
2062           DocTest/en.expected.since/Mono.DocTest.Generic/MyList`2.xml: Added; 
2063           expected output for DocTest.dll v2.0.0.0.
2064
2065 2006-10-11  Jonathan Pryor  <jonpryor@vt.edu>
2066
2067         * stylesheet.xsl: Add /Members/Docs node in GetInheritedMembers() so that
2068           GetLinkId() sees typeparam elements for type replacement in parameters for 
2069           members of base types.  Make sure that "simple" type arguments are 
2070           replaced, e.g. T --> `1.
2071           TODO: figure out type replacements for nested types.
2072         * DocTest/html.expected/Mono.DocTest/UseLists.html, 
2073           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
2074           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
2075           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
2076           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html: Change link id's
2077           and targets for proper type replacements within parameters.
2078
2079 2006-10-10  Joshua Tauberer  <jit@occams.info>
2080
2081         * monodocer.cs: Fixed a bug in WriteElement that would put
2082           nodes in the wrong place if some node in the path already
2083           existed.
2084           - To prevent TypeParameters from always being put at the
2085           end on an update, don't delete that node in an update, just
2086           clear it.
2087           - Update the DisplayName attribute in index.xml on doc updates.
2088         * DocTest/*: Updated for the DisplayName fix, and also put
2089           into a pristine state (I had committed them as an update,
2090           which put the TypeParameters block at the end of the files.)
2091
2092 2006-10-09  Joshua Tauberer  <jit@occams.info>
2093
2094         * monodocer.cs: Update a type's name attributes during an update
2095           because generic argument names may change even if filename
2096           hasn't.
2097           - Added a Type/TypeParameters section which includes type
2098           parameters that come from the declaring type, for nested types.
2099           - When inheriting from a generic type, added a BaseTypeArguments
2100           section which maps type parameters on the base type's type
2101           definition to types instantiating those parameters.  i.e.:
2102             class X<T> { }
2103             class Y<U> : X<U> { }
2104           Y gets a mapping in its BaseType node from T to U.
2105         * stylesheet.xsl: Don't attempt to link to a generic type
2106           parameter, just display it in italics.  And when displaying
2107           inherited members, try to replace generic type parameters
2108           in the base type with the types that have instantiated them
2109           in this type.
2110         * The DocTests are updated to show off these things.
2111
2112 2006-10-08  Joshua Tauberer  <jit@occams.info>
2113
2114         * monodocer.cs: Track which members have been seen in the XML file
2115           not by putting MemberInfos into a hashtable, which seems to
2116           not always work right, but instead by their (string) signature.
2117           - Get custom attribute data with the new 2.0 CustomAttributeData
2118           classes, so that we can reconstruct what the constructor actually
2119           looked like.
2120           - Hide System.Runtime.InteropServices.Out attributes since it is
2121           fake and already in the RefType XML attribute.
2122           - Structs weren't getting their interfaces listed in their C# type
2123           signatures.
2124         * monodocs2html.cs: Don't override the default XSLT URI resolver anymore.
2125         * stylesheet.xsl: Get the index.xml document at the start while we're
2126           sure we have the right base path (the XML document being transformed).
2127           - Display inherited members in a type's member list when the base type
2128           is documented in the same monodocer document set.
2129           - Make sure there's a space between a method's parameters and return
2130           value type in the member list.
2131         * DocTest: Updated to test these things.
2132
2133 2006-10-06  Jonathan Pryor  <jonpryor@vt.edu>
2134
2135         * overview.xsl: When generating a Namespace/index.html file, we should
2136           insert the namespace remarks as well.  (This *should* have been done, but
2137           the remarks selection was relative to '.', not to the provided $ns. :-(
2138         * DocTest/html.expected/Mono.DocTest.Generic/index.html,
2139           DocTest/html.expected/Mono.DocTest/index.html: Flush.
2140
2141 2006-10-06  Jonathan Pryor  <jonpryor@vt.edu>
2142
2143         * Makefile.am: Fix -update targets so they don't delete .svn/*.
2144         * monodocer.cs: Don't key off of DisplayName to insert new <Type> elements,
2145           as this will result in updating all existing documentation (rather silly).
2146           Key off of Name instead, and only create a DisplayName attribute if it
2147           differs from Name.
2148         * DocTest/en.expected/index.xml: Update to latest monodocer output.
2149         * monodocs2html.cs: If DisplayName doesn't exist, fall back to 
2150           Name ("legacy" behavior, now made current due to change in monodocer.cs).
2151         * stylesheet.xsl: For "Name [Generic ] [MemberType]" descriptions, make the
2152           2nd space part of "Generic".  Otherwise we get double spaces for
2153           non-generic members, e.g. "Name  [MemberType]".
2154         * overview.xsl: Fallback to @Name if @DisplayName doesn't exist.
2155         * DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
2156           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
2157           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
2158           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
2159           DocTest/html.expected/Mono.DocTest/Widget.html,
2160           DocTest/html.expected/Mono.DocTest/DocValueType.html,
2161           DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html,
2162           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
2163           DocTest/html.expected/Mono.DocTest/UseLists.html: Update to latest
2164           monodocs2html output.
2165
2166 2006-10-06  Jonathan Pryor  <jonpryor@vt.edu>
2167
2168         * Makefile.am: Build with gmcs; add `-debug' to compile lines; add
2169           DocTest.dll, check-monodocer, check-monodocer-update, check-monodocs2html/
2170           check-monodocs2html-update targets for unit tests.
2171         * monodocer.cs: Major overhaul for Generics support.  Documentation
2172           generated follows the pattern used in CLILibraryTypes.xml from ECMA-335.
2173           - Remove some warnings about unused variables.
2174           - Don't assume that Type.FullName is always what we want, but instead
2175             build a C# typename from the Type information.  This is needed to nicely
2176             deal with generics, as the FullName for Foo<int> would be
2177             Foo[[System.Int32, mscorlib]], while we really want Foo<int>.
2178           - For index.xml files, insert a File attribute, as the Type name won't
2179             match the filename for generic types (Foo<T> is the file Foo`1.xml).
2180           - For GetMember(), remove generic parameters before using Type.GetMember()
2181             with the member name.
2182           - Code refactoring so that <param/> and <typeparam/> generation & updating
2183             is consistent.
2184           - Properly use `this' for method name on indexers.
2185         * monodocs2html.cs: Add Generics support -- use the @File attribute instead
2186           of assuming that @Name contains the proper filename.
2187         * defaulttemplate.xsl: Use <h1> instead of <div>; add CSS for
2188           `.InnerSignatureTable tr' and `.TypePermissionTable tr'.
2189         * overview.xsl: If there are fewer than $max-types (20) types in the
2190           assembly, show them all in the top-level index.html, no matter how many
2191           namespaces are present.  Otherwise, provide links to the
2192           Namespace/index.html files, so that things don't suddenly look different
2193           as soon as you go from 1 namespace to > 1 namespaces in an assembly.
2194           Use <h2/> instead of <div/>.
2195         * stylesheet.xsl: Major overhaul for Generics support, some re-indentation.
2196           - Use <h2/>...<h4/> instead of <div/>
2197           - Allow output to validate against XHTML.
2198           - Don't use generate-id(), but instead generate member ID's manually so
2199             that we can properly refer to them from outside the current page.
2200           - Add support for <see cref=""/> translation to non-types --
2201             constructors, methods, properties, fields, events.  These can refer to
2202             members from a different file, since generate-id() is no longer used.
2203                 - Update the mono-docs site so links to System.* types work.
2204                 - Add support for additional Mono.* namespaces on the mono-docs site.
2205           - Properly display C# indexers ("type this [params]", not 
2206             "type Item [params]").
2207           - Generate documentation for <typeparam/> elements.
2208         * DocTest.cs: Added; Source for DocTest.dll, used by unit tests.
2209         * DocTest/html.expected/Mono.DocTest/Widget+NestedClass.html,
2210           DocTest/html.expected/Mono.DocTest/Widget+NestedClass`1.html,
2211           DocTest/html.expected/Mono.DocTest/Widget+IMenuItem.html,
2212           DocTest/html.expected/Mono.DocTest/DocValueType.html,
2213           DocTest/html.expected/Mono.DocTest/IProcess.html,
2214           DocTest/html.expected/Mono.DocTest/index.html,
2215           DocTest/html.expected/Mono.DocTest/Widget+Direction.html,
2216           DocTest/html.expected/Mono.DocTest/Color.html,
2217           DocTest/html.expected/Mono.DocTest/Widget+Del.html,
2218           DocTest/html.expected/Mono.DocTest/UseLists.html,
2219           DocTest/html.expected/Mono.DocTest/Widget.html,
2220           DocTest/html.expected/Mono.DocTest.Generic/MyList`1+Helper`2.html,
2221           DocTest/html.expected/Mono.DocTest.Generic/index.html,
2222           DocTest/html.expected/Mono.DocTest.Generic/MyList`1.html,
2223           DocTest/html.expected/Mono.DocTest.Generic/MyList`2.html,
2224           DocTest/html.expected/Mono.DocTest.Generic/GenericBase`1.html,
2225           DocTest/html.expected/index.html,
2226           DocTest/en.expected/Mono.DocTest.Generic.xml,
2227           DocTest/en.expected/Mono.DocTest/Widget+IMenuItem.xml,
2228           DocTest/en.expected/Mono.DocTest/IProcess.xml,
2229           DocTest/en.expected/Mono.DocTest/Widget.xml,
2230           DocTest/en.expected/Mono.DocTest/Widget+NestedClass`1.xml,
2231           DocTest/en.expected/Mono.DocTest/DocValueType.xml,
2232           DocTest/en.expected/Mono.DocTest/Widget+Direction.xml,
2233           DocTest/en.expected/Mono.DocTest/Widget+NestedClass.xml,
2234           DocTest/en.expected/Mono.DocTest/Widget+Del.xml,
2235           DocTest/en.expected/Mono.DocTest/UseLists.xml,
2236           DocTest/en.expected/Mono.DocTest/Color.xml,
2237           DocTest/en.expected/Mono.DocTest.Generic/GenericBase`1.xml,
2238           DocTest/en.expected/Mono.DocTest.Generic/MyList`1.xml,
2239           DocTest/en.expected/Mono.DocTest.Generic/MyList`2.xml,
2240           DocTest/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml,
2241           DocTest/en.expected/index.xml, DocTest/en.expected/Mono.DocTest.xml:
2242           Added.  Expected output for monodocer (en.expected) and 
2243           monodocs2html (html.expected).
2244
2245 2006-04-01  Joshua Tauberer  <tauberer@for.net>
2246
2247         * monodocs2html.cs: Skip files that are missing.
2248
2249 2006-03-09  Joshua Tauberer  <tauberer@for.net>
2250
2251         * monodocer.cs: Reverted all of the Cecil changes.  Ah well.
2252
2253 2006-03-04  Joshua Tauberer  <tauberer@for.net>
2254
2255         * monodocer.cs: Using Cecil now!  (Some Cecil fixes
2256           need to be committed.)
2257
2258 2006-03-03  Joshua Tauberer  <tauberer@for.net>
2259
2260         * monodocer.cs: Don't change up whitespace unless user says so.
2261           That makes it hard to see differences against svn.
2262
2263 2006-01-12  Jonathan Pryor  <jonpryor@vt.edu>
2264
2265         * bsd-man-to-ecma.pl, bsd-man-to-exception.pl: Added; scripts to help
2266           convert BSD man pages into ECMA XML formats.  Run `perldoc PROGRAM` for
2267           program documentation.
2268         * Makefile.am: Add bsd-man-to-ecma.pl and bsd-man-to-exception.pl to
2269           EXTRA_DIST.
2270
2271 2005-08-11  Dan Winship  <danw@novell.com>
2272
2273         * monodocer.cs: Don't preserve whitespace when reading the old
2274         doc, and don't add any whitespace when creating the new doc. Just
2275         let the XmlTextWriter handle indentation and it will all just
2276         work.
2277
2278 2005-08-03  Atsushi Enomoto  <atsushi@ximian.com>
2279
2280         * monodocer.cs : update name attribute in paramref elements in sync
2281           with that of param element.
2282
2283 2005-07-09  Joshua Tauberer <tauberer@for.net>
2284
2285         From Rodolfo Campero <rodolfo.campero@gmail.com>
2286         (more or less):
2287         * monodocs2slashdoc.cs: Updated for changes in
2288         index.xml for documenting multiple assemblies.
2289         This app now writes out XML files for each assembly
2290         as well as NamespaceSummaries.xml to the working
2291         directory.
2292
2293 2005-06-12  Joshua Tauberer  <tauberer@for.net>
2294
2295         * monodocer.cs: Added --importslashdoc option to
2296           import the contents of /doc-generated xml docs
2297           into the generated files.
2298
2299 2005-06-09  Joshua Tauberer  <tauberer@for.net>
2300
2301         * monodocer.cs : When documenting a single assembly,
2302           default the Title in index.xml to the name of the
2303           assembly.
2304
2305 2005-06-04  Eric Butler  <eric@extremeboredom.net>
2306
2307         (copied from ChangeLog in parent directory)
2308     * monodocer.cs
2309                 - Now exits with an exit code of 1 in the event of an error
2310                 - Added '-name' command line argument
2311                 - Use above argument for <Title> element
2312
2313 2005-06-01  Joshua Tauberer <tauberer@for.net>
2314
2315         * monodocer.cs : Old index.xml files need to have new nodes
2316           created for multiple assemblies, and the old Assembly and
2317           Attributes nodes removed.  Added a Title element for 2html.
2318           
2319         * overview.xsl : Revised monodocs2html to use the Title
2320           element in index.xml for page titles, rather than the
2321           assembly name, which isn't available anymore since there
2322           may be more than one assembly.
2323
2324 2005-05-23  Mike Kestner <mkestner@novell.com>
2325
2326         * monodocer.cs : add multiple assembly updating. 
2327
2328 2005-05-09  Joshua Tauberer <tauberer@for.net>
2329
2330         * Thanks for pushing me to use a ChangeLog.
2331         * Disallow documenting types in the root namespace (type.Namespace ==
2332           null).
2333         * When a <code> tag has a 'src' attribute, monodocer will replace
2334           the contents of the element with the text in the indicated file.
2335           the path is relative to the path given as the --path option.
2336         * Properties that have different access modifiers on their accessors
2337           are now given signatures that reflect that.  (But Monodoc doesn't
2338           recognize this properly.  A format change is needed.)
2339         * monodocs2html: Create the destination directory if it doesn't exist.
2340
2341 2005-01-29  Jonathan Pryor <jonpryor@vt.edu>
2342
2343         * ChangeLog: Added
2344         * monodocer.cs (GetTypeFileName): Add check for type.Namespace == null.
2345           Fixes NullReferenceException when trying to update Mono.Posix.dll.
2346