Ackee-Blockchain / trident

Rust-based framework to Fuzz and Integration test Solana programs to help you ship secure code.
https://ackee.xyz/
MIT License
185 stars 18 forks source link

External Documentation #135

Closed lukacan closed 6 months ago

lukacan commented 6 months ago

Currently, the framework does not have any external documentation which should be more user-friendly and more appealing than the GitHub markdown.

This PR adds external documentation to the framework using mkdocs.

Within the root of the framework, a documentation folder is present, the folder contains the mkdocs.yml configuration file and the docs folder with all (markdown) pages used within the documentation. The configuration file is sufficiently commented so that it can be easily read and modified if needed.

For documentation purposes, a new GitHub Workflow is created to automate the deployment process of documentation. When changes are pushed to the master branch the workflow will automatically trigger the build of the documentation which will generate web pages from the mkdocs project. These pages are then stored within the documentation branch that only stores the web pages (not the framework source codes). The new branch is created to distinguish between the framework and docs files and if we support web pages with multiple framework versions in the future, the branch will contain all required versions (this is inspired by the Wake Framework).

Currently, the generated web pages within the documentation are required to be copied into the firebase-abch-web, this can be also simplified by introducing another Workflow, that will automatically push new web pages from the documentation branch into the firebase repo (example: Wake Workflow).

Lastly in order to test/update the documentation locally, requirements.txt file is present within the documentation folder.

  1. use python 3.10
  2. run pip install -r requirements.txt
  3. navigate to the trdelnik/documentation folder and run mkdocs serve