mirror of
https://github.com/urbit/shrub.git
synced 2024-09-11 20:27:19 +03:00
Merge remote-tracking branch 'origin/jm/homebase' into philip/tomb
This commit is contained in:
commit
e457a4c15e
@ -216,7 +216,7 @@ Hoon kernel (anything under [`pkg/arvo/sys/`][sys]) is bootstrapped from a
|
||||
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
|
||||
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 `base` desk in `%clay`.
|
||||
|
||||
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
|
||||
|
@ -326,7 +326,7 @@ separate releases.
|
||||
(**Note**: the following steps are automated by some other Tlon-internal
|
||||
tooling. Just ask `~nidsut-tomdun` for details.)
|
||||
|
||||
For Urbit OS updates, this means copying the files into ~zod's %home desk. The
|
||||
For Urbit OS updates, this means copying the files into ~zod's %base desk. The
|
||||
changes should be merged into /~zod/kids and then propagated through other galaxies
|
||||
and stars to the rest of the network.
|
||||
|
||||
@ -335,10 +335,10 @@ For consistency, I create a release tarball and then rsync the files in.
|
||||
```
|
||||
$ wget https://github.com/urbit/urbit/archive/urbit-os-vx.y.tar.gz
|
||||
$ tar xzf urbit-os-vx.y.tar.gz
|
||||
$ herb zod -p hood -d "+hood/mount /=home="
|
||||
$ rsync -zr --delete urbit-urbit-os-vx.y/pkg/arvo/ zod/home
|
||||
$ herb zod -p hood -d "+hood/commit %home"
|
||||
$ herb zod -p hood -d "+hood/merge %kids our %home"
|
||||
$ herb zod -p hood -d "+hood/mount /=base="
|
||||
$ rsync -zr --delete urbit-urbit-os-vx.y/pkg/arvo/ zod/base
|
||||
$ herb zod -p hood -d "+hood/commit %base"
|
||||
$ herb zod -p hood -d "+hood/merge %kids our %base"
|
||||
```
|
||||
|
||||
For Vere updates, this means simply shutting down each desired ship, installing
|
||||
|
@ -18,45 +18,45 @@ cleanup () {
|
||||
trap cleanup EXIT
|
||||
|
||||
# Update pill strategy to ensure correct staging
|
||||
herb ./pier -p hood -d "+hood/mount /=home="
|
||||
herb ./pier -p hood -d "+hood/mount /=base="
|
||||
|
||||
until [ -d ./pier/home ]; do
|
||||
until [ -d ./pier/base ]; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Update :lens, :dojo and dependencies
|
||||
# FIXME: reduce this list
|
||||
cp $ARVO/app/lens.hoon ./pier/home/app/
|
||||
cp $ARVO/app/dojo.hoon ./pier/home/app/
|
||||
cp $ARVO/lib/plume.hoon ./pier/home/lib/
|
||||
cp $ARVO/lib/server.hoon ./pier/home/lib/
|
||||
cp $ARVO/lib/sole.hoon ./pier/home/lib/
|
||||
cp $ARVO/lib/xray.hoon ./pier/home/lib/
|
||||
cp $ARVO/lib/pprint.hoon ./pier/home/lib/
|
||||
cp $ARVO/app/lens.hoon ./pier/base/app/
|
||||
cp $ARVO/app/dojo.hoon ./pier/base/app/
|
||||
cp $ARVO/lib/plume.hoon ./pier/base/lib/
|
||||
cp $ARVO/lib/server.hoon ./pier/base/lib/
|
||||
cp $ARVO/lib/sole.hoon ./pier/base/lib/
|
||||
cp $ARVO/lib/xray.hoon ./pier/base/lib/
|
||||
cp $ARVO/lib/pprint.hoon ./pier/base/lib/
|
||||
|
||||
mkdir -p ./pier/home/mar/lens/
|
||||
mkdir -p ./pier/base/mar/lens/
|
||||
|
||||
cp $ARVO/mar/lens/* ./pier/home/mar/lens/
|
||||
cp $ARVO/mar/lens/* ./pier/base/mar/lens/
|
||||
|
||||
cp $ARVO/sur/lens.hoon ./pier/home/sur/
|
||||
cp $ARVO/sur/plum.hoon ./pier/home/sur/
|
||||
cp $ARVO/sur/sole.hoon ./pier/home/sur/
|
||||
cp $ARVO/sur/xray.hoon ./pier/home/sur/
|
||||
cp $ARVO/sur/lens.hoon ./pier/base/sur/
|
||||
cp $ARVO/sur/plum.hoon ./pier/base/sur/
|
||||
cp $ARVO/sur/sole.hoon ./pier/base/sur/
|
||||
cp $ARVO/sur/xray.hoon ./pier/base/sur/
|
||||
|
||||
# Update +solid and its dependencies
|
||||
cp $ARVO/lib/pill.hoon ./pier/home/lib/
|
||||
cp $ARVO/gen/solid.hoon ./pier/home/gen/
|
||||
cp $ARVO/lib/pill.hoon ./pier/base/lib/
|
||||
cp $ARVO/gen/solid.hoon ./pier/base/gen/
|
||||
|
||||
chmod -R u+rw ./pier/home/
|
||||
chmod -R u+rw ./pier/base/
|
||||
|
||||
herb ./pier -p hood -d "+hood/commit %home"
|
||||
herb ./pier -p hood -d "+hood/unmount %home"
|
||||
herb ./pier -p hood -d "+hood/commit %base"
|
||||
herb ./pier -p hood -d "+hood/unmount %base"
|
||||
|
||||
# FIXME: horrible hack to ensure the update is applied first
|
||||
sleep 10
|
||||
|
||||
# Stage new desk for pill contents
|
||||
herb ./pier -p hood -d '+hood/merge %stage our %home'
|
||||
herb ./pier -p hood -d '+hood/merge %stage our %base'
|
||||
herb ./pier -p hood -d "+hood/mount /=stage="
|
||||
|
||||
until [ -d ./pier/stage ]; do
|
||||
|
@ -23,9 +23,9 @@ To boot a fake ship from your development files, run `urbit` with the following
|
||||
urbit -F zod -A /path/to/arvo -c fakezod
|
||||
```
|
||||
|
||||
Mount Arvo's filesystem allows you to update its contents through Unix. To do so, run `|mount` in dojo. It is most common to `|mount /=home=`.
|
||||
Mount Arvo's filesystem allows you to update its contents through Unix. To do so, run `|mount` in dojo. It is most common to `|mount /=base=`.
|
||||
|
||||
To create a custom pill (bootstrapping object) from the files loaded into the home desk, run `.my/pill +solid`. Your pill will appear in `/path/to/fakezod/.urb/put/my.pill`.
|
||||
To create a custom pill (bootstrapping object) from the files loaded into the base desk, run `.my/pill +solid`. Your pill will appear in `/path/to/fakezod/.urb/put/my.pill`.
|
||||
|
||||
To boot a fake ship with a custom pill, use the `-B` flag:
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
:: :aqua [%dojo ~[~bud ~dev] "[our eny (add 3 5)]"]
|
||||
:: :aqua [%dojo ~[~bud] "|hi ~dev"]
|
||||
:: :aqua [%wish ~[~bud ~dev] '(add 2 3)']
|
||||
:: :aqua [%peek ~[~bud] /cx/~bud/home/(scot %da now)/app/curl/hoon]
|
||||
:: :aqua [%peek ~[~bud] /cx/~bud/base/(scot %da now)/app/curl/hoon]
|
||||
:: :aqua [%dojo ~[~bud ~dev] '|mount %']
|
||||
:: :aqua [%file ~[~bud ~dev] %/sys/vane]
|
||||
:: :aqua [%pause-events ~[~bud ~dev]]
|
||||
|
@ -790,7 +790,7 @@
|
||||
++ v-clay
|
||||
=, clay
|
||||
|%
|
||||
++ start-path /(scot %p our.bowl)/home/(scot %da now.bowl)
|
||||
++ start-path /(scot %p our.bowl)/base/(scot %da now.bowl)
|
||||
::
|
||||
+$ commit
|
||||
[=tako parents=(list tako) children=(list tako) wen=@da content-hash=@uvI]
|
||||
|
@ -457,7 +457,7 @@
|
||||
^- card
|
||||
=- [%pass /export/[nom] %arvo %c %info -]
|
||||
%+ foal:space:userlib
|
||||
/(scot %p our.bowl)/home/(scot %da now.bowl)/gaze-exports/[nom]/txt
|
||||
/(scot %p our.bowl)/base/(scot %da now.bowl)/gaze-exports/[nom]/txt
|
||||
[%txt !>(dat)]
|
||||
::
|
||||
:: +peek-x: accept gall scry
|
||||
|
@ -20,7 +20,7 @@
|
||||
%- crip
|
||||
+:(scow %p .^(@p %j /(scot %p our)/code/(scot %da now)/(scot %p our)))
|
||||
=/ secrets
|
||||
.^(@t %cx :(weld /(scot %p our)/home/(scot %da now)/sec domain /atom))
|
||||
.^(@t %cx :(weld /(scot %p our)/base/(scot %da now)/sec domain /atom))
|
||||
::
|
||||
=- ?~ arg -
|
||||
(fun.q.q [%& dom.arg])
|
||||
|
@ -42,7 +42,7 @@
|
||||
::
|
||||
:- %say
|
||||
|= [[now=time @ our=ship ^] typ=$@(~ [p=term ~]) ~]
|
||||
=/ pax=path /(scot %p our)/home/(scot %da now)/gen :: XX hardcoded
|
||||
=/ pax=path /(scot %p our)/base/(scot %da now)/gen :: XX hardcoded
|
||||
=+ len=(lent pax)
|
||||
=. pax ?~(typ pax (welp pax /[p.typ]))
|
||||
:- %tang %- flop ^- tang
|
||||
|
@ -13,7 +13,7 @@
|
||||
+$ fuse-arg
|
||||
$: des=desk
|
||||
:: specified as [germ path] instead of [path germ] so
|
||||
:: users can write mate//=home= instead of [/=home= %mate]
|
||||
:: users can write mate//=base= instead of [/=base= %mate]
|
||||
::
|
||||
res=[?([%cancel ~] [bas=path con=(list [germ path])])]
|
||||
==
|
||||
|
@ -1,6 +1,6 @@
|
||||
Usage:
|
||||
|
||||
|fuse %dest /=kids= mate//~nel/home= meet//~zod/kids/track
|
||||
|fuse %dest /=kids= mate//~nel/base= meet//~zod/kids/track
|
||||
|fuse %old-desk /=kids= only-that//~nus/test=, =overwrite &
|
||||
|fuse %desk-to-cancel-fuse-into %cancel
|
||||
|
||||
|
@ -7,7 +7,7 @@ Usage:
|
||||
We support various merge strategies. A "commit" is a snapshot of
|
||||
the files with a list of parents plus a date. Most commits have
|
||||
one parent; a "merge" commit is a commit with two parents. The
|
||||
%home desk starts with an initial commit with no parents; commits
|
||||
%base desk starts with an initial commit with no parents; commits
|
||||
with several parents ("octopus merges") are possible but we don't
|
||||
generate them right now.
|
||||
|
||||
@ -72,13 +72,13 @@ We speak of merging into a destination *desk* from a source *commit*
|
||||
because while you can only merge on top of a desk, you can merge from
|
||||
historical commits. For example,
|
||||
|
||||
|merge %old our %home, =cas ud+5, =gem %init
|
||||
|merge %old our %base, =cas ud+5, =gem %init
|
||||
|
||||
will create a new desk called %old with the 5th commit in %home.
|
||||
will create a new desk called %old with the 5th commit in %base.
|
||||
You can revert the contents of a desk to what they were yesterday
|
||||
with
|
||||
|
||||
|merge %home our %home, =cas da+(sub now ~d1), =gem %only-that
|
||||
|merge %base our %base, =cas da+(sub now ~d1), =gem %only-that
|
||||
|
||||
Note this is a normal %only-that merge, which means you're creating a
|
||||
*new* commit with the old *contents*.
|
||||
|
@ -1628,7 +1628,7 @@
|
||||
:: fail.
|
||||
::
|
||||
:: We want to always use %only-that for the first remote merge.
|
||||
:: But we also want local syncs (%base to %home or %kids) to
|
||||
:: But we also want local syncs (%base to %base or %kids) to
|
||||
:: succeed after that first remote sync. To accomplish both we
|
||||
:: simply use %only-that for the first three sync merges. (The
|
||||
:: first two are from the pill.)
|
||||
|
@ -1355,7 +1355,7 @@
|
||||
::
|
||||
%+ turn
|
||||
(sort ~(tap by van.mod) |=([[a=@tas *] [b=@tas *]] (aor a b)))
|
||||
=/ bem=beam [[our %home da+now] /whey] ::TODO %base?
|
||||
=/ bem=beam [[our %base da+now] /whey] ::TODO %base?
|
||||
|= [nam=term =vane]
|
||||
=; mas=(list mass)
|
||||
nam^|+(welp mas [dot+&+q.vase typ+&+p.vase sac+&+worm ~]:vane)
|
||||
|
@ -2,7 +2,7 @@
|
||||
::
|
||||
:: With no arguments, creates and mounts a %work desk.
|
||||
:: If there are arguments, each one is created and mounted.
|
||||
:: All desks are begun by merging from our %home desk.
|
||||
:: All desks are begun by merging from our %base desk.
|
||||
::
|
||||
/- spider
|
||||
/+ strandio
|
||||
@ -16,10 +16,10 @@
|
||||
|- ^- form:m
|
||||
=* loop $
|
||||
?~ desks (pure:m !>(ok=&))
|
||||
:: |merge %work our %home
|
||||
:: |merge %work our %base
|
||||
::
|
||||
;< [=ship =desk =case:clay] bind:m get-beak:strandio
|
||||
=/ kiln-merge [i.desks ship %home case %auto]
|
||||
=/ kiln-merge [i.desks ship %base case %auto]
|
||||
;< ~ bind:m (poke-our:strandio %hood %kiln-merge !>(kiln-merge))
|
||||
;< ~ bind:m (trace:strandio leaf+"work: merged {<i.desks>}" ~)
|
||||
:: sleep 10ms to defer to new event
|
||||
|
@ -663,7 +663,7 @@
|
||||
eyre-gate
|
||||
now=~1111.1.2
|
||||
scry=scry-provides-code
|
||||
call-args=[duct=~[/gen1] ~ [%serve [~ /] [%home /gen/handler/hoon ~]]]
|
||||
call-args=[duct=~[/gen1] ~ [%serve [~ /] [%base /gen/handler/hoon ~]]]
|
||||
expected-moves=[duct=~[/gen1] %give %bound %.y [~ /]]~
|
||||
==
|
||||
:: outside requests a path that app1 has bound to
|
||||
|
@ -85,8 +85,8 @@
|
||||
:: path)
|
||||
::
|
||||
++ test-beam
|
||||
=/ b=beam [[p=~zod q=%home r=[%ud p=12]] s=/sys/zuse/hoon]
|
||||
=/ p=path /~zod/home/12/sys/zuse/hoon
|
||||
=/ b=beam [[p=~zod q=%base r=[%ud p=12]] s=/sys/zuse/hoon]
|
||||
=/ p=path /~zod/base/12/sys/zuse/hoon
|
||||
;: weld
|
||||
:: proper encode
|
||||
::
|
||||
@ -107,12 +107,12 @@
|
||||
::
|
||||
%+ expect-eq
|
||||
!> ~
|
||||
!> (de-beam /~zod/home)
|
||||
!> (de-beam /~zod/base)
|
||||
:: invalid ship
|
||||
::
|
||||
%+ expect-eq
|
||||
!> ~
|
||||
!> (de-beam /'~zodisok'/home/12/sys/zuse/hoon)
|
||||
!> (de-beam /'~zodisok'/base/12/sys/zuse/hoon)
|
||||
:: invalid desk
|
||||
::
|
||||
%+ expect-eq
|
||||
@ -122,7 +122,7 @@
|
||||
::
|
||||
%+ expect-eq
|
||||
!> ~
|
||||
!> (de-beam /~zod/home/~zod/sys/zuse/hoon)
|
||||
!> (de-beam /~zod/base/~zod/sys/zuse/hoon)
|
||||
==
|
||||
:: example values used in test
|
||||
::
|
||||
|
Loading…
Reference in New Issue
Block a user