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