d15c6ddfd7b25d4ca0cf459886ee5ae7eecea9c5
[mono.git] / mcs / tools / monodoc / ChangeLog
1 2009-04-16  Jonathan Pryor  <jpryor@novell.com>
2
3         * Monodoc/provider.cs: Overview: MonoDevelop loads monodoc.dll into
4           it's own process, and spawns monodoc GUI into a separate process,
5           then sends Node.URL values (obtained from the MonoDevelop process)
6           to load the documentation into the monodoc GUI.  Problem:
7           occasionally the requested documentation isn't loaded, but instead
8           some completely unrelated documentation is shown instead.  This is
9           because the Node.URL value contains HelpSource-dependent data, e.g.
10           a Node.URL value of "ecma:0#Foo/" will specify the 1st file
11           within...whatever HelpSource is first consulted by monodoc (which
12           can vary between monodoc runs, the phase of the moon, etc.).
13           Solution: Add a Node.PublicUrl property which returns _stable_ URLs
14           which aren't specific to a given HelpSource.
15           - Add Node.PublicUrl property, which delegates to
16             Provider.GetPublicUrl(string), so that a Provider can generate a
17             Provider-independent URL (if possible).
18           - Print PublicUrl from Node.PrintTree().
19           - Add RootTree.GetSupportedFormats(), RootTree.GetProvider()
20             methods.
21           - Make RootTree.GetHelpSource() public.
22         * Monodoc/ecma-provider.cs: Add EcmaDoc.GetCref() method (generates an
23           XML documentation //see/@cref value), override
24           Provider.GetPublicUrl() (which will return cref's if possible).
25
26 2009-04-15  Jonathan Pryor  <jpryor@novell.com>
27
28         * Monodoc/ecma-provider.cs: EcmaHelpSource.GetText() doesn't need to
29           call GetCachedText() twice.
30
31 2009-04-15  Jonathan Pryor  <jpryor@novell.com>
32
33         * Monodoc/provider.cs: Correct UseWebdocCache logic.
34         * Monodoc/xhtml-provider.cs: Use GetCachedText().
35
36 2009-04-15  Jonathan Pryor  <jpryor@novell.com>
37
38         * Monodoc/provider.cs: UseWebdocCache is a better name that
39           IgnoreCache (considering that cache is disabled by default).
40
41 2009-04-15  Jonathan Pryor  <jpryor@novell.com>
42
43         * Monodoc/provider.cs:
44           - Add HelpSource.IgnoreCache field, so that if the cache is present 
45             it will be ignored.  (Required by 'mdoc export-html-webdoc' so it 
46             gets "fresh" content to generate the cache, and by monodoc GUI as 
47             it can't use the cache'd HTML; cache'd HTML is for ASP.NET 
48             webdoc only.)
49           - Alter the cache directory from e.g. sources/netdocs to 
50             sources/cache/netdocs (as defined by 
51             XmlDocUtils.GetCacheDirectory()).
52           - Add HelpSource.GetCachedText() method which will return the 
53             contents of the cache for an id.
54         * Monodoc/addins-provider.cs, Monodoc/ecma-provider.cs, 
55           Monodoc/error-provider.cs, Monodoc/man-provider.cs, 
56           Monodoc/simple-provider.cs: Use GetCachedText().
57         * Mono.Documentation/XmlDocUtils.cs: Add GetCacheDirectory(),
58           GetCacheFileName() methods.
59
60 2009-04-14  Jonathan Pryor  <jpryor@novell.com>
61
62         * Monodoc/provider.cs: Fix NullReferenceException in 'mdoc dump-tree'.
63
64 2009-04-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
65
66         * ecma-provider.cs: remove 'using'.
67         * provider.cs: if there's a directory with the base name, read the
68         files from there instead of from the .zip file.
69
70 2009-03-01  Jonathan Pryor  <jpryor@novell.com>
71
72         * Monodoc/ecma-provider.cs: Viewing type members (plural, e.g. the
73           Fields sub-node) would result in a stack overflow within
74           Resources/mdoc-html-utils.xsl:GetInheritedMembers(), because the
75           document() XSLT function was being used to obtain the base type's
76           documentation.  It stack overflowed because the XmlUrlResolver was
77           being used, which when given e.g. file:///DocAttribute.xml, would
78           return file:///DocAttribute.xml (which makes sense), but it was
79           non-terminating.  (I find this troubling as it should have been
80           trying to resolve e.g. System.Attribute, not DocAttribute; it must
81           be some XmlTransform-fu that was substituting documents.)
82           The fix is for EcmaUncompiledHelpSource to provide an alternate
83           document XmlResolver, one which always returns null from
84           XmlResolver.ResolveUri(), thus preventing endless recursion.
85
86 2009-03-01  Jonathan Pryor  <jpryor@novell.com>
87
88         * Mono.Documentation/XmlDocUtils.cs: It's possible for the `loader'
89           delegate to return `null' if no further base types are found, so
90           stop processing if we find a null base type.
91         * Monodoc/provider.cs: 
92           - Make GetHelpStream() virtual so that EcmaUncompiledHelpSource can
93             override it, as the default zip-based behavior is inappropriate.
94           - Make GetHelpXmlWithChanges() virtual so that
95             EcmaUncompiledHelpSource can override it, as the default zip-based
96             behavior is inappropriate.
97           - When initializing UncompiledHelpSources, set the
98             HelpSource.RootTree property (avoids an NRE from
99             EcmaHelpSource.GetTextFromUrl() when it reads RootTree.HelpSources).
100         * Monodoc/ecma-provider.cs: 
101           - Within the XmlDocUtils.AddExtensionMethods() call, don't always 
102             prefix the type with "T:", as sometimes the type will already start 
103             with "T:", which is the case with EcmaUncompiledHelpSource ids.  
104           - Add EcmaUncompiledHelpSource.GetHelpStream() and
105             EcmaUncompiledHelpSource.GetHelpXmlWithChanges(), which Do The
106             Right Thing for the file-based backend.
107
108 2009-03-01  Jonathan Pryor  <jpryor@novell.com>
109
110         * Monodoc/ecma-provider.cs: For some reason,
111           EcmaHelpSource.GetNamespaceDocument() wasn't being used anymore,
112           which is what EcmaUncompiledHelpSource overrides to permit loading
113           of local files.  Result: an exception when trying to view namespaces
114           of local (non-assembled) directories.  Oops.  "Fixes" 443508.
115
116 2009-02-26  Jonathan Pryor  <jonpryor@vt.edu>
117
118         * Monodoc/provider.cs: Revert; Don't check for Tree.Nodes == null, as it
119           happens in numerous places.  Instead, take a page out of the "I
120           never should have invented `null'" book, and ensure that Tree.Nodes
121           can never be null.  This fixes the "HelpSource has 0 items" issue
122           and several other related ones.
123
124 2009-02-26  Jonathan Pryor  <jonpryor@vt.edu>
125
126         * Monodoc/provider.cs: It's possible for a HelpSource to have 0
127           elements (which can be done by e.g. running `mdoc assemble' on an 
128           empty directory), in which case HelpSource.Tree.Nodes will be null.
129           Make sure that we don't get a NullReferenceException.
130           Patch thanks to Theerud Lawtrakul.  Fixes #443699.
131
132 2009-02-25  Jonathan Pryor  <jonpryor@vt.edu>
133
134         * Makefile: 
135           - s/TEST_FILES/MAN_TEST_FILES/g: $(TEST_FILES) is used by the normal
136             build process, so the local definition is lost (and thus ignored).
137             Result: Test/* isn't actually copied.  Oops.  Changing to
138             MAN_TEST_FILES allows things to be copied.
139           - Fix the filenames within $(MAN_TEST_FILES) so `make dist-local'
140             works without error.
141           - Fixes #479753.
142
143 2009-02-09  Jonathan Pryor  <jonpryor@vt.edu>
144
145         * Makefile: Don't include mono-ecma-css.js as a resource.
146         * Monodoc/ecma-provider.cs: Insert helper.js, not mono-ecma-css.js.
147         * Monodoc/provider.cs: Surround the contents of `helper.js' with a
148           <script/> block so that valid HTMl is generated.
149         * Resources/helper.js: Remove <script/> block, so that `helper.js' is an
150           actual JavaScript file, not an SGML file w/ JavaScript content.
151         * Resources/mono-ecma-css.js: Remove; use Resources/helper.js instead.
152
153 2009-01-05  Jonathan Pryor  <jonpryor@vt.edu>
154
155         * Makefile: Fix $(the_lib) dependencies so that monodoc.dll is rebuilt
156           when one of Resources/* is modified.
157         * Resources/mdoc-html-utils.xsl: Rework the Requirements block so that
158           it doesn't require //AssemblyInfo or //AssemblyVersion.  This allows
159           `mdoc update -fno-assembly-versions ...`-produced XML to still
160           produce HTML with a Requirements section (skipping the Assembly
161           Versions block but generating the Namespace and Assembly blocks).
162           Change the behavior of //since generation so that instead of
163           printing out a note before the method summary, a Since block is added
164           to the Requirements section, and the Since block contains the
165           //since/@version text.  All this to make Mike Kestner happier. :-)
166
167 2008-10-29  Jonathan Pryor  <jonpryor@vt.edu>
168
169         * Monodoc/xhtml-provider.cs: Use HelpSource.Message(), not 
170           Console.WriteLine().
171
172 2008-10-28  Jonathan Pryor  <jonpryor@vt.edu>
173
174         * Monodoc/provider.cs: Add HelpSource.InlineCss and
175           HelpSource.InlineJavaScript virtual properties, so that the help
176           source can provide specific CSS and JavaScript to be included into
177           the generated HTML document.  This is used by the ASP.NET front-end,
178           as it needs to insert the CSS & JavaScript separately (as it also
179           inserts its own CSS & JavaScript).
180         * Monodoc/ecma-provider.cs, Monodoc/ecmaspec-provider.cs,
181           Monodoc/error-provider.cs: Override InlineCss & InlineJavaScript, as
182           appropriate.
183
184 2008-10-24  Jonathan Pryor  <jonpryor@vt.edu>
185
186         * Monodoc/addins-provider.cs, Monodoc/ecma-provider.cs,
187           Monodoc/ecmaspec-provider.cs, Monodoc/error-provider.cs,
188           Monodoc/man-provider.cs, Monodoc/monohb-provider.cs,
189           Monodoc/provider.cs: Remove Console.WriteLine() spew; helps cleanup
190           `make` output in mcs/docs (from `mdoc assemble`, which indirectly
191           invokes most of the *-provider files).  We solve this problem by
192           providing a TraceLevel-based message system, so that messages are
193           only generated if they are less than or equal to the requested
194           output level (thus skipping the more verbose "every file" messages
195           from ecma-provider.cs & error-provider.cs).
196         * provider.cs: Change Node.CompareTo() to use a "natural sorting"
197           algorithm -- this allows the C# Language Specification nodes to
198           continue being displayed in the correct order.
199
200 2008-10-21  Jonathan Pryor  <jonpryor@vt.edu>
201
202         * Monodoc/provider.cs: 
203           - Fix Node.Sort() so that it doesn't NRE if nodes == null.
204           - Fix Node.CompareTo() so that it can sort Nodes that haven't been
205             loaded yet.
206           - Add "libraries" as an alias for "root", so that .source files can
207             refer to the parent "libraries" (which would allow us to change
208             the location of "libraries" in the future, should we want to).
209           - If a /monodoc/source/@path refers to a nonexistant node, then
210             insert the contents under Various instead of ignoring it.
211           - Sort the top-level nodes.
212           - Sort the `parent` node after inserting children under it.  This
213             allows multiple different .source files to insert nodes under the
214             same parent node and still have the child nodes sorted as most
215             mortals would expect.
216           - Support a //node/@parent attribute, which allows for creating
217             nodes underneath the specified parent node.  This allows multiple
218             different .source files to contribute to the tree and depend upon
219             each other.  Thus, instead of having a single monodoc.xml file
220             that needs to know the entire tree in advance, the entire tree can
221             be spread across multiple .source files and filled at runtime.
222
223 2008-10-18  Jonathan Pryor  <jonpryor@vt.edu>
224
225         * Makefile $(LIBRARY_PACKAGE): Set to `monodoc`, as we historically
226           have had a monodoc package (and thus should preserve it).
227
228 2008-10-17  Jonathan Pryor  <jonpryor@vt.edu>
229
230         * Makefile: Distribute monodoc.dll.config.in.
231
232 2008-10-17  Jonathan Pryor  <jonpryor@vt.edu>
233
234         * Makefile: Generate a monodoc.dll.config (installed by gacutil), so
235           that monodoc.dll can find the documentation sources.
236
237 2008-10-16  Jonathan Pryor  <jonpryor@vt.edu>
238
239         * Mono.Documentation/ManifestResourceResolver.cs, 
240           Mono.Documentation/XmlDocUtils.cs: Make types public so that they
241           can be used from ../mdoc/mdoc.exe.
242
243 2008-10-16  Jonathan Pryor  <jonpryor@vt.edu>
244
245         * Makefile: Update $(thisdir).
246
247 2008-10-16  Jonathan Pryor  <jonpryor@vt.edu>
248
249         * Assmbly/AssemblyInfo.cs: Change location of mono.snk (since the 
250           monodoc directory was moved from mcs/class to mcs/tools).
251
252 2008-10-16  Jonathan Pryor  <jonpryor@vt.edu>
253
254         * Makefile: Improve `make clean` support.
255
256 2008-10-16  Jonathan Pryor  <jonpryor@vt.edu>
257
258         * Makefile: Add EXTRA_DISTFILES; monodoc.dll should depend upon
259           Makefile (in case the /resource: lines change); shorten the .gif
260           resource names.
261
262 2008-10-16  Jonathan Pryor  <jonpryor@vt.edu>
263
264         * Test (svn:ignore): Ignore generated files.
265         * Makefile: Add tests for man-provider.
266
267 2008-10-16  Jonathan Pryor  <jonpryor@vt.edu>
268
269         * ChangeLog: Added/Started.
270         * Makefile: Added; build monodoc.dll.
271