DoxyPress  1.3.3

The following information details the development of DoxyPress and DoxyPressApp.


November 2014:

  • Discovered Doxygen was not sufficient for accurate C++11 API documentation
  • Used QDoc on Qt 4.8.6 source code to generate html output
  • Merged Qt 5.x html pages with Qt 4.x html output
  • Developed a parser to convert html documentation to the Doxygen format

December 2014:

  • Fork of Doxygen 1.8.8
  • Renamed Doxygen to DoxyPress
  • Wrote new makefiles to build DoxyPress with GNU Autotools
  • Removed all Qt 2 classes and containers
  • DoxyPress links with CopperSpice library using C++11
  • Code reformatted and modified to use C++11 syntax where appropriate
  • Updated source code to use variadic templates and shared pointers
  • Renamed DoxyWizard to DoxyPressApp
  • Wrote new makefiles to build DoxyPressApp with GNU Autotools
  • Redesigned the user interface of DoxyPressApp


January 2015:

  • Changed DoxyPress to use a JSON project file
  • Added a new parser to support documenting Makefiles. Uses the new command \code {.mk}
  • Changed erroneous 'div' tags to paragraph tags
  • Resolved issues with white space in tables. Blank rows are no longer displayed in the table output and do not cause layout issues
  • Changed DoxyPressApp to use a JSON project file
  • Added a feature to convert a Doxygen project file to a DoxyPress JSON project file
  • Tags with list values are now comma separated. Improved UI to use one consistent style of editor
  • Tags with list values can be modified inline or with the pop up editor

February 2015:

  • Updated help text for every field in the DoxyPressApp
  • Help text is activated by mousing over the corresponding data field
  • Created a new test project for functional testing
  • Added a tag for removing the timestamp for LaTex
  • Added a tag to specify the full file name for the GhostScript program
  • A new variable was added, $datetimeHHMM will be substituted with the current date and time during documentation generation. An example of this format is: "Tue Mar 31 2015 15:30"

March 2015:

  • Added a new command \sortid X, where X must be an integer. This command can be used to specify the sort order of pages in the treeview
  • Incorporated numerous changes from Doxygen 1.8.9 into DoxyPress 1.0.0
  • Updated the HTML style sheets and layout files
  • DoxyPress and DoxyPressApp released to Alpha

April 2015:

  • Added DoxyPress support Forum for end users, developers, and bug tracking
  • Added syntax highlighting in DoxyPressApp for several words like Reading, Processing, Error, and Warning
  • Fixed display issue with \secreflist layout
  • Added a second optional parameter to \anchor to specify the displayed anchor name
  • Fixed <dl> so it can contain multiple <dd> tags
  • Images no longer force a new paragraph
  • DoxyPress and DoxyPressApp released to Beta

May 2015:

  • Compiled clang 3.6.0 on Windows 32-bit and 64-bit
  • Review the process to use clang for C++ parsing
  • Add support for documenting CopperSpice macros
  • Enhanced support for Qt macros
  • Auto generated table has been added to property documentation to show associated methods
  • Changed the function pages (variables, typedefs, enums, etc) to show the underscore letter for the first page
  • For a function page containing multiple pages, a new redirect page from the base name to the correct first letter will automatically be generated

June 2015:

  • Clean up DoxyPress documentation
  • Backport several cherry picks
  • Added a warning when member source and member documented return types do not agree
  • Output was incorrect when an enum with the same name was in multiple namespaces
  • Enhanced C++ parsing support
  • Removed compound auto link to self
  • Added three new sections to the layout file for class docs
    • Typedefs which were in "Public Types" were moved to "Public Typedefs"
    • Typedefs which were in "Protected Types" were moved to "Protected Typedefs"
    • Typedefs which were in "Private Types" were moved to "Private Typedefs"

July 2015:

  • Redesigned the entire translation system to use the built in CopperSpice Translations
  • A DoxyPress project can switch between language translations without rebuilding
  • Extensive changes to use QString instead of eight bit strings
  • Modified all methods character processing to use Unicode
  • Fixed <div id = "nav-path">, conflict with the an id, new id is "breadcrumb"
  • Added markdown page to the Test Suite Project

