Skip to content

fix: replace mo:base references in optimization and randomness guides #122

@marc0olo

Description

@marc0olo

Two docs pages reference `mo:base` in notes about upstream examples. Rather than patching the notes, the right fix is a purpose-built example and a full guide rewrite.

Current state

  • `docs/guides/backends/randomness.md` — notes that `motoko/random_maze` in `dfinity/examples` uses `mo:base/Random.Finite`
  • `docs/guides/canister-management/optimization.md` — notes that `motoko/low_wasm_memory` uses legacy `mo:base`

Plan

randomness.md (primary scope)

Per issue #44, create a new `random_lottery` example (Motoko + Rust, Ninja-enabled) with three focused regions:

Region What it shows
`raw_rand_call` Calling the management canister's `raw_rand`
`random_in_range` Deriving a bounded `Nat` from the 32-byte result
`fair_selection` Picking a winner from a list

Then:

  1. Add region markers + `mops.toml` in a PR to `dfinity/examples`
  2. Bump `.sources/examples` submodule
  3. Rewrite `randomness.md` → `randomness.mdx` using `` — the `mo:base` note disappears naturally
  4. Keep `random_maze` as a "see also" link (no note about `mo:base`)

The example is backend-only; ICP Ninja provides the UI for calling canister methods.

optimization.md (separate, smaller fix)

Remove the note about `motoko/low_wasm_memory` using legacy `mo:base` — the inline snippet in the page is already the correct `mo:core` reference. This is a one-line text change, independent of the `random_lottery` work.

Out of scope

Updating `random_maze` itself — the maze algorithm is too complex to serve as a teaching example for randomness patterns.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions