Files

170 lines
5.9 KiB
Markdown
Raw Permalink Normal View History

# About
2020-11-26 22:46:00 +01:00
2022-07-11 11:34:59 +02:00
This repository contains source code for the Dasharo documentation webpage
2020-11-26 22:46:00 +01:00
2022-11-09 11:35:10 +01:00
## Contribution
Please make sure to follow below steps before publishing your changes as a
merge request.
### Local build
2020-11-26 22:46:00 +01:00
```shell
2021-03-25 22:57:38 +01:00
virtualenv -p $(which python3) venv
source venv/bin/activate
pip install -r requirements.txt
2022-11-09 11:35:10 +01:00
mkdocs serve
```
2024-01-26 09:49:01 +01:00
By default, it will host a local copy of documentation at:
2022-11-09 11:35:10 +01:00
`http://0.0.0.0:8000/`.
2023-06-20 12:39:50 +02:00
If the following error occurs `OSError: [Errno 98] Address already in use`, try
using a different address by running the command `mkdocs serve -a
localhost:12345` (the number is random).
2023-03-09 10:16:20 +01:00
2023-06-20 12:39:50 +02:00
It is crucial at this point to verify that the pages you have changed
2022-11-09 11:35:10 +01:00
render correctly as HTML in local preview.
If you want to use a browser for a live preview while you keep making changes,
consider adding `--dirty` flag to `mkdocs serve` command. It limits automatic
regeneration to only changed files and makes browser updates much faster.
2022-11-09 11:35:10 +01:00
### Broken links checker
Currently we are using [lychee](https://github.com/lycheeverse/lychee) a fast,
async, stream-based link checker written in Rust. The automatic check is
triggered on each push to master PR.
2022-11-09 11:35:10 +01:00
You can also run it locally using a docker image:
```bash
$ docker run --init -it --rm -w $(pwd) -v $(pwd):$(pwd) lycheeverse/lychee
--max-redirects 10 -a 403,429,500,502,503,999 .
```
### Relative links
Please avoid using URL-related links like:
```md
[MSI PRO Z790-P](../../unified/msi/overview)
```
2023-08-02 01:14:12 +02:00
Instead, use relative links within the repository:
```md
[MSI PRO Z790-P](../unified/msi/overview.md)
2022-11-09 11:35:10 +01:00
```
### Make sure no TBD or TODO content is displayed
Find all occurrences:
```shell
grep -E "TBD|TODO" docs/**/*.md -r
```
Iterate over all occurrences and check if:
2022-07-11 11:34:59 +02:00
- file, where TBD or TODO occurs, is displayed (included in nav section of
mkdocs.yml)
2022-07-11 11:34:59 +02:00
- TBD or TODO is visible on the website
2022-07-11 11:34:59 +02:00
There should be no TBD or TODO visible on the website.
2022-03-02 22:08:02 +01:00
2022-11-09 11:35:10 +01:00
### pre-commit hooks
2022-03-02 22:08:02 +01:00
- [Install pre-commit](https://pre-commit.com/index.html#install), if you
followed [local build](#local-build) procedure `pre-commit` should be
installed
- [Install go](https://go.dev/doc/install)
2022-03-02 22:08:02 +01:00
2022-03-03 09:31:31 +01:00
- Install hooks into repo:
2022-03-02 22:08:02 +01:00
2022-11-09 11:35:10 +01:00
```shell
2023-09-13 16:12:03 +02:00
pre-commit install
2022-03-02 22:08:02 +01:00
```
2022-03-03 09:31:31 +01:00
- Enjoy automatic checks on each `git commit` action!
2022-03-02 22:08:02 +01:00
2022-03-03 09:31:31 +01:00
- (Optional) Run hooks on all files (for example, when adding new hooks or
2022-03-02 22:08:02 +01:00
configuring existing ones):
2022-11-09 11:35:10 +01:00
```shell
2022-03-02 22:08:02 +01:00
pre-commit run --all-files
```
2022-11-09 11:35:10 +01:00
#### To skip verification
2022-07-11 11:34:59 +02:00
In some cases, it may be needed to skip `pre-commit` tests. To do that, please
use:
2022-11-09 11:35:10 +01:00
```shell
git commit --no-verify
```
### Embedding videos
Embedding videos with in-line HTML `iframe` tag does not work.
[mkdocs-video](https://github.com/soulless-viewer/mkdocs-video) plugin is used
instead. To embed an video simply type the following in markdown:
`![type:video](https://www.youtube.com/embed/LXb3EKWsInQ)` (example).
2022-11-09 11:35:10 +01:00
## Navigation menu
2022-11-09 11:35:10 +01:00
### Supported hardware
Each subsection of supported hardware should look as follows - there should be
no more sections:
```yaml
- 'Vendor Model':
- 'Overview': variants/<vendor_model>/overview.md
- 'Releases': variants/<vendor_model>/releases.md
- 'Building manual': variants/<vendor_model>/building-manual.md
- 'Initial deployment': variants/<vendor_model>/initial-deployment.md
- 'Firmware update': variants/<vendor_model>/firmware-update.md
- 'Recovery': variants/<vendor_model>/recovery.md
- 'Hardware Configuration Matrix': variants/<vendor_model>/hardware-matrix.md
2022-07-13 11:49:38 +02:00
- 'Test Matrix': variants/<vendor_model>/test-matrix.md
- 'Security and Privacy (optional)': variants/<vendor_model>/security-and-privacy.md
- 'Other manuals (optional)': variants/<vendor_model>/other-manuals.md
2022-07-13 11:49:38 +02:00
- 'FAQ (optional)': variants/<vendor_model>/faq.md
```
2022-07-11 11:34:59 +02:00
- `Vendor` can have multiple meanings, but it can be a vendor who sells the
platform, OEM or ODM. We tend to follow the naming convention used in
`coreboot` or other open-source firmware projects. We can consider adjustment
of the name for SEO reasons, community, or customer demand.
- `Model` in most cases it would include some literal and number, we don't want
2022-07-11 11:34:59 +02:00
to overload the reader with very precise IDs. As for vendors we try to reuse
existing open-source firmware conventions, but if needed we can adjust the
model name.
2022-07-11 12:44:24 +02:00
- `Overview` presents general information related to Dasharo, history, map of
2022-07-11 11:34:59 +02:00
subsections, marketing materials, and press release links.
- `Releases` section where all binaries are provided in a standardized way.
- `Building manual` section provides instructions on how to build release and
debug binaries in a reproducible manner.
- `Firmware update` section explains all methods to update the firmware. If
additional steps are needed to perform updates between specific versions it,
should also be covered in this section.
2022-07-11 11:34:59 +02:00
- `Recovery` section describes what to do in case of various error signatures
e.g. platform not booting or hanging in a particular place.
- `Hardware Configuration Matrix` - presents the configuration used in Dasharo
labs to perform validation as well as a community-contributed hardware
compatibility reports, which present CPUs, GPUs, memory modules, and other
components tested by community.
- `Test Matrix` - presents a list of tests that we execute during the release
process.
- `Community Test Results` - an optional section that presents test results
contributed by the community.
- `Security and Privacy` - an optional section that provides security-related
information, like the size of the trusted computing base (via Dasharo
Openness Score), manuals on how to use verified boot, measured boot, or UEFI
Secure Boot.
- `Other manuals` - an optional section that provides other manuals, such as:
how to enable fan control, update EC controller, customize logo etc.
- `FAQ` - frequently asked questions related to a given hardware platform and
Dasharo support for it.