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