exercism / unison

Exercism exercises in Unison.
https://exercism.org/tracks/unison
MIT License
3 stars 19 forks source link

HELP.md missing step to pull lib.base #101

Open softmoth opened 1 year ago

softmoth commented 1 year ago

With a fresh install of the current version of UCM, it appears that the base library is not included. It is required to run pull unison.public.base.latest lib.base at the UCM prompt, or else basic types (Text for example) are not found and nothing works.

I've never installed Unison, so I'm bumbling around with no clue in a strange system. Fortunately a kind soul left a comment on Exercism's Youtube video to help out.

Another comment mentions needing fork .base lib.base. That command caused an error for me, but fortunately it seems it's not needed. I don't know what the right procedure for getting started is, but it would be great to have it spelled out a bit more in HELP.md for the current version of Unison. To be fair, the Unison Quickstart guide also does not mention anything about it, despite what appears to be a significant effort to make the docs and system friendly to new users.

How to repeat

quickstart/main> cd .exercism.hello_world

  ☝️  The namespace .exercism.hello_world is empty.

.exercism.hello_world>
.exercism.hello_world> ls

  nothing to show

.exercism.hello_world> add

  😶

  There's nothing for me to add right now.

  Hint: I'm currently watching for definitions in .u files under the
        ~/g/exercism/unison/hello-world directory. Make sure you've updated something there
        before using the `add` or `update` commands, or use `load` to load a file explicitly.

.exercism.hello_world> load hello.u

    ❓

    I couldn't resolve any of these symbols:

        2 | hello.hello : Text

    Symbol   Suggestions

    Text     No matches

.exercism.hello_world> fork .base lib.base

  ⚠️

  The namespace .base doesn't exist.

.exercism.hello_world> pull unison.public.base.latest lib.base

  Downloaded 779 entities.

  ✅

  Successfully pulled into lib.base, which was empty.

.exercism.hello_world> fork .base lib.base

  ⚠️

  The namespace .base doesn't exist.

.exercism.hello_world> fork lib.base

  `fork src dest`creates the namespace `dest` as a copy of `src`.

.exercism.hello_world> load hello.u

  I found and typechecked these definitions in hello.u. If you do an `add` or `update`, here's
  how your codebase would change:

    ⍟ These new definitions are ok to `add`:

      hello.hello : Text

.exercism.hello_world> add

  ⍟ I've added these definitions:

    hello.hello : Text

.exercism.hello_world> load hello.test.u

  I found and typechecked these definitions in hello.test.u. If you do an `add` or `update`,
  here's how your codebase would change:

    ⍟ These new definitions are ok to `add`:

      hello.test  : Test
      hello.tests : [Result]

  Now evaluating any watch expressions (lines starting with `>`)... Ctrl+C cancels.

    6 | test> hello.tests = runAll [hello.test]

    ✅ Passed : Passed 1 tests.

.exercism.hello_world>

System information

Arch Linux Latest (releases/M5g) ucm-linux.tar.gz downloaded from https://github.com/unisonweb/unison/releases/download/release%2FM5g/ucm-linux.tar.gz