Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 122 additions & 18 deletions .config/forest.dic
Original file line number Diff line number Diff line change
@@ -1,21 +1,35 @@
78
258
Algorand/M
API/M
API's
API/SM
APIs
aria2c
args
aria2c
arities
arity
async
attoFIL
autogenerated
automagically
backend/S
backfill
backport
behaviour
benchmark/GD
benchmarking
Beryx
bitfield
bitswap
BLAKE2b
blockchain/M
Blockscout
blockstore/SM
BLS
bootnode/S
bootstrapper/S
BuildKit
butterflynet
bytecode
calibnet
calldata
callee
Expand All @@ -24,116 +38,200 @@ CAR/SM
CARv1/SM
CARv2/SM
CBOR
Chainlist
chainsafe
ChainSafe/M
CHANGELOG
changelog/S
CID/SM
CIDs
ChainSafe/M
CLA
CLI
Cloudflare
clippy
clonable
Cloudflare
codebase
codec
config/S
cron
crypto
CurrentEpoch
daemon
daemonize
Datacap
devnet
DB/S
DDL
deduplicates
dep/S
deserialize/D
destructuring
devnet
Devs
DHT
DigitalOcean
Diátaxis
DNS
Dockerfile/S
Docusaurus
Drand
durations
EAM
EIP
EIP155
enum
Enum
enum
enums
env
EOF
Ethereum
eth
exa
Ethereum
EVM
f4
exa
F3
f3
f4
FFI
FIL
Filecoin/M
Filfox
Filops
FIP
FilOz
FIP/S
FVM
GC
Geth/M
GH
Ghostty
GiB
GitHub
Glif
Grafana
GraphQL
HAMT
hardcoded
hasher
healthcheck
hotfix
IaC
implementer/S
implementor/SM
IPFS
infeasible
interop/S
ip
IPFS
IPLD
JSON
jsonrpc
jsonrpsee
JWT
JWT/S
Kademlia
keypair/S
keystore/S
Kubernetes
LetsEncrypt
libp2p
linter/S
liveness
localhost
localhost/M
lookups
LRU
LTO
macOS
mainnet
MD5
MDBX
MDNS
MDX
mempool
Merkle
MetaMask
MiB
middleware
migrator/S
milliGas
multiaddr/SM
multiaddress
multiaddresses
multihash
multisig
mutex
namespace/S
Neo4j
NVMe
NVXX
onwards
OOM/S
Open
OpenEthereum
OpenRPC
orchestrator/S
overallocation
P2P
p2p
param/SM
ParityDb
ParityDB
ParityDb
parsable
peerstore/S
performant
pnpm
PoC
pointer/SM
PoSt
precommit
preloaded
pubsub
R2
README
repo/S
retag
Reth
RLP
RNG
roadmap/S
RPC
Rusqlite
rustup
sccache
schema/SM
schemas
SECP
SECP256k1
seekable
semver
serializable
serializer/SM
serde_json
serverless
skippable
Sqlx
statediff
stateful
stateroots
stderr
stdout
struct/SM
subcall/S
subcommand/S
submodule/S
swappiness
synchronizer
syscall/S
TabItem
TBD
TCP
teardown
Terraform
testnet
TiB
tipset/SM
tipsetkey/S
Tokio
TOML
toolchain/S
trie
truthy
TTY
UI
unclutter
uncompress
unrepresentable
untrusted
Expand All @@ -144,12 +242,18 @@ v1
v2
validator/S
varint
vendored
verifier
verifreg
virtualized
VM/SM
VPS
VRF
WASM
webapp/S
WebAssembly
WebSocket
WPoStProvingPeriodDeadlines
WIP
YAML
YugabyteDB
zstd
20 changes: 15 additions & 5 deletions .config/spellcheck.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
# Spellcheck

