How to Use Sphinx for Writing Docs
How to Get the Dependencies
Using Docker
If you are using Docker, then simply pull the docker image specified below:
image: sphinxdoc/sphinx-latexpdf
Then, after running docker run -it <docker-image-name> /bin/bash
, install the theme we are using with pip install sphinx_rtd_theme
Using Spack
If you are using Spack to provision dependencies, then follow the steps as such:
111 - spack env loads -r -x singularity-eos
112 - source ${CI_PROJECT_DIR}/spack/share/spack/setup-env.sh
113 - source ${CI_PROJECT_DIR}/spack_env/loads
114 - clang-format -version
115 - find ${CI_PROJECT_DIR} -regex '.*\.\(cpp\|hpp\)' | xargs clang-format -style=file -i && git diff --exit-code --ignore-submodules
116
117.sphinx-doc:
118 stage: static_analysis
119 variables:
120 GIT_SUBMODULE_STRATEGY: none
from .gitlab-ci.yml
Warning
If you do not have either Docker or Spack locally, you would need to install one of them first.
For Docker, refer to their Get Docker Guide.
For Spack, refer to their Getting Started Guide.
How to Build .rst into .html
After you have the dependencies in your environment, then simply build your documentation as the following:
121 script:
122 - spack install --show-log-on-error --no-checksum --yes-to-all singularity-eos+python+mpi+doc%gcc@${SINGULARITY_EOS_GCC_VERSION}^openmpi@${SINGULARITY_EOS_OPENMPI_VERSION}
from .gitlab-ci.yml
Note
You can view the documentation webpage locally on your web browser by passing in the URL as file:///path/to/singularity-eos/doc/sphinx/_build/html/index.html
How to Deploy
Submit a PR with your .rst changes for documentation on Github Singularity-EOS
Get your PR reviewed and merged into main
Make sure the
pages
CI job passes in the CI pipeline
As soon as the PR is merged into main, this will trigger the Pages deployment automatically if the pages
CI job passes.
Documentation is available on github-pages and on re-git