-
Notifications
You must be signed in to change notification settings - Fork 196
docs: improve documentation quality and add CI checks #10204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Add automated documentation quality checks and fix existing issues across the codebase documentation. Workflow changes: - Add `docs-check.yml` workflow with link checking (lychee), spell checking (codespell), and markdown linting (markdownlint) - Workflow follows project conventions: pinned action SHAs, per-job permissions, aggregator job pattern Documentation fixes: - Fix markdown linting issues (MD040 code block language specifiers, MD059 descriptive link text) - Fix spelling errors across documentation files - Add missing ARCHITECTURE.md for high-level codebase overview - Add new developer documentation: onboarding guide, crate architecture - Add ecosystem integration guide for users - Add architectural decision records (ADRs) for Tower, verification, RocksDB - Update CI/CD documentation with workflow diagram Configuration: - Add `.lychee.toml` for link checker configuration - Add `.lycheecache` to `.gitignore` - Update `.codespellrc` with domain-specific terminology Note: Some URLs are excluded in `.lychee.toml` that require review: - zips.z.cash PDF links (404 but linked from official Zcash site) - Deprecated doc sites (doc.zebra.zfnd.org, doc-internal.zebra.zfnd.org) - zcash/zips master branch links (pending main migration) - New zebra.zfnd.org pages (pending book deployment)
- Add .trunk/configs/.markdownlint.yaml to repo (was gitignored) - Fix re-actors/alls-green SHA: use commit hash, not tag object hash
Disable MD001, MD028, MD036 rules that flag intentional formatting patterns in existing RFC and book documentation.
It's possible this 404 was during a short time when the protocol spec links were broken. The exclusion should be removed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mixing formatting changes with content changes and additions makes this PR very difficult to review since those require totally different levels of detail.
Would you mind splitting those up if possible? Thinking about it, I think it's easier to merge this soon and fix things later if needed
There are also conflicts - feel free to ping me when you solve them so I can approve this quickly and avoid more conflicts
| # Run on Testnet | ||
| cargo run --release -- --network testnet | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is wrong
| # Run on Testnet | |
| cargo run --release -- --network testnet |
|
Thinking about it, I think it's easier to merge this soon and fix things later if needed |
Motivation
Improve documentation quality across the Zebra codebase by adding automated checks and fixing existing issues. This ensures consistent, well-formatted, and accurate documentation going forward.
Solution
New CI Workflow (
docs-check.yml)Adds automated documentation quality checks that run on PRs and pushes affecting markdown files:
The workflow follows project conventions:
docs-check-success)actionlintandzizmorDocumentation Fixes
Fixed issues across ~100 files:
New Documentation
ARCHITECTURE.md: High-level codebase overviewbook/src/dev/onboarding.md: Developer onboarding guidebook/src/dev/crates.md: Crate architecture documentationbook/src/user/ecosystem-integration.md: Integration guide for wallets/exchangesConfiguration Files
.lychee.toml: Link checker configuration with exclusion patterns.codespellrc: Updated with Zcash-specific terminology.gitignore: Added.lycheecacheexclusionURLs Excluded in Lychee (Require Review)
The following URL patterns are excluded and should be reviewed for potential fixes:
zips.z.cash/protocol/*.pdfdoc.zebra.zfnd.org,doc-internal.zebra.zfnd.orggithub.com/zcash/zips/blob/master/zebra.zfnd.org/dev/crates.html(and others)www.zfnd.org/blog/futures-batch-verification/github.com/nginxinc/docker-nginx/issues/490Tests
codespell --config .codespellrclocally - passesmarkdownlint "**/*.md" --config .trunk/configs/.markdownlint.yamllocally - passeslychee --config .lychee.toml "**/*.md"locally - passes with exclusionsactionlintandzizmor- no errorsSpecifications & References
Follow-up Work
.lychee.tomland fix where possiblePR Checklist