Files
Johnathan Corgan 5119b0f5f3 Add a workspace with an empty no_std fips-core crate
Start the no_std core as a second workspace member. The crate is empty:
it holds the rule that code in it builds for any target with an
allocator (no std, no async runtime, no OS calls, no target cfg), and
the root crate does not depend on it yet, so nothing that builds or
ships changes. The root package stays first in Cargo.toml with its
version line untouched, since the packaging scripts read the release
version from it, and the core is fixed at 0.0.0 with publish = false so
releases keep a single bump site.

default-members names both crates, so the bare cargo clippy and test
commands in local CI and GitHub CI cover the core as well as the root
package.

Add a fence to both runners: clippy and the tests of the core on its
own, so a dependency feature that only the root crate enables cannot
hide one the core needs.

Pin the privileged interface-binding step to the fips package's lib
test binary. With two lib test executables, `tail -1` picked whichever
cargo listed last, and the core's binary passes the ethernet filter
having run nothing. The step now also runs under bash with pipefail and
fails unless at least one test passed.

Widen the comment-reference, portable-atomics and log-string guards to
core/src/, and add core/ to the stale-binary checks of the mdns,
native-api and deb-install harnesses, so code that later moves into the
core stays checked. Copy core/ into the two nostr relay example images,
whose build would otherwise fail to load the workspace manifest, and
give the standalone BLE spike under testing/ble an empty workspace table
of its own, so cargo keeps loading it as its own project rather than
refusing it as an unlisted member of the root workspace.


Add core/README.md for anyone reading or adding code under core/: what the crate is for, the rules its code follows, how to add a dependency without letting workspace feature unification hide a missing feature, how tests work under no_std, a checklist for moving a module in from the root crate, and the checks to run before a change.
2026-10-11 17:08:56 +00:00
..