[corlib] Improve CancellationTokenSource test
[mono.git] / mcs / tools / mdoc / ChangeLog
index 8802afbaea9cb4444c1454b3a4412329bb6a4110..15a2b4a03a6405ef705b10c6a6ef328d7071a1b5 100644 (file)
@@ -1,3 +1,424 @@
+2010-06-10  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: Regenerate all index.{opts.ext}
+         files if any of the source .xml files have changed.  This allows
+         new <summary/> values to be inserted into the index.{opts.ext}
+         files, instead of the index files being "stale".  Fixes #573121.
+
+2010-04-16  Jonathan Pryor <jpryor@novell.com>
+
+       * Makefile: Add System.Xml.Linq.dll to the referenced assemblies.
+       * Mono.Documentation/webdoc.cs: Allow .source files to be provided to
+         'mdoc export-html-webdoc', which will cause the .source files to be
+         read and all referenced .tree/.zip files to be processed.
+
+2010-04-16  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Use Int64 instead of UInt64 for
+         enum values, so that we can properly capture negative values.
+
+2010-02-28  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: Add --use-system-sources option so
+         that 'mdoc export-html-webdoc' will use the system-installed sources
+         in addition to any -r'd sources (which was the behavior 2 commits
+         ago).
+
+2010-02-26  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/assembler.cs: Allow other apps to get the same
+         '--format' logic, specifically 'mdoc export-html-webdoc'.
+       * Mono.Documentation/webdoc.cs: Allow it to be more "stand-alone".
+         Previously, it would depend upon the system-wide .source files.
+         This is bad, because you might want to generate the 'cache'
+         directory for a different installation, with a different set of
+         .tree/.zip/.source files, and you might not want to replace your own
+         and/or you often forget, as is the case with me.  Instead, allow a 
+         format to be specified for .tree files, and allow additional .source 
+         files to be referenced so that extension methods will be found within
+         the specified sources.  This allows for a "stand-alone" method of 
+         operation w/o depending upon the system-wide .source files.
+
+2010-01-11  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2slashdoc.cs: Fix NamespaceSummaries.xml
+         generation to look at the ns-NAMESPACE.xml files, not just
+         NAMESPACE.xml files.
+
+2009-12-03  Jonathan Pryor <jpryor@novell.com>
+
+       * Resources/stylesheet.xsl: Add support for generating namespace links
+         for <see cref="N:..." />.
+       * Test/DocTest-v1.cs: Add namespace links for testing.
+       * Test/en.expected.importslashdoc/Mono.DocTest/Color.xml,
+         Test/en.expected.importslashdoc/NoNamespace.xml,
+         Test/html.expected/index.html,
+         Test/html.expected/Mono.DocTest/Color.html,
+         Test/html.expected/NoNamespace.html,
+         Test/msxdoc-expected.importslashdoc.xml: Flush.
+
+2009-12-03  Jonathan Pryor <jpryor@novell.com>
+
+       * Test/html.expected/Mono.DocTest.Generic/MyList`1.html,
+         Test/html.expected/Mono.DocTest.Generic/MyList`2.html: Flush to sync
+         with updated mdoc.  Inherited members are now shown (as they were
+         supposed to be, but a bug had prevented from being found).
+
+2009-12-02  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: Enable debug output in
+         XslCompiledTransform when --debug is specified.
+       * Resources/overview.xsl: Add xmlns, exclude-result-prefixes so that
+         .NET won't complain about the stylesheet.  (Why's it complain?)
+       * Resources/stylesheet.xsl: .NET compatibility fixes:
+         - Use msxsl:node-set() when necessary.
+         - Change XPath expressions so that they work properly everywhere.
+       * Makefile: Don't build an 'mdoc-net.exe' anymore, as the normal
+         mdoc.exe can now run normally under .NET.
+
+2009-11-25  Jonathan Pryor <jpryor@novell.com>
+
+       * Makefile: When copying mdoc-net.exe into ./mdoc-net, rename it to
+         mdoc.exe so that .NET users continue to use the name 'mdoc'.  This
+         will make documentation easier, etc.
+
+2009-11-25  Jonathan Pryor <jpryor@novell.com>
+
+       + Giving up on getting mdoc to fully work under .NET; specifically,
+         mdoc-export-html makes use of many Mono XSLT "extensions" (part of
+         XSLT 2.0, apparently) which .NET doesn't support.  To run mdoc under
+         .NET, use mdoc-net.exe, which is a "static" mdoc.exe, including the 
+         sources for BOTH monodoc.dll AND Mono's System.Xml.dll in the binary.
+         Yes, this makes it huge.
+
+       * . (svn:ignore): Ignore generated files.
+       * Makefile: If the NET variable is present (e.g. 'make NET=1'),
+         generate mdoc-net.exe instead of mdoc.exe, otherwise generate
+         mdoc.exe (the default, with normal dependencies).  When NET is
+         present, also create a 'mdoc-net' directory which contains
+         mdoc-net.exe and all assembly dependencies (to make it easier to
+         grab all the deps at once).
+       * mdoc-net.exe.sources: Added; sources to use for mdoc-net.exe.
+       * Mono.Documentation/monodocs2html.cs: Ensure that the "Index" XSLT
+         variable is set before generating output.
+
+2009-11-24  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: Use XslCompiledTransform, as
+         it's *significantly* faster under .NET than XslTransform -- 
+         1.7s vs ~3 minutes 7s (for a trivial test case).
+
+2009-11-23  Jonathan Pryor <jpryor@novell.com>
+
+       * Resources/overview.xsl, Resources/stylesheet.xsl: Remove the 'ext'
+         and 'language' global <xsl:param>'s, as they cause "variable 'foo' 
+         was duplicated within the same scope" errors under .NET.
+
+2009-11-23  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: ".NET support": ensure that we
+         always get Unix line endings so that we can update documentation
+         under both Mono & .NET w/o continually changing the file due to
+         line-ending differences.
+
+2009-11-06  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: When deleting the ExtensionMethods
+         element, remove it from the correct parent XML node.  Fixes #553144.
+
+2009-09-19  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: Add --with-profile=PROFILE
+         option, which just provides a simple mapping between profile names
+         like net_3_5 to the versions used in that profile.
+
+2009-09-19  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: By request of Edd Dumbill, add
+         --with-version=VERSION option.  This will generate HTML
+         documentation for ONLY those types/members which exist within
+         VERSION.  This makes it easy to generate HTML that will show e.g.
+         only MonoTouch docs (and not the full class library docs).
+       * Makefile: Add test for 'mdoc export-html --with-version=VERSION'.
+         Somewhat brain-dead, as it only checks for added types (and not
+         added members), but better than nothing...
+
+2009-09-09  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: Fix behavior when multiple
+         source directories are provided, e.g. 'mdoc export-html -o o a b c'
+         with docs located in directories a, b, and c.  Previously this would
+         be equivalent to running aginst a, b, and c separately, resulting in
+         o/index.html being continually overwritten (and thus not showing ALL
+         available types).
+       * Resources/stylesheet.xsl: Make $Index a parameter (as monodocs2html
+         will create an in-memory index containing all types from all
+         specified directories), and various changes to cope with $Index no
+         longer being a file.  Better support files in the global namespace.
+       * Test/html.expected/NoNamespace.html: Fix assembly link.
+
+2009-08-12  Jonathan Pryor <jpryor@novell.com>
+
+       * Test/DocTest-v1.cs: Add a comment which uses <format/>, to test html
+         escaping behavior.
+       * Resources/monodoc-ecma.xsd: Permit <format/> in various elements.
+       * Test/en.expected.importslashdoc/Mono.DocTest/DocAttribute.xml,
+         Test/html.expected/Mono.DocTest/DocAttribute.html,
+         Test/msxdoc-expected.importslashdoc.xml: Flush.
+
+2009-08-12  Jonathan Pryor <jpryor@novell.com>
+
+       * Makefile: Add ../monodoc/Resources/mdoc-html-format.xsl as a resource.
+
+2009-08-06  Jonathan Pryor <jpryor@novell.com>
+
+       * mdoc.exe.sources: Add ../../build/common/Consts.cs to the build.
+       * Mono.Documentation/mdoc.cs: mdoc version is Consts.MonoVersion, not
+         some hard-coded, perpetually out-of-date version.
+
+2009-08-02  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Sometimes <AssemblyVersion/> is
+         found twice when it's actually present only once (!).  Attempt to
+         work around this by usinq LINQ instead of a foreach (which oddly
+         works...).
+
+2009-07-31  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Record attributes that are placed
+         on property get/set and event add/remove accessors.
+       * Test/DocTest-v1.cs: Add attributes to some accessors.
+       * Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml,
+         Test/en.expected.since/Mono.DocTest/Widget.xml,
+         Test/en.expected/Mono.DocTest/Widget.xml,
+         Test/html.expected/Mono.DocTest/Widget.html,
+         Test/msxdoc-expected.importslashdoc.xml: Flush.
+
+2009-06-23  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Don't generate an exception when an
+         enumeration contains multiple names with the same value.
+         Fixes #515030.
+       * Test/DocTest-v1.cs: Add test for #515030.
+       * Test/en.expected/Mono.DocTest/Color.xml,
+         Test/en.expected.since/Mono.DocTest/Color.xml,
+         Test/html.expected/Mono.DocTest/Color.html,
+         Test/msxdoc-expected.importslashdoc.xml,
+         Test/en.expected.importslashdoc/Mono.DocTest/Color.xml: Flush.
+
+2009-04-18  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: Change -o semantics to be a directory
+         prefix, e.g. `mdoc export-html-webdoc -o cache.new foo.tree` will
+         output files into `cache.new/foo` instead of directly into
+         `cache.new`.  This makes it easier to specify more than one
+         .tree/.zip file on the command line.
+
+2009-04-16  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2slashdoc.cs: Code refactor; use
+         EcmaDoc.GetCref() to generate //member/@name values.
+       * Mono.Documentation/dump.cs: Add -f=FORMAT support, so that we can
+         load an appropriate HelpSource (if supplied) so that an appropriate
+         Node.PublicUrl can be displayed in the output.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: Remove console debug spew.  If you run
+         with `mdoc -v`, each URL will be printed as it's processed.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: When extracting files from the .zip
+         file, ensure that the output file is closed.  Properly pre-render
+         ecma namespace documentation.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Makefile: Add reference to ICSharpCode.SharpZipLib.dll.
+       * mdoc.exe.sources: Add Mono.Rocks/ObjectRocks.cs,
+         Mono.Rocks/StreamRocks.cs.
+       * Mono.Documentation/webdoc.cs: Refactor into smaller methods.  Extract 
+         ZIP file contents in addition to generating HTML output.  Use
+         monodoc helper methods to determine cache directory.
+       * Mono.Documentation/ObjectRocks.cs: Rename to
+         Mono.Rocks/ObjectRocks.cs.
+       * Mono.Rocks/ObjectRocks.cs: Add Check.Destination().
+       * Mono.Rocks/StreamRocks.cs: Added; extension methods for Streams.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: The timestamp logic was wrong it the
+         output directory didn't exist.  Fix.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: Do as make(1) does: if the
+         target directory already exists and is newer than the source files, 
+         don't regenerate output.  (Greatly speeds things up if nothing has
+         changed.)  Add a --force-update option to disable this behavior.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: Change the default -o value to
+         include a "cache" intermediate directory.  This makes it easier to
+         kill the entire cache at once.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: Provide nice default -o value.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/webdoc.cs: Load documentation through a
+         HelpSource, not through the RootTree, as URLs of the form
+         "ecma:0#AvoidExtensionMethodOnSystemObjectRule/" use the number (0
+         in this case) as a HelpSource-relative identifier.  Result: you get
+         the wrong documentation if you go through RootTree.
+
+2009-04-15  Jonathan Pryor <jpryor@novell.com>
+
+       * Makefile: Add reference to System.Web.dll, for HttpUtility.
+       * mdoc.exe.sources: Add ObjectRocks.cs, webdoc.cs to the build.
+       * Mono.Documentation/mdoc.cs: Add export-html-webdoc command, which
+         "pre-renders" HTML for use by the webdoc ASP.NET renderer.
+       * Mono.Documentation/webdoc.cs: Added; MDocExportWebdocHtml
+         implementation; attempts to pre-render HTML based on .tree/.zip
+         file contents.
+       * Mono.Documentation/ObjectRocks.cs: Added; extension methods for tree
+         traversal (from Mono.Rocks).  For use in webdoc.cs.
+
+2009-04-09  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Using a single IAssemblyResolver is
+         an improvement, but doesn't fix all problems.  In particular, some
+         assemblies will depend upon other assemblies to load (e.g. 3rd party
+         assemblies) but these dependent assemblies shouldn't be documented.
+         Add support for -r:ASSEMBLY and -L:DIRECTORY arguments to allow the
+         user to manually add to the assembly search path so that assemblies
+         can be found.  Assemblies added via -r will NOT be documented.
+
+2009-04-08  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Use a single IAssemblyResolver
+         shared amongst all AssemblyDefinitions to resolve assembly/type
+         references with Cecil.  Otherwise, if we have deeply nested
+         directories with cross-directory assembly dependencies, then Cecil
+         won't find the necessary assemblies (e.g. b/bin/Debug/b.dll has a
+         type which inherits from a/bin/Debug/a.dll -- here, we'll have two
+         separate AssemblyDefinitions, and when b.dll's AssemblyDefinition
+         tries to resolve types from a.dll, it fails).
+         See: http://lists.ximian.com/pipermail/mono-devel-list/2009-April/031646.html
+
+2009-03-29  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/exceptions.cs: Add
+         ExceptionLocations.AddedMember, used for --exceptions=added support.
+       * Mono.Documentation/monodocer.cs: Add --exceptions=added, which will 
+         only add <exception/> elements for newly added elements.  This is
+         useful for updating documentation for established projects which
+         already have <exception/> corrections (e.g. *removal* of
+         <exception/> elements because the exceptions weren't actually
+         possible), so only new members should have <exception/> created.
+
+2009-03-20  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: Perform the timestamp check for
+         the top-level and namespace-level index files.
+
+2009-03-21  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Be nice to make,
+         mdoc-export-html, and other apps that use file timetamps: if the 
+         file contents haven't changed after the update, don't replace the
+         "original" file.  This preserves file timestamps, thus allowing
+         other apps to behave nicely (e.g. mdoc-export-html won't update all
+         documentation after running mdoc-update, as the files won't change
+         unless something has *actually* changed).
+
+2009-03-20  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocs2html.cs: Do as make(1) does: if the
+         target file already exists and is newer than the source file, don't
+         regenerate it.  (Greatly speeds things up if only a few .xml files
+         changed.)  Add a --force-update option to disable this behavior.
+
+2009-02-26  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/assembler.cs: When processing an empty directory,
+         it's possible for HelpSource.Tree to be null; avoid an NRE.
+
+2009-02-17  Jonathan Pryor <jpryor@novell.com>
+
+       * Test/DocTest-v1.cs: Add test for #475814.
+       * Mono.Documentation/exceptions.cs, Mono.Documentation/monodocer.cs:
+         Use the new Mono.Cecil .Resolve() methods instead of (erroneously)
+         duplicating their functionality with the .GetDefinition() methods.
+         ExceptionLookup.this[IMemberReference] checks for multi-dimensional
+         arrays, as MD arrays are "special" (Cecil can't resolve them, as
+         they're internal to the runtime with no specific associated IL).
+         Fixes #475814.
+
+2009-02-17  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Check that the cref attribute is
+         non-null before trying to use it when importing slashdoc sources.
+         Fixes #475852.
+       * Test/DocTest-v1.cs: Add an <exception/> doc comment with an invalid
+         attribute value for testing.
+
+2009-02-17  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/mdoc.cs: Set Environment.ExitCode=1 if an
+         exception occurs, so that calling code can determine that an error
+         occurred w/o resorting to parsing stderr.  Fixes #475746.
+
+2009-02-16  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Support C#4 variant generics, e.g.
+         `delegate TRet Func<in TArg, out TRet>(TArg a)'.  Alas, this
+         required making MemberFormatter explicitly stateful, so any thoughts
+         of using instances w/o locking are now out the window...  (Not that
+         threads are currently used, but they're planned to be used...)
+         TODO: Add a test to Test/DocTest-v1.cs.  This wasn't done as the
+         current gmcs support doesn't like intermixing variance with generic
+         parameter attributes, and I don't want to introduce a new delegate
+         type (and the ~6 new files that would imply) just for this feature.
+
+2009-02-10  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Cleanup: turn static data into
+         instance data (for future Threading changes, as only static data
+         will be tracked for thread-safety); use MDocCommand.Message() and
+         MDocCommand.Error() for message reporting; remove warnings.
+
+2009-01-05  Jonathan Pryor <jpryor@novell.com>
+
+       * Makefile: Fix $(PROGRAM) dependencies so that mdoc.exe is rebuilt
+         when one of the dependent ../monodoc/Resources/* files is changed.
+
+2009-01-05  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/mdoc.cs: `mdoc' (no arguments) shouldn't print an
+         index out of range error.  Fix.
+       * Mono.Documentation/monodocer.cs: Rename -fno-member-assembly-info to
+         -fno-assembly-versions, which prevents generation of //AssemblyVersion
+         elements.  This suffers the same warning as -fno-member-assembly-info,
+         so don't use unless you can guarantee that no members will 
+         ever be removed from your public API. :-)
+         Clean up -f handling so that -f:no-assembly-versions will work as
+         expected.
+
+2009-01-05  Jonathan Pryor <jpryor@novell.com>
+
+       * Mono.Documentation/monodocer.cs: Add -fno-member-assembly-info,
+         which remove /Type/Members/Member/AssemblyInfo elements.
+         Requested by Mike Kestner.
+         Warning: this option will break automatic version tracking, so if a
+         member is present in e.g. v1.0 and is removed in e.g. v2.0, 
+         the //Member element will be removed entirely when updating the
+         documentation against the 2.0 assembly.  Use with care.
+
 2008-12-06  Jonathan Pryor <jpryor@novell.com>
 
        * Mono.Documentation/monodocer.cs: Remove "exception" from DocsNodeOrder