The following information details the development of DoxyPress and DoxyPressApp.

Major Milestones

2014

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

2015

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

New variable added $datetimeHHMM Variable 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 newcommand 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

DoxyPressApp 1.0.0 release

DoxyPress 1.0.0 release

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 and no detailed description With Auto Brief is set "on" documentation was not shown in the declaration section Resolved in DoxyPress version 1.1.0



Official release of DoxyPress and DoxyPressApp

DoxyPressApp 1.1.0 release

DoxyPress 1.1.0 release

September 2015

Attended CppCon in Seattle, Washington

Presented a talk announcing the release of CopperSpice

Presented a talk announcing the release of DoxyPress

Presented a lightning talk about a compile time counter using templates

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 copyright

2016

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)

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

DoxyPressApp 1.2.0 release

DoxyPress 1.2.0 release

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++

Minimum required version of GCC is now 4.8.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

DoxyPressApp 1.2.1 release

DoxyPress 1.2.1 release

April 2016

Enhanced the options DoxyPressApp can pass to DoxyPress

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

DoxyPressApp 1.2.2 release

DoxyPress 1.2.2 release

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

DoxyPressApp 1.2.4 release

DoxyPress 1.2.4 release

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

DoxyPressApp 1.2.5 release

DoxyPress 1.2.5 release

2017

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

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

Accepted as speakers for CppNow 2017

DoxyPressApp 1.2.6 release

DoxyPress 1.2.6 release

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

DoxyPressApp 1.2.7 release

DoxyPress 1.2.7 release

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

DoxyPressApp 1.2.8 release

DoxyPress 1.2.8 release

DoxyPressApp 1.2.9 release

DoxyPress 1.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

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

DoxyPressApp 1.2.10 release

DoxyPress 1.2.10 release

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

DoxyPressApp 1.2.11 release

DoxyPress 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 README.md, 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

2018

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

2019

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

April 2019

Add files for emoji support

Clean up error message formatting

Update JQuery version

Optimize character escaping

Enhance test suite

May 2019

Code refactoring for improved readability

Add const to methods and change 0 to nullptr

Enhance TOC

June 2019

Improve entry system and add second argument for commentscan commands

Correct inplace modifications of strings

Add support for inline images

Various improvements to backslash escape handling

July 2019

Enhance output for included files

Various changes to the lex parsers

Improve reflist handling and latex output

Add support for colon and equal characters in html

Changes to handle inline namespaces

August 2019

Add rule for line continuation in preprocessing

Fix markdown line breaks

Add support for additional text styles like underline and strikeout

Enhance rtf output

Support formulas is rtf output

Improve latex output

DoxyPress and DoxyPressApp built with CopperSpice 1.6.0

DoxyPressApp 1.3.4 release

DoxyPress 1.3.4 release

September 2019

Attended CppCon in in Denver, Colorado

Presented a talk on "High performance graphics on the GPU" at CppCon in in Denver, Colorado

Drop support for Autotools build system with CopperSpice

Update to CMake 3.8 as the minimum required version

DoxyPressApp 1.3.5 release

DoxyPress 1.3.5 release

October 2019

Drop support for Autotools build system with DoxyPress and DoxyPressApp

Modernize CMake build files for DoxyPress and DoxyPressApp

Move to C++17 on all platforms

Streamline rpath support for Linux and Mac OS X

Merge user pull requests with main branch

Update DoxyPressApp API for dot settings

November 2019

Minor code clean up

Improve Mac OS X build support

DoxyPress 1.3.6 release

DoxyPressApp 1.3.6 release

CopperSpice European Tour Speaker at Meeting C++ 2019 Conference in Berlin, Germany Presented an updated talk on "High performance graphics and rendering text on the GPU" Speaker at code::dive 2019 in Wrocław, Poland Presented "Undefined Behavior is Not an Error" C++ and CopperSpice training in Bochum, Germany Speaker at C++ User Group in the Netherlands



December 2019

Correct markdown issue when the line ends with a back tick

Fix a node issue in HTML output

Prevent infinite loop during comment parsing

2020

January 2020

Update copyright and license

Change markdown to use <code> instead of <tt>

Add missing elements for styles in dot

Improve how PlantUML locates the dot program

February 2020

Remove Fedora 27 from CI Server

Add Fedora 31 to CI Server

Add Centos 8 to CI Server

Display error messages on the screen and log file when reading the project file

Automatically create full output directory path

Prevent warnings when various keywords appear in the return type

Improve parsing for all languages

Release prebuilt binaries for DoxyPress 1.3.7

Release prebuilt binaries for DoxyPressApp 1.3.7

March 2020

Adjust line spacing for code blocks

For file listings where the comments are omitted, added one single comment to indicate number of lines removed

Update multiple enums and array structures with new values

Correct compiler warnings in DoxyPress

Reorder constructor initialization

Improve markdown parsing

Remove unused locals in several existing methods

Add support for new commands

Enhance html parsing to use new commands

Clean up html css, add new rules for intermediate tags

April 2020

Change CMake target to suppress warnings located in clang headers

Fix out of bounds issue when writing docs for member functions

Drop Ubuntu 14.04 in CI

Release prebuilt binaries for DoxyPress 1.3.8

Release prebuilt binaries for DoxyPressApp 1.3.8

May 2020

Change html css to improve formatting for source code listings

Add handleProperty() which marks comments for a property

Change enum MethodTypes to enum class MethodType

Code clean up, adjust variable names for clarity

Remove unused code

July 2020

Add description marker to indicate a method is present as a result of a "using" declaration

Show parameters for methods included as a result of a using declaration

Minor code clean up, add scope to enum values

Add an option in the lex files to disable interactive parsing, unistd.h header is not required

Rewrite acquireFileVersion() and readCodeFragment(), remove usage of popen() in favor of QProcess

Build clang 10 from source for all supported systems

Add Ubuntu 20.04 in CI

August 2020

Removed unused code, rename local variables and method names for readability

Add labels for C++ "nodiscard" and "noreturn" attributes

Modify comment parsing to accurately document methods with attributes