We run spellchecks using
[`cargo-spellcheck`](https://crates.io/crates/cargo-spellcheck).
[`cargo-spellcheck`](https://crates.io/crates/cargo-spellcheck) with the
[Hunspell](https://github.com/hunspell/hunspell) backend.

It delegates to a program called
[`Hunspell`](https://github.com/hunspell/hunspell).
This is used for **both** Rust doc comments and Markdown files across the entire
repository. A single dictionary file (`forest.dic`) is shared between all
checks.

Hunspell accepts uses `dictionary` files for words and `affix` files to define
Hunspell uses `dictionary` files for words and `affix` files to define
acceptable modifications to those words.

Note that cargo-spellcheck comes with
Note that `cargo-spellcheck` comes with
[default dictionary and affix files](https://github.com/drahnr/cargo-spellcheck/blob/dff48db8ca954fce14a0cd5aea127ce59a929624/src/checker/hunspell.rs#L32).
Our vendored `en_US.dic` is larger than theirs.

Expand Down Expand Up @@ -70,3 +72,11 @@ For more information see
## Tips

- Include symbols in `backticks` - they won't have to be added to the dictionary
- Wrap code identifiers (struct names, variable names, crate names) in backticks
rather than adding them to the dictionary
- Only add common IT terms, proper nouns, and domain-specific terminology to the
dictionary
- Use `<URL>` autolink syntax for bare URLs in Markdown files so they are skipped
by the checker
- Run `mise run lint:spellcheck` for Rust code and
`mise run lint:spellcheck-markdown` for Markdown files
21 changes: 19 additions & 2 deletions .config/spellcheck.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,25 @@ extra_dictionaries = ["forest.dic", "en_US.dic"]

[hunspell.quirks]
transform_regex = [
# 10.7%
"^[0-9_]+(?:\\.[0-9]*)?%$",
# 10.7%, 30_000
"^[0-9_]+(?:\\.[0-9]*)?%?$",
# Words containing underscores (e.g., sidebar_position in YAML frontmatter)
"^[a-zA-Z0-9]*_[a-zA-Z0-9_]*$",
# Template braces {{ }}
"^\\{+$",
"^\\}+$",
# Short tokens (1-2 chars) that are almost always noise from markdown parsing
"^.{1,2}$",
# Version references like NV17, NV23, v21, FVM2
"^[a-zA-Z]+[0-9]+$",
# @-prefixed tokens (e.g., @theme imports in MDX)
"^@",
# Approximate values like ~14, ~80
"^~",
# URLs that slip through markdown parsing
"^https?:",
# Common abbreviations with special characters (e.g., Q&A)
"^Q&A$",
]
allow_concatenation = false
allow_dashes = false
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/1-bug_report.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Bug report
about: Provide a report of unexpected behaviour
about: Provide a report of unexpected behavior
title: ""
labels: "Type: Bug"
assignees: ""
Expand Down
16 changes: 15 additions & 1 deletion .github/workflows/docs-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ on:
paths:
- "**.md"
- "docs/**"
- ".config/forest.dic"
- ".config/spellcheck.toml"
- ".github/workflows/docs-check.yml"
merge_group:
pull_request:
Expand All @@ -20,6 +22,8 @@ on:
paths:
- "**.md"
- "docs/**"
- ".config/forest.dic"
- ".config/spellcheck.toml"
- ".github/workflows/docs-check.yml"

jobs:
Expand All @@ -32,6 +36,16 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: jdx/mise-action@v3
- run: mise run docs:format-spellcheck-dictionary-check
- name: Check spellcheck dictionary format
working-directory: .
run: mise run format-spellcheck-dictionary-check
- name: Install cargo-spellcheck
working-directory: .
run: |
sudo apt-get install -y libclang-dev
cargo binstall --no-confirm cargo-spellcheck
- name: Spellcheck Markdown files
working-directory: .
run: mise run lint:spellcheck-markdown
- run: mise run docs:lint
- run: mise run docs:build
Loading
Loading