Update CONTRIBUTING.md.

Removes references to the old Arvo repository and updates information
about pills.
This commit is contained in:
Jared Tobin 2019-07-15 08:10:53 -02:30
parent 42d8313aa7
commit f50f2e6c70
No known key found for this signature in database
GPG Key ID: 0E4647D58F8A69E4

View File

@ -92,16 +92,17 @@ source files that are denoted by comments and are actually indented one
level. level.
Hoon will be a less familiar language to many contributors. More details are Hoon will be a less familiar language to many contributors. More details are
forthcoming; for now, the `%ford` vane (in [`sys/vane/ford.hoon`][ford]) is forthcoming; for now, the `%ford` vane (in
some of the highest quality code in the kernel. [`pkg/arvo/sys/vane/ford.hoon`][ford]) is some of the highest quality code in
the kernel.
[ford]: https://github.com/urbit/arvo/blob/master/sys/vane/ford.hoon [ford]: https://github.com/urbit/urbit/blob/master/pkg/arvo/sys/vane/ford.hoon
## Kernel development ## Kernel development
Working on either C or non-kernel Hoon should not bring any surprises, but the Working on either C or non-kernel Hoon should not bring any surprises, but the
Hoon kernel (anything under `sys/` in [urbit/arvo][arvo]) is bootstrapped from Hoon kernel (anything under [`pkg/arvo/sys/`][sys]) is bootstrapped from a
a so-called *pill*, and must be recompiled if any changes are made. This should so-called *pill*, and must be recompiled if any changes are made. This should
happen automatically when you make changes, but if it doesn't, the command to happen automatically when you make changes, but if it doesn't, the command to
manually recompile and install the new kernel is `|reset` in `dojo`. This manually recompile and install the new kernel is `|reset` in `dojo`. This
rebuilds from the `sys` directory in the `home` desk in `%clay`. rebuilds from the `sys` directory in the `home` desk in `%clay`.
@ -110,14 +111,15 @@ Currently, `|reset` does not reload apps like `dojo` itself, which will still
reference the old kernel. To force them to reload, make a trivial edit to their reference the old kernel. To force them to reload, make a trivial edit to their
main source file (under the `app` directory) in `%clay`. main source file (under the `app` directory) in `%clay`.
[arvo]: https://github.com/urbit/arvo [arvo]: https://github.com/urbit/urbit/tree/master/pkg/arvo
[sys]: https://github.com/urbit/urbit/tree/master/pkg/arvo/sys
## The kernel and pills ## The kernel and pills
Urbit bootstraps itself using a binary blob called a pill (you can see it being Urbit bootstraps itself using a binary blob called a pill (you can see it being
fetched from `bootstrap.urbit.org` on boot). This is the compiled version of fetched from `bootstrap.urbit.org` on boot). This is the compiled version of
the kernel (which you can find in the `sys` directory of [urbit/arvo][arvo]), the kernel (which you can find in the `sys` directory of [Arvo][arvo]), along
along with a complete copy of the `urbit/arvo` repository as source. with a complete copy of the Arvo source.
The procedure for creating a pill is often called "soliding." It is somewhat The procedure for creating a pill is often called "soliding." It is somewhat
similar to `|reset`, but instead of replacing your running kernel, it writes similar to `|reset`, but instead of replacing your running kernel, it writes
@ -136,21 +138,31 @@ You can boot a new ship from your local pill with `-B`:
$ urbit -F zod -B path/to/urbit.pill my-fake-zod $ urbit -F zod -B path/to/urbit.pill my-fake-zod
``` ```
Ordinarily, `https://bootstrap.urbit.org/latest.pill` will be updated Pills are cached at `https://bootstrap.urbit.org` and are indexed by the first
to match whatever's on the HEAD of `master` in the `urbit/arvo` repository. 10 characters of the `git` SHA1 of the relevant commit, i.e. as
Older pills are indexed by the first 10 characters of the `git` SHA1 of the `git-[sha1].pill`. The continuous integration build uploads these pills for
relevant commit, i.e. as `git-[sha1].pill`. The continuous integration build any successful build of a commit or pull request that affects the
of the `urbit/arvo` repository uploads these pills for any successful build of `pkg/arvo/sys/` directory.
a commit or pull request that affects the `sys/` directory.
You can boot from one of these pills by passing the path to an Arvo working You can boot from one of these pills by passing the path to an Arvo working
copy with `-A` (and `-s` for *search*): copy with `-A` (and `-s` for *search*):
``` ```
$ git clone https://github.com/urbit/arvo $ git clone https://github.com/urbit/urbit
$ urbit -F zod -A path/to/arvo -s my-fake-zod $ urbit -F zod -sA urbit/pkg/arvo -s my-fake-zod
``` ```
Pills are also cached in version control via [git LFS][git-lfs]. You can find
the latest solid pill (as well as the latest so-called *brass* and *ivory*
pills) in the `bin/` directory at the repository root:
```
$ git lfs init
$ git lfs pull
```
[git-lfs]: https://git-lfs.github.com
## What to work on ## What to work on
If you are not thinking of contributing with a specific goal in mind, the If you are not thinking of contributing with a specific goal in mind, the