Skip to content

v0.5.0 — Bare-Metal Ready

Pre-release
Pre-release

Choose a tag to compare

@jamesgober jamesgober released this 21 May 09:27
· 1 commit to main since this release

v0.5.0 — Bare-Metal Ready

clock-lib already claimed no_std support; this release proves it. The crate now compiles cleanly against a bare-metal embedded target on every CI run, with the feature split documented in Cargo.toml, the crate-level docs, the README, and the API reference. The library is ready for a 1.0 cut.

Highlights

  • no_std verified, not assumed. A new CI job builds the crate against thumbv7em-none-eabihf (Cortex-M4 with FPU) and against the host target with --no-default-features. Both must pass before a merge.
  • Feature surface, written down. With the default std feature on, you get every reading type and the Clock trait. With std off, you get the VERSION constant — the readings themselves require an OS clock and are honestly gated.
  • Doc polish. Every documentation page now cross-links to every other (Home / API / Performance / Guidelines). The lib.rs crate docs explain the feature flags inline. The performance doc references the REPS regression gate.

What's New

Added

  • CI: no_std build job using thumbv7em-none-eabihf plus a host --no-default-features check.
  • src/lib.rs: feature-flag section in the crate-level documentation.
  • README.md: a no_std installation snippet alongside the standard one.
  • docs/API.md: a Feature Flags subsection under Installation.

Changed

  • docs/PERFORMANCE.md: baseline commands use a generic main name; the REPS-mandated 5% regression gate is called out explicitly.
  • README "Lean & Correct" bullets call out #![forbid(unsafe_code)] and confirm the bare-metal no_std build path is verified, not aspirational.
  • Cross-doc navigation: docs/API.md and docs/GUIDELINES.md now link to docs/PERFORMANCE.md for symmetric navigation across the four core docs.

Compatibility

  • MSRV: Rust 1.85 (unchanged)
  • Edition: 2024 (unchanged)
  • Public API: unchanged from 0.4.x — no code changes required.

Upgrading From 0.4.x

[dependencies]
clock-lib = "0.5"

For no_std consumers:

[dependencies]
clock-lib = { version = "0.5", default-features = false }

What's Next

  • 1.0.0 — stable API. A soak period to confirm no regressions, then publish. The public surface is feature-complete; 1.0 is a stability promise, not a feature drop.

Full Changelog: v0.4.0...v0.5.0