Docs/configuration walkthrough revamp#84
Conversation
- Add "Choosing the appropriate DAQIRI backend" prose intro before the example-config questions - Realign the annotated base walkthrough with the current daqiri_bench_raw_tx_rx.yaml (stream_type, loopback, single-segment RX, buf_size 8064, payload_size 8000, minimal bench_rx) - Add diff-style walkthrough sections for HDS and GPU packet reordering, with feature-defining lines highlighted - Standardize scalar annotations as two-tier value cards (key, type, required/default, supported values) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Ramya Gurunathan <rgurunathan@nvidia.com>
- check_doc_refs.py: parse the ```yaml block under "### Base TX+RX config" in configuration-walkthrough.md (stripping # (N)! annotation markers), parse examples/daqiri_bench_raw_tx_rx.yaml, and fail with a unified diff if the two structures don't match. PyYAML is already transitively available via mkdocs-material; no new CI dependency needed. Only the base walkthrough is checked; the HDS and reorder diff snippets are intentional fragments. - docs-sync rule: add an "Annotated walkthrough pairing" bullet listing the three YAMLs reproduced in the walkthrough section and noting which one is CI-enforced vs. review-by-hand. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Ramya Gurunathan <rgurunathan@nvidia.com>
|
| Filename | Overview |
|---|---|
| docs/tutorials/configuration-walkthrough.md | Major revamp: base TX+RX section realigned with the current YAML (stream_type, loopback, buf_size:8064, minimal bench_rx), annotations renumbered. Two new diff-only sections added for HDS and GPU reorder. Annotations standardised to a two-tier value-card / free-prose scheme. Content verified against examples/daqiri_bench_raw_tx_rx.yaml — all fields match, including the rq_q_0 queue name. |
| mkdocs.yml | Single nav-title rename: "Configuration File" → "Configuration YAML Walkthrough". No path change; existing links to tutorials/configuration-walkthrough/ are unaffected. |
| .claude/rules/docs-sync.md | Adds three annotated-walkthrough pairing rules (base full-file, HDS diff-only, reorder diff-only), documenting which YAMLs are governed by CI vs. hand review. Clean addition with no conflicts. |
| scripts/check_doc_refs.py | Adds base_walkthrough_drift() check that extracts the annotated YAML block, strips annotation markers, and compares parsed dicts against the canonical example on disk. The yaml import is kept local with a try/except guard (addressing the previous review comment). One minor issue: the unified diff normalisation does not sort keys, which can produce noisy output. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["check_doc_refs main()"] --> B["known_binaries()"]
A --> C["known_yamls()"]
A --> D["decision_tree_coverage()"]
A --> E["base_walkthrough_drift()"]
E --> F{"PyYAML\ninstalled?"}
F -- No --> G["Skip with warning\nother checks still run"]
F -- Yes --> H["Regex-extract yaml block\nfrom Base TX+RX section"]
H --> I["Strip annotation markers\nfrom extracted text"]
I --> J["safe_load both sides\nwalkthrough vs source file"]
J --> K{"Dicts equal?"}
K -- Yes --> L["Pass"]
K -- No --> M["yaml.safe_dump both sides\nbuild unified diff\nreturns error list"]
style G fill:#f5a623,color:#000
style L fill:#7ed321,color:#000
style M fill:#d0021b,color:#fff
Reviews (2): Last reviewed commit: "Address Greptile review feedback on docs..." | Re-trigger Greptile
- scripts/check_doc_refs.py: move `import yaml` inside base_walkthrough_drift() so the script's pre-existing reference and coverage checks keep working in environments without PyYAML installed. Print a WARNING and skip the drift check when PyYAML is unavailable; make the success-summary string conditional on whether the drift check actually ran. - mkdocs.yml: rename the tutorials nav entry from "Configuration File" to "Configuration YAML Walkthrough" to clarify it's a walkthrough of the YAML config (distinct from API Reference and Configuration). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Ramya Gurunathan <rgurunathan@nvidia.com>
Summary
Revises
docs/tutorials/configuration-walkthrough.mdto address review feedback from #66 and bring the page back in sync with the current example YAMLs. Adds a CI gate that catches the drift class this PR fixes,so the base walkthrough can't silently fall out of sync with
examples/daqiri_bench_raw_tx_rx.yamlagain.Changes
Decision tree (
#choosing-an-example-config):ConnectX link). Addresses the review comment on #66.
Annotated walkthrough:
examples/daqiri_bench_raw_tx_rx.yaml:stream_type: "raw"andloopback: ""added, legacymanager:removed, single-segment RX restored,buf_size: 8064,payload_size: 8000, minimalbench_rx. Roughly two dozen annotations renumbered.### Header-data split (HDS)section — diff-only walkthrough ofdaqiri_bench_raw_tx_rx_hds.yaml(new CPU memory regions, chainedmemory_regions:per queue,ipv4_lenflow rule, matchedbench_tx.payload_size).### Packet reordering on the GPUsection — diff-only walkthrough ofdaqiri_bench_raw_tx_rx_reorder_seq_1024.yaml(dedicatedReorder_RX_GPUregion with size math,batch_size/timeout_us, fullreorder_configs:block walked key by key, TX-side seqno injection).hl_linesadded to every HDS and reorder snippet so the feature-defining values stand out visually, matching the treatment in the base walkthrough.CI / drift guard:
scripts/check_doc_refs.pygains abase_walkthrough_drift()check that extracts the ```yaml block under### Base TX+RX config, strips `# (N)!` annotation markers, parses both it and`examples/daqiri_bench_raw_tx_rx.yaml` with `yaml.safe_load`, and fails with a unified diff if the parsed dicts don't match. PyYAML is already transitively available via `mkdocs-material`; no new CI dependency.
.claude/rules/docs-sync.md.Reviewing
Preview locally with
mkdocs serve:Then open http://127.0.0.1:8000/daqiri/tutorials/configuration-walkthrough/. That's the only page modified by this PR.