Skip to content

docs: correct Arkade terminology and fix the docs.rs landing page - #268

Merged
luckysori merged 1 commit into
masterfrom
docs/terminology-and-docsrs
Aug 18, 2026
Merged

luckysori merged 1 commit into
masterfrom
docs/terminology-and-docsrs

Conversation

@gringokiwi

@gringokiwi gringokiwi commented Aug 18, 2026 •

Copy link
Copy Markdown
Contributor

Two related documentation fixes. No application logic is touched — only crate metadata, READMEs, and ark-rs/src/lib.rs re-export attributes.

1. Terminology in the published crate descriptions

Seven of the ten published crates described Arkade as "Ark", "the Ark protocol", or an "Ark server":

Crate Before After
ark-rs …on-chain and off-chain transactions via the Ark protocol Rust crates for building Bitcoin wallets and applications with Arkade
ark-client Main client library for interacting with Ark servers High-level client library for building Arkade wallets in Rust
ark-grpc gRPC client for Ark server communication gRPC transport client for the Arkade operator
ark-rest REST client for Ark server communication REST transport client for the Arkade operator
ark-core Core types and utilities for Ark Core Arkade types and transaction utilities
ark-delegator REST client for Ark delegator services REST client for Arkade delegate services
ark-bdk-wallet …ark-client on-chain wallet traits… …the ark-client onchain wallet traits…
ark-introspector-client Client for the Ark introspector service Client for the Arkade introspector service

These are the strings crates.io renders on each crate page, so they are the most widely seen prose in the repo. Arkade is a distinct system, and unrelated protocols ship under the "Ark" name, so the old wording invited exactly the conflation we want to avoid.

The same pass through ark-client/README.md, ark-grpc/README.md, ark-rest/README.md, ark-bdk-wallet/README.md, and the root README replaces:

  • "Arkade servers" → the operator
  • "VTXOs" → virtual outputs
  • "Arkade rounds" → batch swaps
  • "on-chain" → onchain
  • "the Ark OpenAPI specification" → the arkd OpenAPI specification

Crate names, module paths, and every code identifier are unchanged. Renaming an exported symbol is a breaking change and is out of scope here.

2. The docs.rs landing page for ark-rs

https://docs.rs/ark-rs/latest/ark_rs/ served a page whose only visible re-export was ark_core. ark_client and ark_grpc sit behind non-default features, and the crate had no docs.rs metadata and no crate-level documentation, so the landing page told a reader almost nothing.

This adds:

  • A //! crate doc on ark-rs/src/lib.rs: what the crate is for, a table mapping each module to its crate and feature, an install snippet, the forwarded features, and a pointer to ark_client::Client as the place to start.
  • [package.metadata.docs.rs] all-features = true plus rustdoc-args = ["--cfg", "docsrs"].
  • #[cfg_attr(docsrs, doc(cfg(feature = "…")))] on the client and grpc re-exports, so the rendered page shows which feature gates each one.
  • cfg(docsrs) registered in the workspace check-cfg list, so the new attribute does not trip the unexpected_cfgs lint.
  • A crates.io badge and a docs.rs badge on the root README, and a direct docs.rs/ark-rs link replacing a docs.rs/releases/search?query=ark-rs query.

Verification

cargo check -p ark-rs --all-features          # clean
cargo doc   -p ark-rs --all-features --no-deps # clean on stable
RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc -p ark-rs --all-features --no-deps

Inspecting the generated ark_rs/index.html from the nightly build: all three re-exports (ark_core, ark_client, ark_grpc) render, and the feature badges resolve to client and grpc. The doc_cfg attribute is gated behind cfg(docsrs), so stable builds are unaffected.

Relation to open issues

Closes most of #216 — crate doc, docs.rs metadata, doc(cfg) annotations, README badge and link. The per-crate READMEs and the root crate list it also asked for had already landed.

Also covers the last two unchecked non-coverage items on #205. What remains on both issues is rustdoc coverage across all public items, which is a separate and much larger effort worth its own issue.

Summary by CodeRabbit

  • Documentation

    • Clarified the SDK’s Arkade focus, wallet-building capabilities, operator transport options, and supported services.
    • Expanded getting-started guidance, installation details, feature flags, TLS options, and module documentation.
    • Updated documentation links, badges, endpoint coverage, and local operator testing references.
    • Standardized terminology across package descriptions and READMEs.
  • Improvements

    • Enhanced docs.rs configuration so documentation includes available features and relevant conditional documentation.

Seven of the ten published crate descriptions described Arkade as "Ark",
"the Ark protocol", or an "Ark server". Those are the descriptions
crates.io shows, so they are the most visible surface we have. Arkade is
a distinct system, and other teams ship unrelated protocols under the
"Ark" name, so the old wording invited a conflation we do not want.

Rewrite the descriptions and the crate READMEs to use current terms: the
operator instead of "Ark/Arkade server", virtual output instead of VTXO,
batch swap instead of round, and onchain instead of "on-chain".

Also fix the ark-rs landing page on docs.rs. It rendered ark_core alone,
because ark_client and ark_grpc sit behind non-default features and the
crate carried no docs.rs metadata and no crate-level documentation. Add
both, register cfg(docsrs) with the workspace check-cfg list, and give
the root README a docs.rs badge and a direct link instead of a search
query.

Verified with cargo check and cargo doc on stable, and with
RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features: all three
re-exports now render, with feature badges on client and grpc.

Refs #216, #205
@coderabbitai

coderabbitai Bot commented Aug 18, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e1943d51-d9c5-413b-a07b-4acb122f30f0

📥 Commits

Reviewing files that changed from the base of the PR and between adcb5a8 and 0295152.

📒 Files selected for processing (15)
  • Cargo.toml
  • README.md
  • ark-bdk-wallet/Cargo.toml
  • ark-bdk-wallet/README.md
  • ark-client/Cargo.toml
  • ark-client/README.md
  • ark-core/Cargo.toml
  • ark-delegator/Cargo.toml
  • ark-grpc/Cargo.toml
  • ark-grpc/README.md
  • ark-introspector-client/Cargo.toml
  • ark-rest/Cargo.toml
  • ark-rest/README.md
  • ark-rs/Cargo.toml
  • ark-rs/src/lib.rs

Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review.


Walkthrough

The PR aligns Arkade terminology across workspace metadata and READMEs. It adds crate badges and updated documentation links, and configures ark-rs for docs.rs generation with crate-level documentation.

Changes

Arkade SDK documentation alignment

Layer / File(s) Summary
docs.rs configuration and crate documentation
Cargo.toml, ark-rs/Cargo.toml, ark-rs/src/lib.rs
The workspace permits the docsrs cfg condition. ark-rs enables all docs.rs features and documents installation, features, TLS, and module exports.
SDK and crate descriptions
README.md, ark-*/Cargo.toml, ark-*/README.md
Metadata and README content now describe Arkade wallets, operator transports, delegate services, introspector services, and transaction utilities.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 02951

This PR updates documentation terminology and improves the ark-rs documentation landing page without changing application logic; no actionable merge-blocking risk remains after normal checks and review.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the terminology updates and the docs.rs landing page improvements.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/terminology-and-docsrs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@luckysori luckysori left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@arkana-ai-bot arkana-ai-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation and metadata only — no protocol logic, signing paths, VTXO handling, or public Rust symbols are touched. No security or protocol concerns.

Nit 1 — minor terminology drift in ark-delegator

ark-delegator/Cargo.toml description is changed to "Arkade delegate services", but ark-delegator/README.md (line 3) and the root README.md (crates table) still read "Arkade delegator services". The two terms mean different things in a delegation protocol. Whichever form is canonical, the three surfaces should agree.

Nit 2 — hardcoded version in crate-level doc

ark-rs/src/lib.rs lines ~20-21 (the # Install snippet):

ark-rs = { version = "0.10.1", features = ["client", "grpc"] }

Pinning an exact version in a doc comment will become stale on every release. Consider "0.10" (semver-compat range) or a MAJOR.MINOR placeholder, which is the convention most Rust crates use for install snippets.

Danger warning ("Source changed with no test changes") is a false positive here — there is nothing runtime-behavioural to test in a docs/metadata pass.

The cfg_attr(docsrs, feature(doc_cfg)) / doc(cfg(feature = "…")) pattern is correct and is only activated under the nightly docs.rs build; stable consumers are unaffected. The check-cfg extension to add cfg(docsrs) at the workspace level is the right fix for the unexpected_cfgs lint. No objection to merging once the nits above are decided on.

@luckysori
luckysori merged commit 59818f8 into master Aug 18, 2026
28 of 30 checks passed
@gringokiwi

Copy link
Copy Markdown
Contributor Author

The formatting-dprint failure on this PR is not from these changes. It is SECURITY.md, unformatted on master since #266 and untouched here — #272 fixes it.

Verified: with #272's change applied, dprint check reports no differences on this branch.

The e2e_boltz_submarine failure also looks unrelated to a docs-only diff. Worth a re-run once #272 lands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants