Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs[BMQ]: Use .dox files rather than .md files #444

Merged
merged 1 commit into from
Oct 7, 2024

Conversation

pniedzielski
Copy link
Collaborator

*Issue number of the reported bug or feature request: #118 *

Package group documentation in libbmq was converted to Markdown files named README.md, and which was tied to the directory containing the code for the package group using Doxygen @dir commands. However, when generating the documentation, this left several empty pages in the documentation named README, which we were not able to remove.

The solution for this that this patch uses is to switch from .md files to .dox files, which contain a single Doxygen-style C++ comment containing the @dir command. Unlike .md files, these do not automatically create pages, so there is no empty README page created for each package group. The cost of this is that .dox files cannot be simple Markdown files, but instead need to be wrapped in a C++ comment.

Testing

To verify these changes, run doxygen in the root directory of the project and ensure that
(1) there are no empty README pages generated, and (2) the package groups are still properly documented.

Package group documentation in `libbmq` was converted to Markdown files
named `README.md`, and which was tied to the directory containing the
code for the package group using Doxygen `@dir` commands.  However, when
generating the documentation, this left several empty pages in the
documentation named `README`, which we were not able to remove.

The solution for this that this patch uses is to switch from `.md` files
to `.dox` files, which contain a single Doxygen-style C++ comment
containing the `@dir` command.  Unlike `.md` files, these do not
automatically create pages, so there is no empty `README` page created
for each package group.  The cost of this is that `.dox` files cannot be
simple Markdown files, but instead need to be wrapped in a C++ comment.

Signed-off-by: Patrick M. Niedzielski <[email protected]>
@pniedzielski pniedzielski added bug Something isn't working documentation Improvements or additions to documentation A-Client Area: C++ SDK A-Docs Area: Documentation labels Oct 7, 2024
@pniedzielski pniedzielski requested a review from a team as a code owner October 7, 2024 15:10
Copy link
Contributor

@chrisbeard chrisbeard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 lgtm

@pniedzielski pniedzielski merged commit 14fec0d into bloomberg:main Oct 7, 2024
49 of 50 checks passed
@pniedzielski pniedzielski deleted the md-to-dox branch October 30, 2024 19:00
pniedzielski added a commit to pniedzielski/blazingmq that referenced this pull request Nov 7, 2024
This patch introduces three new targets to the build system when Doxygen
is present:

  - `apidocs`: Build the public API documentation for public libbmq
    components.  This target functions similarly to how the current
    `Doxyfile` builds documentation.

  - `internaldocs`: Build the internal documentation for all libbmq and
    libmqb components.  The documentation built by this target is
    currently incomplete, and needs work along the lines of PRs bloomberg#443 and
    bloomberg#444.

  - `docs`: Build both the above documentation targets.  This is a
    dependency of `make all`, so it will run by default.

Signed-off-by: Patrick M. Niedzielski <[email protected]>
pniedzielski added a commit to pniedzielski/blazingmq that referenced this pull request Nov 7, 2024
This patch introduces three new targets to the build system when Doxygen
is present:

  - `apidocs`: Build the public API documentation for public libbmq
    components.  This target functions similarly to how the current
    `Doxyfile` builds documentation.

  - `internaldocs`: Build the internal documentation for all libbmq and
    libmqb components.  The documentation built by this target is
    currently incomplete, and needs work along the lines of PRs bloomberg#443 and
    bloomberg#444.

  - `docs`: Build both the above documentation targets.  This is a
    dependency of `make all`, so it will run by default.

Signed-off-by: Patrick M. Niedzielski <[email protected]>
pniedzielski added a commit to pniedzielski/blazingmq that referenced this pull request Nov 7, 2024
This patch introduces three new targets to the build system when Doxygen
is present:

  - `apidocs`: Build the public API documentation for public libbmq
    components.  This target functions similarly to how the current
    `Doxyfile` builds documentation.

  - `internaldocs`: Build the internal documentation for all libbmq and
    libmqb components.  The documentation built by this target is
    currently incomplete, and needs work along the lines of PRs bloomberg#443 and
    bloomberg#444.

  - `docs`: Build both the above documentation targets.  This is a
    dependency of `make all`, so it will run by default.

Signed-off-by: Patrick M. Niedzielski <[email protected]>
pniedzielski added a commit that referenced this pull request Nov 8, 2024
This patch introduces three new targets to the build system when Doxygen
is present:

  - `apidocs`: Build the public API documentation for public libbmq
    components.  This target functions similarly to how the current
    `Doxyfile` builds documentation.

  - `internaldocs`: Build the internal documentation for all libbmq and
    libmqb components.  The documentation built by this target is
    currently incomplete, and needs work along the lines of PRs #443 and
    #444.

  - `docs`: Build both the above documentation targets.  This is a
    dependency of `make all`, so it will run by default.

Signed-off-by: Patrick M. Niedzielski <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Client Area: C++ SDK A-Docs Area: Documentation bug Something isn't working documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants