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