docs: add health files and complete the crate metadata - #157
Open
JustinKovacich wants to merge 5 commits into
Open
JustinKovacich wants to merge 5 commits into
JustinKovacich wants to merge 5 commits into
Conversation
simple-someip is the most-downloaded crate in the org and had the thinnest packaging: no keywords, no categories, no homepage, no documentation link, and no readme field, so it surfaces poorly in crates.io search relative to how much it is used. It also had no disclosure path, no conduct policy, and no contributing guide. SECURITY.md is written for SOME/IP specifically. The distinction worth stating is that E2E Profile 4/5 are safety mechanisms: a CRC is unkeyed, so anyone who can alter a payload can recompute it, and E2E protection does not make a channel tamper-resistant. Service discovery is likewise unauthenticated by design. Decode robustness - particularly bounds handling in the fixed-capacity heapless SD collections - is the part that is in scope. CONTRIBUTING.md documents the feature graph, which is the easiest thing to get wrong here, and the fact that most integration tests declare required-features so a bare `cargo test` silently skips them. `rust-version` is deliberately still absent: main.yml says choosing an MSRV is a policy decision, so this records that rather than settling it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #157 +/- ##
=======================================
Coverage 81.72% 81.72%
=======================================
Files 48 48
Lines 16178 16178
=======================================
Hits 13222 13222
Misses 2956 2956 |
The feature section spent a paragraph and six bullets describing which feature pulls in which, which is exactly the part a reader can absorb faster as a picture. A mermaid graph now carries the edges - GitHub renders it inline - and the prose keeps only what a diagram cannot say: that client/server are the executor-agnostic trait surface, that bare_metal alone is not bare-metal complete, that _alloc is private, and why tracing is gated. The 11 edges were checked against the [features] table programmatically rather than transcribed by eye. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
default is the default feature set rather than a feature like the others, and the line above the diagram already states default = ["std"], so the node was both odd and redundant. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three corrections found by reading lib.rs rather than the manifest alone. `#![no_std]` is unconditional - `std` is the feature that adds std back via `extern crate std`, not a switch that turns no_std on. The section implied the opposite by omission, and there is no no_std node to add: the axis is already the `std` node. `bare-metal-runtime` pulls `server` and not `client`, so there is no bare-metal client edge to draw. The bare-metal client path is `client` + `bare_metal` with a caller-supplied executor. Saying so avoids the diagram reading as though the client case were missing. `cargo test --all-features` was wrong and is removed: `--all-features` enables `bare-metal-runtime` alongside `std` and trips the `compile_error!` in lib.rs. Verified - it fails to compile. The graph now carries that exclusivity as a dashed link, and the nightly requirement for `impl_trait_in_assoc_type` is noted alongside it. The four remaining test commands were each checked to compile, and the ten enables edges re-checked against the [features] table. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zheylmun
approved these changes
Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this repo first
At 11,444 downloads this is the most-used crate in the org, and it had the
thinnest packaging of the four: no
keywords,categories,homepage,documentationorreadme. Worst discoverability-to-usage ratio of the set.Crate metadata
Adds
homepage,documentation,readme, plus:rust-versionis deliberately still absent.main.ymlsays: "the manifestdeclares no
rust-version… Picking one is a policy decision, not a CI one."That's your call, not something to settle inside a docs PR — so this adds a
comment recording the reasoning instead, and CI's MSRV job stays off.
SECURITY.md
Written for SOME/IP rather than as boilerplate. The point most worth stating:
Also covers that SOME/IP has no transport security and that SD offers are
unauthenticated and therefore spoofable. In scope: panics, OOB reads, unbounded
allocation, decodes accepting frames they should reject — with bounds handling
in the fixed-capacity
heaplessSD collections called out as the area ofinterest.
CONTRIBUTING.md
Focuses on what's easy to get wrong here: the
client/client-tokioandserver/server-tokiotrait-surface-vs-tokio split, whatbare_metaldoes anddoesn't give you, why
tracingis gated, and that_allocis private.Flags that most integration tests declare
required-features, so a barecargo testsilently skips them — with the four configurations to actually run.Also notes the two
harness = falseallocation witnesses, and that tripping oneis a design question rather than a test to adjust.
README
Adds docs.rs and the two license badges alongside the existing CI, Coverage and
Crates.io ones.
CODEOWNERS
* @luminartech/luv, routing only — the ruleset doesn't require code-ownerapproval, so merge behaviour is unchanged.
Code of conduct
Contributor Covenant 2.1, enforcement contact
envision-dev@microvision.com—flagging for review, since it publishes that alias.
Verification
cargo metadataparses.cargo package --no-verifysucceeds: 109 files, 1.9 MiB.🤖 Generated with Claude Code