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 #1475

Merged
merged 57 commits into from
Jan 24, 2022

Commits on Jan 13, 2022

  1. Configuration menu
    Copy the full SHA
    f58deed View commit details
    Browse the repository at this point in the history
  2. Docs: Initial work on a new documentation framework based on Doxybook…

    … and Jekyll.
    
    Docs/Jekyll:
    * Add a just-the-docs theme Jekyll setup in `docs/`, based on what we use for
      libcu++.
    * Create a skeleton of the basic structure of the Jekyll site.
    * Move the contents of `README.md`, `CHANGELOG.md`, and `CODE_OF_CONDUCT.md` into
      `docs/` and make `README.md`, `CHANGELOG.md`, and `CODE_OF_CONDUCT.md`
      symlinks into docs, because Jekyll doesn't allow you to reference files outside
      of the site root directory. GitHub accepts symlinks for these special files
      and renders them as if they were at the typical location as regular files.
    * Create `docs/changelog.md`, based on the content of `CHANGELOG.md`.
    * Create `docs/overview.md`, based on the content of `README.md`.
    * Move information on releases from `README.md` to `docs/releases.md`.
    
    Docs/Doxybook:
    * Add an initial version of Doxybook templates. The intention is to evolve them
      to render documentation in a style inspired by the C++ Standard and
      cppreference.com.
    * Emit code blocks as `<code>` HTML elements instead of
      Markdown triple backticks, as that makes it easier to control rendering.  We
      emit one `<span>` for each line in the code block, and make the `<span>` block
      instead of inline; we can't use `<div>` because Github Flavored Markdown
      doesn't like them.
    
    Docs/Doxygen:
    * Update the Doxygen configuration to generate output suitable for consumption
      by Doxybook.
    * Add new Doxygen CSS themes, to explore the alternative of just using
      Doxygen's HTML output instead of Doxybook and Jekyll.
    * Remove `\file` commands with explicit filenames, as Doxygen can automatically
      figure this out, and spelling filenames explicitly will inevitably lead to
      bitrot as headers are moved and copied.
    * Replace `<code>` with `<tt>`.
    * Add missing `\brief` commands in a lot of places.
    * Hide the implementation details of the `thrust::async` from Doxygen.
    * Hide the implementation details of `thrust::tuple` from Doxygen.
    * Hide the implementation detail `thrust::detail::complex_storage` from Doxygen.
    * Modernize and cleanup documentation of `<thrust/type_traits/*>`.
    
    Code:
    * Fix some bad global search and replaces that had unintentionally modified the
      `<thrust/async/transform.h>` license headers
    * Include `<cstddef>` in `<thrust/device_ptr.h>`, `<thrust/detail/pointer.h>`
      and use `std::nullptr_t` instead of being cute and using `decltype(nullptr)`
      to avoid the extra include.
    * Reorganize the C++ language dialect codepaths in
     `<thrust/type_traits/integer_sequence.h>` so that the code is easier to
      navigate.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    d097de2 View commit details
    Browse the repository at this point in the history
  3. Docs/Jekyll:

    * Increase the search indexing depth to 4th-level section headers to ensure that
      all functions and classes are indexed.
    * Add a CSS style `doxybook-comment` for comments in code.
    
    Docs/Doxybook:
    * Emit class declarations as `<code>` instead of triple backticks.
    * Emit comments in code blocks as `<span>`s with the `doxybook-comment` class.
    * Improve whitespace trimming in generated Markdown.
    
    Docs/Doxygen:
    * Guard doxygen-only code in headers with `#if THRUST_DOXYGEN` instead of `#if 0`
    * Add missing `\brief` commands for `thrust::device_ptr`.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    f222a14 View commit details
    Browse the repository at this point in the history
  4. Docs/Doxybook:

    * Delete logic for properties, events, signals, and slots from our Doxybook
      templates, as those don't exist in C++ Doxygen output.
    * Replace class member tables with class member synopses.
    * Refactor `details.tmpl`, omitting fields that we never use.
    * Fix whitespace trimming in `header.tmpl`.
    * Make page titles for classes and structs be in code font.
    * Switch to emitting synopses in `kind_class.tmpl`.
    
    Docs/Doxygen:
    * Tweak excludes in the Doxygen config to not ignore public (e.g. non-detail)
      entities that happen to live in a detail header.
    * Add `\file` commands to detail files that contain things that need to be
      documented, like `<thrust/detail/pointer.h>` and `<thrust/detail/reference.h>`.
    * Hide implementation details in `<thrust/detail/file.h>` and
      `<thrust/detail/reference.h>` from Doxygen.
    * Start consolidating the `memory_management_classes` and
      `memory_management_functions` Doxygen groups into a new `memory_management`
      group.
    * Remove filename argumens from `\file` commands in more places.
    * Improve documentation of `thrust::device_ptr`.
    * Remove some unnecessary Doxygen-only code from `thrust::host_vector`.
    * Fix some malformed Doxygen commands in `thrust::optional`.
    * Switch from the `\c` command to `<tt>`.
    
    Code:
    * Remove `thrust::system::cuda::experimental::pinned_allocator.h`, which has
      been deprecated for a long time.
    * Remove unnecessary SFINAE from `thrust::tagged_reference`.
    * Replace a `typedef` with a `using` in `thrust::device_ptr`.
    * Include `<type_traits>` from `<thrust/device_ptr.h>`.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    fb24e32 View commit details
    Browse the repository at this point in the history
  5. Docs/Doxybook:

    * Lift and abstract more synopsis rendering logic into `synopsis*.tmpl`.
    * Start emitting synopses in a lot more places, like for nested classes and
      classes on group pages.
    * Improve whitespace trimming in `class_members_inherited_tables.tmpl`.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    5194e54 View commit details
    Browse the repository at this point in the history
  6. Docs/Doxybook:

    * Use `docs/api` as the output directory for Doxybook-generated Markdown.
    * Generate Doxybook JSON for debugging purposes.
    
    Docs/Doxygen:
    * Fix hiding of implementation details in `thrust::tuple`.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    98002b3 View commit details
    Browse the repository at this point in the history
  7. Docs: Render nested classes as Markdown lists in Doxybook for the tim…

    …e being,
    
    as sadly Doxygen doesn't include information about the template parameters of
    nested classes.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    fd2bfbd View commit details
    Browse the repository at this point in the history
  8. Docs:

    * Add new Doxybook table rendering for nested classes, classes on group pages,
      and enums.
    * Lift more logic into the `synopsis*.tmpl` Doxybook abstractions and refactor
      them.
    * Re-add Doxybook rendering of member variables, which was accidentally removed
      because I didn't realize that Doxybook/Doxygen "attributes" are used to model
      them.
    * Switch to synopsis rendering for Doxybook class overviews. There's one
      synopsis for each kind of member; eventually we will have one synopsis for
      each class.
    * Refactor Doxybook member rendering substantially, moving away from tables and towards
      synopses with descriptive paragraphs.
    * Add support for page and section title handling for kinds of entities previously not
      supported in Doxybook, like namespaces.
    * Fix Doxybook rendering of enum classes.
    * Improve Doxybook whitespace trimming.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    fd733b8 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    b41100b View commit details
    Browse the repository at this point in the history
  10. Docs: remove "outputDir", "debugTemplateJson", and "useFolders" from the

    Doxybook JSON config, as they can only be set on the command line.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    1564cb5 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    275e804 View commit details
    Browse the repository at this point in the history
  12. Docs:

    * Switch Doxybook from rendering separate synopses for each individual kind of
      class member to rendering one grand synopsis for the entire class.
    * Use a special noop Doxybook builtin `comment` instead of Inja comments for
      whitespace trimming, because Inja comments don't actually do whitespace
      trimming.
    * Add a test for Doxybook rendering of a predefined friend class.
    * Add a test for Doxybook line wrap indentation handling.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    97363fa View commit details
    Browse the repository at this point in the history
  13. Docs:

    * Add initial Doxybook support for indenting the members of a class in a class
      synopsis. The current solution is CSS-based. While it looks great, but
      unfortunately due to how it works, if you select the synopsis and copy/paste
      it somewhere else, the indentation isn't copied.
    * Add missing closing `};` to Doxybook class synopses.
    * Use simpler section titles for Doxybook class member details.
    * Fix qualification of member names in Doxybook member details.
    * Add additional Doxybook line wrap tests.
    * Add Doxybook struct tests.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    bed49dd View commit details
    Browse the repository at this point in the history
  14. Docs:

    * Use the Doxybook builtin `noop` instead of Inja comments for whitespace
      trimming, as Inja doesn't actually trim whitespace on comments yet.
    * Switch to synopsis rendering for groups.
    * Add support for rendering the template parameters of nested classes in class
      synopses correctly by loading the page for the nested class and reading the
      template parameters from it using the new Doxybook `load` builtin.
    * Render friend classes and functions in Doxybook class synopses.
    * Render protected members in Doxybook class synopses.
    * Add "Member" to section titles in Doxybook class member details.
    * Refactor `synopsis_kind*.tmpl` and `synopsis_type_and_leading_specifiers.tmpl`
      to be a bit more readable and handle whitespace trimming better.
    * Add tests for Doxybook protected member rendering.
    * Add tests for Doxybook `= default` rendering.
    
    Code:
    * Add and deploy a macro abstraction for trailing return types, which seem to
      confuse Doxygen and lead to grievous misrenders.
    * Remove or refactor some unnecessary uses of trailing return types, especially
      in `thrust::async`.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    756e1f8 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    6a0e4f1 View commit details
    Browse the repository at this point in the history
  16. Docs: Hide friend classes and functions in Doxygen, because we don't …

    …have a way
    
    to render and link to them properly, and they typically aren't important to
    document.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    05ffa26 View commit details
    Browse the repository at this point in the history
  17. Docs: Add a test case for Doxygen rendering of friend functions defin…

    …ed outside
    
    of the class body.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    719fc2f View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    1ff8357 View commit details
    Browse the repository at this point in the history
  19. Docs:

    * Refactor the `title_member` Doxybook template.
    * Add a new `title_nonmember` Doxybook template.
    * Fix header rendering in the `class_members_details` Doxybook template.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    a40a2d3 View commit details
    Browse the repository at this point in the history
  20. Docs:

    * Added synopsis-style rendering of friends and inherited members to the
      `class_members` Doxybook template.
    * Added a new system for indentation in Doxybook synopsis templates. The new
      mechanism emits actual spaces, making it easier to copy and paste from the
      rendered docs.
    * Extracted Doxybook synopsis logic for members and friends out of
      `class_members` into new `synopsis_member_*` and `synopsis_friend_*`
      templates.
    * Improved Doxybook leading line break logic to never emit unneeded line breaks
      in synopses.
    * Cleanup whitespacing trimming and formating in the `class_members` and
      `synopsis_*` Doxybook templates.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    3702a2c View commit details
    Browse the repository at this point in the history
  21. Docs:

    * Rewrote the `nonclass_members` and `nonclass_members_details` Doxybook
      templates to do synopsis-style rendering of groups.
    * Added new Doxybook templates for rendering synopses for group members.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    798bbc3 View commit details
    Browse the repository at this point in the history
  22. Docs: Refactored the index Doxybook template to be implemented recu…

    …rsively
    
    instead of using manual expansion of loops.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    070d20b View commit details
    Browse the repository at this point in the history
  23. Docs:

    * Consolidate the `header` and `meta` Doxybook templates into a new `frontmatter`
      template.
    * Refactor conditionals and improve whitespace trimming in the `frontmatter`
      Doxybook template.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    7bf64b2 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    5b9f07c View commit details
    Browse the repository at this point in the history
  25. Docs:

    * Add Doxybook support for rendering namespace synopses.
    * Consolidate `synopsis_member_*` and `synopsis_*` variants of Doxybook
      templates.
    * Print out details for classes that are members of groups, namespaces, or other
      classes.
    * Add a parameterized mechanism for rendering a name as either qualified or
      unqualified.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    4f3d79d View commit details
    Browse the repository at this point in the history
  26. Docs:

    * Add missing HTML escaping to Doxybook templates.
    * Fix rendering of comment after namespace closing brace.
    * When generating a Doxybook member detail section for a class, add a link to it.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    edd8ec8 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    1168666 View commit details
    Browse the repository at this point in the history
  28. Docs: Move README.md, CHANGELOG.md, and CODE_OF_CONDUCT.md back…

    … to their
    
    original homes; instead of making them symlinks, we'll just copy them into the
    `docs/` tree when we are building the documentation.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    b7c0d54 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    58a8396 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    ef10be5 View commit details
    Browse the repository at this point in the history
  31. Docs:

    * Add a crude build script for generating markdown with Doxybook and Doxygen.
    * Add a script for serving documentation locally.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    dc21c64 View commit details
    Browse the repository at this point in the history
  32. Docs/Doxybook: Ensure all docs subdirectories are created before we t…

    …ry to copy
    
    files from the repository root into them.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    36c9c1f View commit details
    Browse the repository at this point in the history
  33. Docs: Do a bundle install before trying to start Jekyll in

    `serve_docs_locally.bash`.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    322da5c View commit details
    Browse the repository at this point in the history
  34. Docs/CI: Add GitHub Action to generate the documentation as a Jekyll …

    …site and
    
    publish it to GitHub Pages on each commit.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    2e4c008 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    51651ef View commit details
    Browse the repository at this point in the history
  36. Docs: Incorporate CONTRIBUTING.md into the new documentation system,

    splitting it up into multiple pages.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    70f3118 View commit details
    Browse the repository at this point in the history
  37. Docs: Move the Doxybook test header to the testing/ folder so it wo…

    …n't get
    
    picked up by the header tester, be confused for a real header, or
    appear in the production docs build.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    86db025 View commit details
    Browse the repository at this point in the history
  38. Docs/Doxybook: When we're building the docs locally, the root URL is …

    …`localhost`,
    
    so we set Doxybook's `baseUrl` parameter to `/api/`. However when deploying to
    the production GitHub Pages environment, the root URL is
    `nvidia.github.io/thrust`, so `baseUrl` needs to be `/thrust/api` instead.
    `generate_markdown.bash` has been changed to set `baseUrl` to `/thrust/api/`
    by default; `--local` will set it to `/api/` instead.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    a89f97d View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    9c6560a View commit details
    Browse the repository at this point in the history
  40. Remove entries specific to our local personal build environments from…

    … .gitignore.
    
    We can use `.git/info/exclude` instead.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    d0ae525 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    744b1b0 View commit details
    Browse the repository at this point in the history
  42. Docs: Update the instructions for getting Thrust and adding it to you…

    …r project,
    
    and remove the now-redundant "getting Thrust and CUB" subpage of "setup".
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    87cd9cd View commit details
    Browse the repository at this point in the history
  43. Docs/Doxygen: Define the Thrust namespace macros when generating docs…

    … with
    
    Doxygen so that things actually show up in namespaces.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    cad5d31 View commit details
    Browse the repository at this point in the history
  44. Docs/Doxybook: Fix generate_markdown.bash to pass "baseUrl" instead…

    … of the
    
    incorrect "baseURL" to Doxybook via `--config-data`, so that local builds
    actually use the correct path prefix.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    ce53222 View commit details
    Browse the repository at this point in the history
  45. Docs/Doxybook: Correctly render qualified names for all entities usin…

    …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.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    af27c67 View commit details
    Browse the repository at this point in the history
  46. Docs: docs/setup/requirements.md updates and corrections.

    * 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".
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    968dc44 View commit details
    Browse the repository at this point in the history
  47. Fix some typos in comments:

    * 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`.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    953f3b9 View commit details
    Browse the repository at this point in the history
  48. Docs/Doxybook: Don't use the Doxybook initializer metadata when ren…

    …dering
    
    macros: it doesn't have the parameters for function-like macros and doesn't
    have line breaks for multi-line macro definitions.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    3e2686e View commit details
    Browse the repository at this point in the history
  49. Docs/Doxybook: Correct the section id anchors for members / entities …

    …in groups
    
    to use the same anchor escaping that Doxybook links to those sections expect.
    This fixes broken links to many things.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    32c9449 View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    4874f9d View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    dd48d40 View commit details
    Browse the repository at this point in the history
  52. Docs/Doxybook: Correctly set the indent level when rendering "Inherit…

    …ed from"
    
    comments in synopses.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    4116802 View commit details
    Browse the repository at this point in the history
  53. Docs/Doxybook: Move the Doxybook logic that marks things as "Inherite…

    …d from"
    
    into each synopsis template so that newlines are inserted in the right place.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    3888649 View commit details
    Browse the repository at this point in the history
  54. Docs: Make generate_markdown.bash exit with an error code if one of…

    … the
    
    underlying steps fails, so that errors are correctly reported by the GitHub
    action that runs it.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    f06ed7a View commit details
    Browse the repository at this point in the history
  55. Docs: Restructure new Doxybook/Jekyll framework to build out of tree in

    `build_docs` and unify the baseurl local builds and deployed GitHub Pages
    builds.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    f67ed27 View commit details
    Browse the repository at this point in the history
  56. Docs: Update the image used for the GitHub Action that builds our Git…

    …Hub Pages
    
    so that the right versions of Doxybook and Doxygen are used.
    brycelelbach committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    5bdb063 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2022

  1. Configuration menu
    Copy the full SHA
    c09d979 View commit details
    Browse the repository at this point in the history