August 2015:

  • Given a function with only a brief description, no detailed description, and Auto Brief is set "on". Documentation was not shown in the declaration section. Resolved in DoxyPress.
  • Built using CS 1.2.0
  • Official release of DoxyPress and DoxyPressApp

September 2015:

  • Attended CppCon in Seattle, Washington
  • Co-founders of CopperSpice and DoxyPress presented two sessions. One talk was about the CopperSpice library and the other presentation announced DoxyPress
  • Co-founders of CopperSpice presented a lightning talk about template magic

October 2015:

  • Reorganize DoxyPressApp Json project file to use a hierarchical structure
  • Fix input source path issues and recursion problem
  • Updated the DoxyPress test build

November 2015:

  • Added a project tag to specify the main index page name, this file name will not be included in the navigation treeview file listing if FILES is enabled
  • New tags were added in the project file to specify source extensions and header extensions
  • New header extension tags allow the user the ability to define which files will appear in the File List
  • Release RC-2

December 2015:

  • Added Latex Stylesheets to DoxyPress, updated DoxyPressApp with a new project tag
  • Updated the DoxyPress test build
  • Backport cherry picks
  • Converted numerous internal raw pointers to shared pointers
  • Removed unused source code
  • Release RC-3
  • Updated the copyright


January 2016:

  • Uploaded source to GitHub (version 1.1.0)
  • Backport cherry picks
  • Added new project tag to omit the main index page from the navigation treeview
  • Added new project tag to specify a list of namespaces which should be renamed in the documentation with an alias name
  • Merged development branch with master
  • Uploaded source to GitHub (version 1.2.0)
  • Release version 1.2.0
  • Added the ability to pass the date/time to DoxyPress from the command line (Refer to Set Date/Time)
  • Added a feature in the DoxyPressApp program to pass the date/time to DoxyPress
  • Corrected several error messages for project file tags

February 2016:

  • Fixed legacy issue with auto links to templated classes
  • Resolved an issue with graphViz
  • Resolved an issue with file names for global functions
  • Enhanced the interface to use libclang for parsing C++
  • Move minimum GCC version to 4.8.1
  • Release version 1.2.1

March 2016:

  • Upgrade to clang 3.7.1
  • Enhance libClang integration for C++ parsing
  • Separated File Listing into Files List and File Source
  • Updated the default layout file, added a new tag for File Source
  • Added user requested changes and enhancements
  • Added a command line option in DoxyPressApp to convert a project file to the DoxyPress format

April 2016:

  • Enhanced the options DoxyPressApp can pass to DoxyPress
  • Release version 1.2.2
  • Continue with development to use libClang for parsing C++ source

May 2016:

  • CppNow 2016 presentation on CopperSpice and our new CsSignal library
  • CppNow 2016 presentation on DoxyPress demonstrating how clang can be used to parse C++
  • CppNow 2016 presentation on LibGuarded
  • Switch to using clang libTooling 3.7.1 for parsing C++
  • Created a test suite for C++ parsing

June 2016:

  • Fix reported member grouping issue
  • Rework Python parsing file
  • Created a test suite for Python parsing
  • Adjust icons to indicate a P for packages instead of a namespace for Java and python
  • Add new tag to DoxyPressApp for Python optimization
  • Released DoxyPress 1.2.3-RC-1 source and Windows 64 binary files

July 2016:

  • CopperSpice team on temporary medical leave as Barbara recovers from a Total Knee Replacement
    Thank you to the community for their wonderful support and encouragement during this time

August 2016:

  • Fix reported user issues
  • Backport cherry picks
  • Added accelerators to DoxyPressApp
  • Update python test build files
  • Enhance how css files are copied into a project
  • Update DoxyPress documentation
  • Released DoxyPress 1.2.4-RC-1, Windows 64 binary files

September 2016:

  • Several improvements in markdown
  • Added documentation detailing how to build DoxyPress with libClang
  • Added documentation detailing how to build clang
  • Remove "-0" from Cs library file names
  • Released DoxyPress and DoxyPressApp 1.2.4

October 2016:

  • Continue internal work on clang parsing for C++

November 2016:

  • Resolve several reported issues from current users
  • Backport cherry picks
  • Minor clean up in the DoxyPressApp UI
  • Extensive changes to Fortran parsing
  • Added test files for multiple languages to DoxyPress test build
  • Modify the global containers to access by value instead of raw pointers

