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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions