.github | ||
bin | ||
doc/spec | ||
extras | ||
nix | ||
pkg | ||
sh | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.ignore | ||
.mailmap | ||
.stylish-haskell.yaml | ||
CONTRIBUTING.md | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
LICENSE.txt | ||
MAINTAINERS.md | ||
Makefile | ||
README.md | ||
shell.nix | ||
test-desk.bill | ||
vere-version |
Developer Environment Setup
The quickest way to get set up to play with Shrubbery and Sky is to boot a comet and run |install ~met %neo
. You could also boot a moon for this.
When you boot your ship you should use the --loom 33
flag, which allocates 8GB of memory on your machine for your ship. During Shrubbery development you could end up nuking and restarting the %neo agent many times, which will quickly use up the 2GB of memory ships are allocated by default. If/when your ship runs out of memory, just boot a new one and copy your work into that.
If you want to work from the GitHub repo…
- Clone urbit/shrub to your machine. (The
develop
branch is the latest stable build.) - Boot a fakeship
> |new-desk %neo
on the fakeship> |mount %neo
$ rsync -avL path/to/pkg/shrub/* path/to/fakeship/neo
> |commit %neo
> |install our %neo
This will start the %neo agent which runs the Shrubbery prototype. Once that's finished booting, which will take a few minutes, go to <localhost:port>/neo/sky
to access Sky.
When you want to move changes from your local repo to the fakeship, repeat the rsync -avL
command above. The %neo agent can do incremental builds and will make changes to your /con
and /imp
files as you'd expect, but if you make a change to a /pro
file you'll have to |nuke %neo
and |revive %neo
.