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