v0.24.0
Onboarding pass: a long-form Quickstart guide, the W-Mai/mirui-templates cargo-generate template repo, and infrastructure to keep the two repos pinned to matching mirui versions on every release.
Added
docs/quickstart.md: 6-section walkthrough — toolchain prerequisites, the desktop SDL hello (Cargo.toml + main.rs verbatim, verified to build on a fresh project), the ESP32-C3 path (delegates tomirui-examplesfor BSP wiring rather than duplicate a recipe that bit-rots with esp-hal releases), the Cargo workspace layout that shares UI code across multiple targets, the cargo-generate shortcut, and a "where to go next" pointer set.- Crate-level rustdoc Quick Start (
src/lib.rs): the docs.rs landing page now shows the SDL hello inline and links atdocs/quickstart.mdfor embedded, the workspace template, and the multi-target recipe. Maps the public modules so users can findapp/ecs/widget/draw/surface/ etc. without hunting through the sidebar. cargo xtask templates-bump: walks../mirui-templates/templates/forcargo-generate.tomlfiles and rewrites the[placeholders.mirui-version]default to match mirui's current major.minor. Designed to commit the change locally and let the maintainer review and push, the same patternmirui-examplesuses for itsCargo.lockbumps. Auto-invoked fromcargo xtask releaseafter the crates.io publish step. Importantly, it leaves{{mirui-version}}placeholders inside templateCargo.tomlfiles alone — those are substituted by cargo-generate at generation time.
Changed
cargo xtask bump <level>: now also rewrites themirui-macrosdependency pin in the root Cargo.toml and themirui = { version = "X.Y", ... }literals in README,docs/quickstart.md, and the crate-root rustdoc. Previous releases needed those edits made by hand; the bump is now a single command. Path-only deps (e.g.mirui-macros = { path = "../mirui-macros" }ingallery/Cargo.toml) without aversion = "..."field are left alone.- README Quick Start: bumped pinned version to
0.24, declared thesdlfeature explicitly (recent versions stopped linking SDL2 by default), reshaped the inlineui!example to use a column container aroundheader/content/footer(the xrune:( :)block accepts a single root widget below it, so siblings need a parent), and switched to the multi-line:( parent: ... world: ... :)form (the comma-separated single-line variant the previous README carried did not actually parse). - Quickstart mirui pin literals: README,
docs/quickstart.md, and the crate-level rustdoc all now pinmirui = "0.24"matching this release. - Crate-root doctest (
src/lib.rs): switched fromignoretono_runsocargo test --docactually compiles the snippet on default features. UsesFramebufSurfacewith a no-op flush callback to exercise the prelude,App::new,WidgetBuilder,ui!macro syntax,set_root, andrunend-to-end at type-check time.
Removed
mirui-macros = "0.23"from Quick Start examples: the mirui crate already re-exports the proc-macros it ships (ui!,system,animate!,timer!,trace_span!,trace_fn,compose_backend!). Declaringmirui-macrosdirectly was redundant and gave a reader two version pins to keep in sync. Verified by building a fresh project with onlymirui = { version = "0.24", features = ["sdl"] }declared.