December 2016

  • Add additional testing to the test build for DoxyPress commands
  • Cleaned up marshaling by removing raw pointers, increased stability
  • Corrected an issue with the source file index layout
  • Resolved C# user report parsing issue
  • Resolved tagfile generation issue
  • Enhanced file source navigation
  • Redesigned cite and bibliography to work on Windows
  • Add 'override' to inherited methods
  • Update documentation detailing how to build clang for Debian Jessie
  • Release DoxyPress and DoxyPressApp 1.2.5


January 2017:

  • Update copyright
  • Resolved return type issue for overloaded methods
  • Fixed an issue when documenting a template overload
  • Enhance parsing when suppressing word links for templates
  • Clarified warning messages
  • Template parameter list did not match when < > spacing was not exact, compare adjusted
  • DoxyPressApp: Added Find and FindNext on the process tab
  • Release DoxyPress and DoxyPressApp 1.2.6

February 2017:

  • Optimize memory usage in preprocessor
  • Clean up inherited memory leaks as reported from Valgrind
  • Change several small QList containers to use QVector
  • Enhance clang parsing to handle template parameters
  • CMake build files under development, working on scripts to locate required libraries
  • Release DoxyPress and DoxyPressApp 1.2.7
  • Accepted as speakers for CppNow 2017

March 2017:

  • Redesign interface for handling templates in clang libTooling when parsing C++
  • Extensive testing of the clang parsing by documenting the actual clang source code

April 2017:

  • Fix Unicode problem with comments, multi byte characters are now displayed properly
  • Fix DoxyPressApp to display the DoxyPress output using UTF-8
  • Correct warning log for explicit methods
  • Continued improvements in clang libTooling when parsing C++

May 2017:

  • CppNow 2017 presentation on CsString, a Unicode aware string library
  • CppNow 2017 presentation on libGuarded, new RCU container classes
  • CopperSpice 1.4.1 release
  • CsSignal 1.1.0 release
  • libGuarded 1.1.0 release
  • CsString 1.0.0 release
  • DoxyPress 2.2.8 release
  • DoxyPress 2.2.9 release

June 2017:

  • Update CMake build system to locate CopperSpice libraries
  • Update CMake build system for packaging support with CPack
  • Fix issue with the brief on group pages, use abbreviated brief
  • Allow a group list to contain classes with the same name in different scopes
  • Optimize class lookup in map container, remove duplicate calls to find
  • For Latex output, modify so only one text stream is used
  • Fix format of Latex comments
  • Increase number of recent files open to 15 for DoxyPressApp

July 2017:

  • CMake successfully creates zip file packages for DoxyPress & DoxyPressApp for Windows
  • DoxyPress 1.2.10 release
  • DoxyPressApp 1.2.10 release
  • Recorded CppCast interview
  • Started CopperSpice YouTube channel
  • Accepted as speakers for CppCon 2017 presenting CsString, a Unicode aware string library
  • Accepted as speakers for CppCon 2017 presenting libGuarded, new RCU container classes
  • Clean up user issues reported on Github

August 2017:

  • Resolved issue with lex parsing C++ qualifiers
  • Fixed output when only RTF is selected
  • Minor DoxyPressApp gui updates
  • Updated to support clang 3.8.1 for clang parsing
  • Update minimum required clang version to 3.8.1 for building DoxyPress
  • Update minimum required GCC version to 5.4 for building DoxyPress
  • Migrate to C++14 on all platforms

September 2017:

  • Document how to build clang 3.8 for various platforms with RTTI enabled, required for clang parsing
  • Update documentation when parsing with clang
  • DoxyPress 1.2.11 release
  • DoxyPressApp 1.2.11 release
  • Attended CppCon in Seattle, Washington
  • Presented a talk on CsString and libGuarded at CppCon

November 2017:

  • Begin design to overhaul the internal representation of parsed source code
  • New entry system design required adding a new class called QFlatMap to CopperSpice

December 2017:

  • Check the input source path for, automatically parse this file if it is available
  • Modify the algorithm to mangle upper case file names or page names when case sensitivity is turned on
  • Do not report a return type mismatch if one of the return types is auto
  • Update DoxyPressApp, add an icon to display a file selector for the markdown main page tag


