2021-03-04 17:35:57 +01:00
|
|
|
# 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
|
|
|
|
2022-03-01 16:36:43 +01:00
|
|
|
```shell
|
2021-03-25 22:57:38 +01:00
|
|
|
virtualenv -p $(which python3) venv
|
2021-03-04 17:35:57 +01:00
|
|
|
source venv/bin/activate
|
2022-03-22 16:05:11 +01:00
|
|
|
pip install -r requirements.txt
|
2022-11-09 11:35:10 +01:00
|
|
|
mkdocs serve
|
2021-03-04 17:35:57 +01:00
|
|
|
```
|
2022-03-01 16:36:43 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2024-06-19 01:08:51 +03:00
|
|
|
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
|
2022-03-01 16:36:43 +01:00
|
|
|
|
2023-08-02 01:09:22 +02:00
|
|
|
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
|
|
|
|
2023-08-02 01:09:22 +02: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
|
|
|
|
2023-08-02 01:09:22 +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
|
2022-03-01 17:32:32 +01:00
|
|
|
|
|
|
|
|
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
|
2022-03-01 17:32:32 +01:00
|
|
|
mkdocs.yml)
|
2022-07-11 11:34:59 +02:00
|
|
|
- TBD or TODO is visible on the website
|
2022-03-01 17:32:32 +01:00
|
|
|
|
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
|
|
|
|
2022-03-22 16:05:11 +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-03-22 16:05:11 +01:00
|
|
|
|
2022-11-09 11:35:10 +01:00
|
|
|
#### To skip verification
|
2022-03-22 16:05:11 +01:00
|
|
|
|
2022-07-11 11:34:59 +02:00
|
|
|
In some cases, it may be needed to skip `pre-commit` tests. To do that, please
|
2022-03-22 16:05:11 +01:00
|
|
|
use:
|
|
|
|
|
|
2022-11-09 11:35:10 +01:00
|
|
|
```shell
|
2022-03-22 16:05:11 +01:00
|
|
|
git commit --no-verify
|
|
|
|
|
```
|
2022-06-29 00:59:24 +02:00
|
|
|
|
2023-01-31 10:31:05 +01:00
|
|
|
### 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:
|
|
|
|
|
`` (example).
|
|
|
|
|
|
2022-11-09 11:35:10 +01:00
|
|
|
## Navigation menu
|
2022-06-29 00:59:24 +02:00
|
|
|
|
2022-11-09 11:35:10 +01:00
|
|
|
### Supported hardware
|
2022-06-29 00:59:24 +02:00
|
|
|
|
2022-07-12 22:43:29 +02:00
|
|
|
Each subsection of supported hardware should look as follows - there should be
|
|
|
|
|
no more sections:
|
2022-06-29 00:59:24 +02:00
|
|
|
|
|
|
|
|
```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
|
2022-06-29 00:59:24 +02:00
|
|
|
- '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-06-29 00:59:24 +02:00
|
|
|
```
|
|
|
|
|
|
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.
|
2022-06-29 00:59:24 +02:00
|
|
|
- `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,
|
2022-06-29 00:59:24 +02:00
|
|
|
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
|
2022-06-29 00:59:24 +02:00
|
|
|
Dasharo support for it.
|