===== API Documentation Generation ===== It is very important to **always** document the projects. There are many tools that make this boring task easier, and that help you automate most of the worst parts. Here we present a little guide on how to do that with 3 documentation tools. Doxygen (for C/C++), Sphinx (for Python) and Cargo (for Rust). In the last section we discuss how to automate the process of generating and publishing this documentation using GitLab CI and Jenkins. ==== Doxygen ==== In progress ... ==== Sphinx ==== In progress ... ==== Cargo ==== In progress ... ==== GitLab Pages ==== There are 3 examples that you can use as a guide. === C/C++ === Repository [[https://gitlab.com/arcoslab/libopencm3]] Documentation [[ https://arcoslab.gitlab.io/libopencm3/html/]] === Python === arcos-python-cookiecutter is a template manager for creating Python projects. We configured GitLab to generate and publish the documentation whenever code is published to master. Here you can see an example: Repository: [[https://gitlab.com/arcoslab/arcos-python-cookiecutter]] Documentation: [[https://arcoslab.gitlab.io/arcos-python-cookiecutter]] === Rust === ARCOS-KDL is our own Kinematics and Dynamics Library. We configured GitLab to generate and publish the documentation whenever code is pushed to master. Here you can see an example how to do that with Rust: Repository: [[https://gitlab.com/arcoslab/arcos-kdl]] Documentation: [[https://arcoslab.gitlab.io/arcos-kdl/arcos_kdl/index.html]] ==== Jenkins ====