Skip to content

Commit

Permalink
Merge pull request #375 from DARMA-tasking/371-fix-documentation-issues
Browse files Browse the repository at this point in the history
#371: [docs] use fixed doxygen version, add C++17 dependency, fix markup issues
  • Loading branch information
lifflander authored Nov 22, 2024
2 parents 50d8d8f + 45fb0a4 commit 162ef56
Show file tree
Hide file tree
Showing 23 changed files with 121 additions and 104 deletions.
4 changes: 2 additions & 2 deletions .env
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
REPO=lifflander1/checkpoint
ARCH=amd64
UBUNTU=18.04
UBUNTU=22.04
ULIMIT_CORE=0
COMPILER=gcc-8
COMPILER=gcc-11
COMPILER_TYPE=gnu
PROXY=
CACHE=
Expand Down
4 changes: 2 additions & 2 deletions ci/build_cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ then
git clone --depth=1 "https://${token}@github.com/DARMA-tasking/DARMA-tasking.github.io"
git clone https://github.com/mosra/m.css
cd m.css
git checkout 5235066
git checkout 699abdd5
cd ../
"$MCSS/documentation/doxygen.py" Doxyfile-mcss
CKPT_NAME=checkpoint_docs
Expand All @@ -70,7 +70,7 @@ then
git config --global user.email "jliffla@sandia.gov"
git config --global user.name "Jonathan Lifflander"
git add "$CKPT_NAME"
git commit -m "Update checkpoint_docs (auto-build)"
git commit -m "Update magistrate_docs (auto-build)"
git push origin master
else
time cmake --build . --target "${target}"
Expand Down
18 changes: 18 additions & 0 deletions ci/deps/doxygen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

set -exo pipefail

if test $# -ne 1
then
echo "usage: ./$0 <doxygen-version>"
exit 1
fi

doxygen_version=$1
doxygen_tar_name=doxygen-"${doxygen_version}".linux.bin.tar.gz

echo "${doxygen_tar_name}"

wget https://sourceforge.net/projects/doxygen/files/rel-"${doxygen_version}"/"${doxygen_tar_name}"

tar xzf "${doxygen_tar_name}" --one-top-level=doxygen --strip-components=1
47 changes: 24 additions & 23 deletions ci/docker/ubuntu-20.04-gnu-docs.dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

ARG arch=amd64
FROM ${arch}/ubuntu:20.04 as base
FROM ${arch}/ubuntu:20.04 AS base

