[Mapguide-trac] [mapguide-trac] #2877: Drop doxygen and use per-language API documentation tools

MapGuide Open Source trac_mapguide at osgeo.org
Fri Nov 10 08:13:31 PST 2023


#2877: Drop doxygen and use per-language API documentation tools
-----------------------------+----------------------
   Reporter:  jng            |      Owner:  jng
       Type:  task           |     Status:  assigned
   Priority:  low            |  Milestone:  4.0
  Component:  Documentation  |    Version:
   Severity:  trivial        |   Keywords:
External ID:                 |
-----------------------------+----------------------
 Doxygen is currently our API doc generation tool, which is not suitable
 for our API documentation needs due to its C++-centric nature and our
 downstream API consumers being the 3 managed language bindings to this C++
 API.

 Instead, we should generate API documentation for each language target in
 their preferred documentation tool of choice and implement a static
 landing page that links to all 3 generated API docs.

 For this, we will use the following tools for each respective language
 target:

  * PHP: [https://github.com/code-lts/doctum doctum]
  * .net: [https://dotnet.github.io/docfx/ docfx]
  * Java: The built-in `javadoc` that comes with the JDK

 Thanks to the support in IMake for transferring API doc fragments to the
 .net and Java proxy classes implemented a long time ago, most of the hard
 work is already done for us. The only gap is PHP, where we will require
 IMake to generate stub PHP proxy classes (with transferred API doc
 fragments) for the purpose of running doctum against it.

 With this in place, we can drop doxygen and all of its associated files
 from our source tree.

 Task breakdown:

  * [ ] Add helper script to acquire required documentation tools
  * [ ] Add docfx project
  * [ ] Update IMake to support generation of PHP stub classes with
 transferred API documentation
  * [ ] Add top-level doc build script to run docfx, javadoc and doctum
 against their respective proxy class source files
  * [ ] Convert all doxygen conceptual topics over to markdown .md files
  * [ ] Determine a suitable static site generator that supports code
 syntax highlighting in Java, C# and PHP
  * [ ] Add a static landing site that links to the docfx, javadoc and
 doctum generated API docs
  * [ ] Add conceptual topics to the landing site
  * [ ] Package zip of the landing site with the 3 language-specific API
 docs
-- 
Ticket URL: <https://trac.osgeo.org/mapguide/ticket/2877>
MapGuide Open Source <http://mapguide.osgeo.org/>
MapGuide Open Source Internals


More information about the mapguide-trac mailing list