prysm-pulse/tools/specs-checker/README.md
Victor Farazdagi 3d3b9d1217
Spec checker tool (#8722)
* Add specdocs static code analyzer

* docs pulling script

* update content pulling script

* add test

* better parsing of incoming docs

* update test

* implements analyzer

* separate tool

* remove analyzer code

* cleanup

* deep source fixes

* untrack raw specs files

* add back phase0 defs

* update spec texts

* re-arrange code

* updated spec list

* cleanup

* more comments and readme

* add merkle proofs specs

* add extra.md

* mark wrong length issue

* update readme

* update readme

* remove non-def snippets

* update comment

* check numrows

* ignore last empty line

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2021-04-15 14:54:07 +00:00

42 lines
1.3 KiB
Markdown

# Specs checker tool
This simple tool helps downloading and parsing [ETH2 specs](https://github.com/ethereum/eth2.0-specs/tree/dev/specs),
to be later used for making sure that our reference comments match specs definitions precisely.
### Updating the reference specs
See `main.go` for a list of files to be downloaded, currently:
```golang
var specDirs = map[string][]string{
"specs/phase0": {
"beacon-chain.md",
"fork-choice.md",
"validator.md",
"weak-subjectivity.md",
},
"ssz": {
"merkle-proofs.md",
},
}
```
To download/update specs:
```bash
bazel run //tools/specs-checker download -- --dir=$PWD/tools/specs-checker/data
```
This will pull the files defined in `specDirs`, parse them (extract Python code snippets, discarding any other text),
and save them to the folder from which `bazel run //tools/specs-checker check` will be able to embed.
### Checking against the reference specs
To check whether reference comments have the matching version of Python specs:
```bash
bazel run //tools/specs-checker check -- --dir $PWD/beacon-chain
bazel run //tools/specs-checker check -- --dir $PWD/validator
bazel run //tools/specs-checker check -- --dir $PWD/shared
```
Or, to check the whole project:
```bash
bazel run //tools/specs-checker check -- --dir $PWD
```