ARG proxy=""
ARG compiler=gcc-8
Expand All @@ -13,33 +13,33 @@ ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update -y -q && \
apt-get install -y -q --no-install-recommends \
ca-certificates \
curl \
cmake \
git \
mpich \
libmpich-dev \
wget \
${compiler} \
zlib1g \
zlib1g-dev \
ninja-build \
doxygen \
unzip \
python3 \
python3-jinja2 \
python3-pygments \
texlive-font-utils \
ghostscript \
ccache && \
${compiler} \
ca-certificates \
ccache \
curl \
ghostscript \
git \
libmpich-dev \
mpich \
ninja-build \
python3 \
python3-jinja2 \
python3-pygments \
texlive-font-utils \
unzip \
wget \
zlib1g \
zlib1g-dev &&\
apt-get clean && \
rm -rf /var/lib/apt/lists/*

COPY ./ci/deps/cmake.sh cmake.sh
RUN ./cmake.sh 3.23.4 ${arch}

ENV PATH=/cmake/bin/:$PATH
ENV LESSCHARSET=utf-8

COPY ./ci/deps/doxygen.sh doxygen.sh
RUN ./doxygen.sh 1.8.16
ENV PATH=/doxygen/bin/:$PATH

COPY ./ci/deps/gtest.sh gtest.sh
RUN ./gtest.sh 1.8.1 /pkgs
Expand All @@ -57,9 +57,10 @@ ENV MPI_EXTRA_FLAGS="" \
CMAKE_PREFIX_PATH="/lib/x86_64-linux-gnu/" \
CC=mpicc \
CXX=mpicxx \
LESSCHARSET=utf-8 \
PATH=/usr/lib/ccache/:$PATH

FROM base as build
FROM base AS build
COPY . /checkpoint

ARG token
Expand Down
6 changes: 3 additions & 3 deletions cmake/load_doxygen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ if (${magistrate_doxygen_enabled})
set(doxygen_in ${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in)
set(doxygen_out ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)

set(DOXYGEN_PROJECT_NAME "checkpoint")
set(DOXYGEN_PROJECT_NAME "magistrate")
set(VERSION_MAJOR "1")
set(VERSION_MINOR "0")
set(VERSION_PATCH "0")
Expand All @@ -18,13 +18,13 @@ if (${magistrate_doxygen_enabled})

configure_file(${doxygen_in} ${doxygen_out} @ONLY)
configure_file(${doxygen_in}-mcss ${doxygen_out}-mcss @ONLY)
message(STATUS "checkpoint doxygen build started")
message(STATUS "magistrate doxygen build started")

add_custom_target(
docs ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${doxygen_out}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "checkpoint generating API documentation with Doxygen"
COMMENT "magistrate generating API documentation with Doxygen"
VERBATIM
)

Expand Down
24 changes: 12 additions & 12 deletions docs/Doxyfile.in-mcss
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@ XML_NS_MEMB_FILE_SCOPE = YES
##! M_LINKS_NAVBAR2 = \
##! "annotated" \
##! "files" \
##! "<a href=\"https://github.com/\">GitHub</a> <a href=\"https://github.com/DARMA-tasking/checkpoint\">Checkpoint</a> <a href=\"https://github.com/DARMA-tasking/checkpoint-member-analyzer\">Checkpoint Analyzer</a> <a href=\"https://github.com/DARMA-tasking/detector\">Detector</a>"
##! "<a href=\"https://github.com/\">GitHub</a> <a href=\"https://github.com/DARMA-tasking/magistrate\">magistrate</a> <a href=\"https://github.com/DARMA-tasking/checkpoint-member-analyzer\">Serialization Sanitizer</a>"

##! ALIASES += \
##! "m_div{1}=@xmlonly<mcss:div xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\">@endxmlonly" \
##! "m_enddiv=@xmlonly</mcss:div>@endxmlonly" \
##! "m_span{1}=@xmlonly<mcss:span xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\">@endxmlonly" \
##! "m_endspan=@xmlonly</mcss:span>@endxmlonly" \
##! "m_class{1}=@xmlonly<mcss:class xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\" />@endxmlonly" \
##! "m_footernavigation=@xmlonly<mcss:footernavigation xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" />@endxmlonly" \
##! "m_examplenavigation{2}=@xmlonly<mcss:examplenavigation xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:page=\"\1\" mcss:prefix=\"\2\" />@endxmlonly" \
##! "m_keywords{1}=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:keywords=\"\1\" />@endxmlonly" \
##! "m_keyword{3}=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:keyword=\"\1\" mcss:title=\"\2\" mcss:suffix-length=\"\3\" />@endxmlonly" \
##! "m_enum_values_as_keywords=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:enum-values-as-keywords=\"true\" />@endxmlonly"
ALIASES += \
"m_div{1}=@xmlonly<mcss:div xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\">@endxmlonly" \
"m_enddiv=@xmlonly</mcss:div>@endxmlonly" \
"m_span{1}=@xmlonly<mcss:span xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\">@endxmlonly" \
"m_endspan=@xmlonly</mcss:span>@endxmlonly" \
"m_class{1}=@xmlonly<mcss:class xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\" />@endxmlonly" \
"m_footernavigation=@xmlonly<mcss:footernavigation xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" />@endxmlonly" \
"m_examplenavigation{2}=@xmlonly<mcss:examplenavigation xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:page=\"\1\" mcss:prefix=\"\2\" />@endxmlonly" \
"m_keywords{1}=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:keywords=\"\1\" />@endxmlonly" \
"m_keyword{3}=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:keyword=\"\1\" mcss:title=\"\2\" mcss:suffix-length=\"\3\" />@endxmlonly" \
"m_enum_values_as_keywords=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:enum-values-as-keywords=\"true\" />@endxmlonly"
4 changes: 2 additions & 2 deletions docs/md/checkpoint_learn.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
\page ckpt_learn Learn

To learn how to use *checkpoint*, several resources are available.
To learn how to use *magistrate*, several resources are available.

- Learn \subpage ckpt_learn_build
- Read the small example programs
- Read the \subpage ckpt_learn_examples walk-through
- Examine `checkpoint/examples/*`
- Examine `magistrate/examples/*`
- Learn \subpage ckpt_learn_serialize
62 changes: 31 additions & 31 deletions docs/md/checkpoint_learn_build.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
\page ckpt_learn_build How to Build

checkpoint can be built with `cmake`.
magistrate can be built with `cmake`.

\section ckpt_how-to-build Building

To build *checkpoint*, one must obtain the following dependencies:
To build *magistrate*, one must obtain the following dependencies:

\subsection ckpt_optional-deps Optional

- gtest, (if testing *checkpoint* is enabled)
- gtest, (if testing *magistrate* is enabled)
- MPI, (if MPI tests are enabled)
- [Kokkos](https://github.com/kokkos/kokkos), (if Kokkos views need to be serialized)
- [KokkosKernels](https://github.com/kokkos/kokkos-kernels), (if Kokkos kernel data structures need to be serialized)

\subsection ckpt_use-cmake-directly-vars Using cmake directly

One may use `cmake` to build *checkpoint* once the dependencies are installed.
One may use `cmake` to build *magistrate* once the dependencies are installed.
The following are some options that can be provided to `cmake` to change the
build configuration:

Expand All @@ -24,22 +24,22 @@ build configuration:
| `gtest_DIR` | | Install directory for googletest |
| `Kokkos_DIR` | | Install directory for kokkos |
| `KokkosKernels_DIR` | | Install directory for kokkoskernels |
| `checkpoint_tests_enabled` | 0 | Build *checkpoint* tests |
| `checkpoint_mpi_enabled` | 0 | Build *checkpoint* with MPI for tests |
| `checkpoint_examples_enabled` | 0 | Build *checkpoint* examples |
| `checkpoint_warnings_as_errors` | 0 | Make all warnings errors during build |
| `checkpoint_doxygen_enabled` | 0 | Enable doxygen generation |
| `checkpoint_asan_enabled` | 0 | Enable address sanitizer |
| `checkpoint_ubsan_enabled` | 0 | Enable undefined behavior sanitizer |
| `checkpoint_serialization_error_checking_enabled(*)` | 0 | Enable extensive serialization error checking |
| `magistrate_tests_enabled` | 0 | Build *magistrate* tests |
| `magistrate_mpi_enabled` | 0 | Build *magistrate* with MPI for tests |
| `magistrate_examples_enabled` | 0 | Build *magistrate* examples |
| `magistrate_warnings_as_errors` | 0 | Make all warnings errors during build |
| `magistrate_doxygen_enabled` | 0 | Enable doxygen generation |
| `magistrate_asan_enabled` | 0 | Enable address sanitizer |
| `magistrate_ubsan_enabled` | 0 | Enable undefined behavior sanitizer |
| `magistrate_serialization_error_checking_enabled(*)` | 0 | Enable extensive serialization error checking |
| `CODE_COVERAGE` | 0 | Generate code coverage report |

* note that if `checkpoint_serialization_error_checking_enabled` is not explicitly enabled or disabled, it will be **enabled** for `Debug` and `RelWithDebInfo` builds and disabled for others.
* note that if `magistrate_serialization_error_checking_enabled` is not explicitly enabled or disabled, it will be **enabled** for `Debug` and `RelWithDebInfo` builds and disabled for others.

\subsection using-the-build-script Using the Build Script

Instead of running `cmake`, one may invoke the `checkpoint/ci/build_cpp.sh`
script which will run `cmake` for *checkpoint* with environment variables for
Instead of running `cmake`, one may invoke the `magistrate/ci/build_cpp.sh`
script which will run `cmake` for *magistrate* with environment variables for
most configuration parameters.

\subsubsection building-environment-variables Build Script Environment Variables
Expand All @@ -54,27 +54,27 @@ most configuration parameters.
| `MAGISTRATE_DOXYGEN_ENABLED` | 0 | Enable doxygen generation |
| `MAGISTRATE_ASAN_ENABLED` | 0 | Enable building with address sanitizer |
| `MAGISTRATE_UBSAN_ENABLED` | 0 | Enable building with undefined behavior sanitizer |
| `MAGISTRATE_TESTS_ENABLED` | 1 | Enable checkpoint tests |
| `MAGISTRATE_EXAMPLES_ENABLED` | 1 | Enable checkpoint examples |
| `MAGISTRATE_TESTS_ENABLED` | 1 | Enable magistrate tests |
| `MAGISTRATE_EXAMPLES_ENABLED` | 1 | Enable magistrate examples |
| `MAGISTRATE_WARNINGS_AS_ERRORS` | 0 | Make all warnings errors during build |
| `MAGISTRATE_SERIALIZATION_ERROR_CHECKING_ENABLED` | 0 | Enable extensive error checking of serialization |
| `MAGISTRATE_MPI_ENABLED` | 1 | Enable checkpoint MPI for testing |
| `MAGISTRATE_MPI_ENABLED` | 1 | Enable magistrate MPI for testing |

* note that if `MAGISTRATE_SERIALIZATION_ERROR_CHECKING_ENABLED` is not explicitly enabled or disabled, it will be **enabled** for `Debug` and `RelWithDebInfo` builds and disabled for others.

With these set, invoke the script with two arguments: the path to the
*checkpoint* root directory and the build path. Here's an example assuming that
*checkpoint* is cloned into `/usr/src/checkpoint` with trace enabled in debug mode.
*magistrate* root directory and the build path. Here's an example assuming that
*magistrate* is cloned into `/usr/src/magistrate` with trace enabled in debug mode.

**Usage for building:**

```bash
$ checkpoint/ci/build_cpp.sh <full-path-to-checkpoint-source> <full-path-to-build-dir>
$ magistrate/ci/build_cpp.sh <full-path-to-magistrate-source> <full-path-to-build-dir>
```

\subsection docker-build Building with docker containerization

The easiest way to build *checkpoint* is by using `docker` with the available
The easiest way to build *magistrate* is by using `docker` with the available
containers that contain the proper compilers, MPI, and all other
dependencies. First, install `docker` on the system. On some systems,
`docker-compose` might also need to be installed.
Expand All @@ -88,7 +88,7 @@ Nvidia) and compiler version, Linux distro (ubuntu or alpine), and distro
version.

The default set of the docker configuration options is located in
`checkpoint/.env`, which `docker-compose` will read.
`magistrate/.env`, which `docker-compose` will read.

```
# Variables:
Expand All @@ -103,10 +103,10 @@ The default set of the docker configuration options is located in
# UBUNTU={18.04, 20.04}
# ULIMIT_CORE=0
#
# DARMA/checkpoint Configuration Variables:
# MAGISTRATE_TESTS=1 # Enable checkpoint tests
# MAGISTRATE_EXAMPLES=1 # Enable checkpoint examples
# MAGISTRATE_MPI=1 # Enable checkpoint MPI tests
# DARMA/magistrate Configuration Variables:
# MAGISTRATE_TESTS=1 # Enable magistrate tests
# MAGISTRATE_EXAMPLES=1 # Enable magistrate examples
# MAGISTRATE_MPI=1 # Enable magistrate MPI tests
# MAGISTRATE_WARNINGS_AS_ERRORS=0 # Treat warnings as errors in compilation
# MAGISTRATE_ASAN=0 # Enable address sanitizer in build
# MAGISTRATE_UBSAN=0 # Enable undefined behavior sanitizer in build
Expand All @@ -121,16 +121,16 @@ ubuntu. Or, to speed up the build process, the base container can be pulled for
many of the common configurations: `docker-compose pull ubuntu-cpp`.

```bash
$ cd checkpoint
$ cd magistrate
$ docker-compose run -e BUILD_TYPE=debug ubuntu-cpp
```

For an interactive build with ubuntu, where one can build, debug, and run
`valgrind`, etc:

```bash
$ cd checkpoint
$ cd magistrate
$ docker-compose run -e BUILD_TYPE=debug ubuntu-cpp-interactive
# /checkpoint/ci/build_cpp.sh /checkpoint /build
# /checkpoint/ci/test_cpp.sh /checkpoint /build
# /magistrate/ci/build_cpp.sh /magistrate /build
# /magistrate/ci/test_cpp.sh /magistrate /build
```
2 changes: 1 addition & 1 deletion docs/md/checkpoint_learn_example_2.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\page ckpt_learn_ex2 Program Example 2

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_2.cc`

\subsubsection ex2 Example source code:
Expand Down
2 changes: 1 addition & 1 deletion docs/md/checkpoint_learn_example_2_nonintrusive.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

\attention All Non-Intrusive serialize methods <b>MUST</b> be placed in the namespace of type which they serialize.

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_2_nonintrusive.cc`

\subsubsection ex2 Example source code:
Expand Down
2 changes: 1 addition & 1 deletion docs/md/checkpoint_learn_example_3.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\page ckpt_learn_ex3 Program Example 3

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_3.cc`

\subsubsection ex3 Example source code:
Expand Down
2 changes: 1 addition & 1 deletion docs/md/checkpoint_learn_example_3_nonintrusive.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

\attention All Non-Intrusive serialize methods <b>MUST</b> be placed in the namespace of type which they serialize.

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_3_nonintrusive.cc`

\subsubsection ex3 Example source code:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

\attention All Non-Intrusive serialize methods <b>MUST</b> be placed in the namespace of type which they serialize.

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_polymorphic_macro_nonintrusive.cc`

\subsubsection ex6 Example source code:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

\attention All Non-Intrusive serialize methods <b>MUST</b> be placed in the namespace of type which they serialize.

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_polymorphic_nonintrusive.cc`

\subsubsection ex5 Example source code:
Expand Down
2 changes: 1 addition & 1 deletion docs/md/checkpoint_learn_example_traversal.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\page ckpt_learn_ex7_traversal Program Example Traversal

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_traversal.cc`

\subsubsection ex7 Example source code:
Expand Down
2 changes: 1 addition & 1 deletion docs/md/checkpoint_learn_example_traversal_nonintrusive.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

\attention All Non-Intrusive serialize methods <b>MUST</b> be placed in the namespace of type which they serialize.

The full code for this *checkpoint* example can be found here:
The full code for this *magistrate* example can be found here:
`examples/checkpoint_example_traversal_nonintrusive.cc`

\subsubsection ex7 Example source code:
Expand Down
Loading

0 comments on commit 162ef56

Please sign in to comment.