New Doxybook/Jekyll-based GitHub Pages documentation infrastructure#1475
Conversation
3de9dfb to
d9de734
Compare
alliepiper
left a comment
There was a problem hiding this comment.
I didn't finish reviewing yet, but I had some issues building the docs.
Minor issue: The script names in the PR's comment are slightly different from what's in the patch (generate vs. build, etc).
Major issue: building the docs fails with:
Exception at Renderer.cpp:362 Render template 'kind_nonclass' error [inja.exception.render_error] (at 4:33) variable 'child.strong' not found
The issue is in this code in the template: That code assumes that inja (the template engine for doxybook) supports short circuiting of boolean logic operators, which was only added in the latest release at my request. My guess is that the default version of inja in vcpkg isn't new enough. I believe this can be fixed by getting the "head" version from vcpkg. |
8d23b5c to
add5afc
Compare
|
With microsoft/vcpkg#19208 (now merged), |
fdef4ed to
37cbd98
Compare
…r project, and remove the now-redundant "getting Thrust and CUB" subpage of "setup".
… with Doxygen so that things actually show up in namespaces.
… of the incorrect "baseURL" to Doxybook via `--config-data`, so that local builds actually use the correct path prefix.
…g the newly exposed `qualifiedname` metadata that I've modified Doxygen and Doxybook to output. This fixes a rendering bug with the section titles of template class member functions where `::>::` would erronously appear because the now-unneeded `extractQualifiedNameFromFunctionDefinition` didn't work correctly.
* Mention that C++11 is deprecated in the requirements section. * Instead of specifying a specific version of NVCC and NVC++, say that the latest version is required. * Remove Android and QNX from the list of supported platforms. * Fix a copy/paste error that said "libcu++" instead of "Thrust and CUB".
* thrust/system/detail/sequential/sort.inl: Fix typo in copyright date. * thrust/system_error.h: Remove extraneous space and fix formatting in Doxygen comment for namespace `thrust::system`.
…dering macros: it doesn't have the parameters for function-like macros and doesn't have line breaks for multi-line macro definitions.
…in groups to use the same anchor escaping that Doxybook links to those sections expect. This fixes broken links to many things.
…ed from" comments in synopses.
…d from" into each synopsis template so that newlines are inserted in the right place.
… the underlying steps fails, so that errors are correctly reported by the GitHub action that runs it.
`build_docs` and unify the baseurl local builds and deployed GitHub Pages builds.
f7ae762 to
f67ed27
Compare
…Hub Pages so that the right versions of Doxybook and Doxygen are used.
2852a39 to
5bdb063
Compare
… the `main` branch.
|
Looks like the code changes in this PR were not tested and broke builds. Fixes are in #1606. All code changes need to be run through gpuCI/DVS before merging. |
This reverts the changes merged from NVIDIA#1475 so they can be retested.
Revert "Squashed changes from #1475."
This PR 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 rundocs/generate_markdown.bashfirst. 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
--headwhen installing the inja dependency to ensure you get the correct version:Note that the above command install
injamay 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 yourCMAKE_PREFIX_PATHwhen 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