January 2018:

  • Update copyright
  • Major internal update to the entry system which tracks and organizes parsed code and docs, uses QFlatMap
  • Remove entire miniEntry (EntryNav) classes
  • Remove marshalling / serialization
  • Remove obsolete classes used for file storage
  • Multiple cherry picks
  • Correct duplicated ~ in a code block
  • Correct backslash which was removed in a code block
  • Update several translation files
  • Resolve issues parsing TCL
  • Fix template argument parsing for nested template arguments
  • DoxyPress 1.2.12 release
  • DoxyPressApp 1.2.12 release

February 2018:

  • Fix RTF issue when 'file source' tag is disabled
  • Fix Latex cite file copy issue
  • Backport cherry picks
  • Improve syntax highlighting
  • Increase lex file read buffer size, improve read methods
  • Optimize several utility functions
  • Update text in several translation files
  • Add locale aware date and time formating and translations
  • Correct shallow copy issue in tag reader
  • Use \deprecated command to add a "D" in the brief description documentation for HTML
  • Add deprecated marker in the main documentation for HTML
  • Improve documentation commands
  • In the documentation, add sample code blocks for various computer languages showing syntax highlighting

March 2018:

  • DoxyPress 1.2.13 release
  • DoxyPressApp 1.2.13 release
  • Update documentation
  • Published a video for our CopperSpice YouTube channel covering the general usage and features of DoxyPress

April 2018:

  • Enhanced verification for overloaded methods located in a namespace
  • Changed the way methods in the source code and the documentation are verified to match

May 2018:

  • Overhaul the CopperSpice libraries to use CsString providing support for UTF-8 strings
  • Convert DoxyPressApp to the use the new CopperSpice string classes
  • Redesign DoxyPress to use the new CopperSpice string classes and regular expression classes
  • Backport several changes

June 2018:

  • Major rewrite for markdown support to use iterators instead of indexes
  • Run sanitizers on code base
  • Enhance latex support
  • DoxyPressApp fully migrated to CopperSpice 1.5.0
  • DoxyPress fully migrated to CopperSpice 1.5.0
  • DoxyPress 1.3.0 release
  • DoxyPressApp 1.3.0 release

July 2018:

  • Update DoxyPress documentation and context help in DoxyPressApp
  • Add new project tag to include markdown headers in the table of contents
  • Several new project tags added for clang parsing
  • Update libClang and libTooling libraries to clang 6.0.1 for clang parsing
  • Clang parsing tags moved to a separate page in DoxyPressApp
  • Clang 6.0.1 headers are supplied and will be used when 'use supplied headers' is enabled
  • Enhance syntax highlighting for the source output when using clang parsing
  • Support for C++17 and some parts of C++2a available when parsing with clang
  • When clang parsing is enabled
    • Using a compilation database generated by your build
      • Compilation database is used to automatically pass the clang flags used by your project
    • No compilation database available
      • Language dialect can be selected from a new tag instead of specifying in the clang flags
      • Clang header location is no longer required in the clang flags if the 'use supplied headers' tag is selected

August 2018:

  • Build distributions for clang 6.0.1 on all supported platforms
  • Upload clang binaries to the copperspice download site
  • Backport relevant enhancements and corrections
  • Remove Fedora 24 from CI Server
  • Add Fedora 27 to CI Server
  • Add Fedora 28 to CI Server
  • DoxyPress 1.3.1 release
  • DoxyPressApp 1.3.1 release
  • Add license to About box in DoxyPressApp

September 2018:

  • Fix project file name extension when there are multiple dots
  • Attended CppCon in Seattle, Washington
  • Presented a talk on Undefined Behavior at CppCon in Bellevue, Washington
  • DoxyPressApp 1.3.2 release
  • DoxyPress 1.3.2 release

December 2018:

  • Reduced the minimum height of DoxyPressApp
  • Added constexpr label to output
  • Backport numerous corrections to multiple output formats
  • Improve language parsing


January 2019:

  • Update copyright and license
  • Improve handling of auto brief
  • Enhance warning message when an entity is undocumented

February 2019:

  • DoxyPressApp 1.3.3 release
  • DoxyPress 1.3.3 release

March 2019:

  • CopperSpice European Tour – C++ User Group presentations in the Netherlands, Germany, and England
  • Multiple presentations at the emBO++ conference in Bochum, Germany