Skip to content
This repository has been archived by the owner on Mar 21, 2024. It is now read-only.

New Doxybook/Jekyll-based GitHub Pages documentation infrastructure (take two) #1611

Merged
merged 5 commits into from
Feb 11, 2022

Conversation

brycelelbach
Copy link
Collaborator

This PR (a revived version of #1475) introduces a new documentation infrastructure. It generates Doxygen XML output, and then uses the Doxybook2 framework to generate GitHub Flavored Markdown. That GitHub Flavored Markdown is rendered using the Jekyll just-the-docs theme.

The final product is documentation in the style of the C++ Standard and cppreference that can be deployed to GitHub Pages. For each class or Doxygen group, there is a code synopsis of all entities, followed by a section that contains detailed descriptions of them. Users can browse the docs using the sidebar or with just-the-docs powerful builtin search mechanism.

There are two scripts that can be used to locally build and host the docs:

  • docs/generate_markdown.bash: This runs Doxygen and then Doxybook to generate the Markdown for the API docs.
  • docs/serve_jekyll_locally.bash: This will start a local Jekyll server that will host the docs. You need to run docs/generate_markdown.bash first. Jekyll will build the HTML site when it starts, which takes a few minutes.

To build locally, you need to install Doxygen, Ruby (Debian package: ruby-dev), and Bundler (Debian package: bundler), which you should be able to do through your system's package manager.

You'll also need to build Doxybook from source, which is pretty easy to do. You'll need vcpkg to install Doxybook's dependencies - note that you'll need to specify --head when installing the inja dependency to ensure you get the correct version:

vcpkg install argagg catch2 fmt dirent fmt nlohmann-json rang
vcpkg install --head inja

Note that the above command install inja may fail within the NVIDIA VPN due to GitHub API rate limits (see microsoft/vcpkg#19177). As an alternative, you can just grab and build inja, and then add the inja build directory to your CMAKE_PREFIX_PATH when building Doxybook.

Automated builds and deploy of the docs to GitHub pages are in place. The rendered docs from the tip of this branch can be seen at https://nvidia.github.io/thrust

@brycelelbach
Copy link
Collaborator Author

run tests

1 similar comment
@alliepiper
Copy link
Collaborator

run tests

@brycelelbach
Copy link
Collaborator Author

run tests

@alliepiper
Copy link
Collaborator

DVS CL: 30976967

@alliepiper alliepiper added type: enhancement New feature or request. P0: must have Absolutely necessary. Critical issue, major blocker, etc. testing: gpuCI in progress Started gpuCI testing. testing: internal ci in progress Currently testing on internal NVIDIA CI (DVS). labels Feb 10, 2022
@alliepiper alliepiper added this to the 1.17.0 milestone Feb 10, 2022
@brycelelbach
Copy link
Collaborator Author

Thanks Allison.

@brycelelbach
Copy link
Collaborator Author

gpuCI and DVS are passing, I think we are good to merge.

@alliepiper alliepiper added testing: gpuCI passed Passed gpuCI testing. testing: internal ci passed Passed internal NVIDIA CI (DVS). and removed testing: internal ci in progress Currently testing on internal NVIDIA CI (DVS). testing: gpuCI in progress Started gpuCI testing. labels Feb 11, 2022
@brycelelbach brycelelbach merged commit d461afa into main Feb 11, 2022
@brycelelbach brycelelbach deleted the feature/new-docs-v2 branch February 11, 2022 16:36
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
P0: must have Absolutely necessary. Critical issue, major blocker, etc. testing: gpuCI passed Passed gpuCI testing. testing: internal ci passed Passed internal NVIDIA CI (DVS). type: enhancement New feature or request.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants