Documentation and users #630
Replies: 1 comment 1 reply
-
Largely agree, though I do think we have a couple of publicly-usable crates. Specifically, I think of the
Also largely agree, though I do think
I think here we have 2 goals:
I think this is fine for now. I would like, at some point, to have a comprehensive documentation of the public gRPC endpoints (i.e., the ones exposed by the RPC component) - but maybe that's what goes into
Agreed on the definition of what's public, but I also think it is fine to include non-public refactorings in the changelog - especially the big ones (e.g., mempool refactoring). |
Beta Was this translation helpful? Give feedback.
-
Documentation and keeping things ordered is currently a bit confused in our repo. We have several places with redundant information, and therefore also often outdated information. I believe part of the problem is that we're conflating several categories of people and attempting to satisfy them all.
I'd like to
Kinds of "users"
We somewhat cater for the following groups:
Current scope
We have semi-independent documentation in the following locations
README.md
README.md
/docs
and a script to serve which I believe is just empty?The root
README.md
largely targets node operators. Subsets of this are then repeated in some crates.The gRPC API is documented in both the proto definitions, as well as the specific crates.
Suggestions
We don't really have publicly useable crates. They're large just a code organisation mechanism for the
node
andfaucet
binaries. I think we should simplify all of their readme's to just give a one-liner summary of what it is, and then link to the main readme. These are effectively internal-only imo.Separate the node operator docs from the developer docs. Right now the repo homepage is largely for node operators but its awkward because that's also the landing page for our developers. I suggest we treat the main readme as a landing page, move the operator docs somewhere else and just link to them. The landing page would basically summarise and link to the various entry-points i.e.
bin/node
or/docs/*
etc, along with the usual license and disclaimers.The node operator docs could move either to
docs/operator/*
or become thebin/node/
readme (which is currently barren).I'd like to add developer docs to
docs/dev/*
. We don't have anything there yet, but I like the idea of architecture (example). This would also be the place to add style, conventions etc.proto
I think until we've figured out a good enough automatic or manual solution for documenting these properly, I would suggest we:
.proto
files, andI'd also still prefer to simplify this by only keeping a single proto copy and generating the rest the build.rs, but that's a separate argument :)
Changelog
Could we define what we consider to be part of our public API? As in, what should(n't) go into the changelog and what constitutes a breaking change. This doesn't have to be perfect; just so we're aligned.
My perspective is that our "public" interfaces are:
miden-node
configuration and CLImiden-faucet
configuration and CLINotably, this excludes the store and block-producer APIs.
Beta Was this translation helpful? Give feedback.
All reactions