diff --git a/pkg/arvo/lib/hood/kiln.hoon b/pkg/arvo/lib/hood/kiln.hoon index 584e8960c..b2e938527 100644 --- a/pkg/arvo/lib/hood/kiln.hoon +++ b/pkg/arvo/lib/hood/kiln.hoon @@ -248,6 +248,9 @@ =. ..on-init abet:(install-local:vats %base) =? ..on-init ?=(?(%earl %duke %king) (clan:title our)) abet:(install:vats %base sop %kids) + :: + :: watch for gall reloading + =. ..on-init abet:gall-lyv:vats :: install other desks :: =/ dez=(list desk) ~(tap in desks) @@ -337,10 +340,12 @@ abet:(install:vats %base our %base) =? kiln ?=(^ old-ota) abet:(install:vats %base [her sud]:u.old-ota) - =. kiln - =/ kel (fall wef zuse/zuse) + =? kiln (lth old-version %7) + abet:gall-lyv:vats + =? kiln ?=(^ wef) + :: $% is a hack to workaround an initialization bug =/ except=(set desk) (sy %base %kids ~) - (bump:vats kel except force=%.n) + (bump:vats u.wef except force=%.n) =. wef ~ abet:kiln :: @@ -416,6 +421,18 @@ ++ sync-da (warp %sync [%sing %w da+now /]) ++ sync-ud (warp %sync [%sing %w ud+aeon:ral /]) ++ download (warp %download [%sing %v ud+aeon:ral /]) + ++ gall-lyv + =/ paths=(set [care:clay path]) + %- sy + :~ [%z /sys/hoon/hoon] + [%z /sys/arvo/hoon] + [%z /sys/lull/hoon] + [%z /sys/zuse/hoon] + [%z /sys/vane/gall/hoon] + == + %+ clay-card %gall-lyv + [%warp our %base ~ %mult da+now paths] + :: ++ warp |= [s=term r=rave] (clay-card s %warp ship:ral desk:ral `r) @@ -521,6 +538,11 @@ =/ rel ral =. rail.rak `rel(paused &, aeon 0) vats + :: + :: +gall-lyv: watch gall source for reloading + ++ gall-lyv + =. vats (abed %base) + (emit gall-lyv:pass) :: +remove-upstream: stop listening to an upstream for changes :: ++ remove-upstream @@ -674,6 +696,7 @@ %download (take-download syn) %merge-main (take-merge-main syn) %merge-kids (take-merge-kids syn) + %gall-lyv (take-gall-lyv syn) == :: ++ take-find @@ -712,6 +735,10 @@ ~> %slog.(fmt "cancelled (2) install into {here}, retrying") reset ~> %slog.(fmt "finished downloading update for {here}") + ?. (get-remote-diff our loc now [ship desk aeon]:ral) + ~> %slog.(fmt "remote is identical to {here}, skipping") + =. rail.rak `%*(. ral aeon +(aeon:ral)) + (emit sync-ud:pass) =/ old-weft `weft`[%zuse zuse] =/ new-weft ?: =(our ship:ral) @@ -825,9 +852,9 @@ =. vats (emit (diff:give %merge-fail loc rak p.p.syn)) vats =. vats take-commit - ~> %slog.(fmt "merging %base into %kids at {}") ?. =(%base loc) vats + ~> %slog.(fmt "merging %base into %kids at {}") (emit merge-kids:pass) :: ++ take-merge-kids @@ -845,6 +872,17 @@ (emit (diff:give %merge-fail %kids rak p.p.syn)) == :: + ++ take-gall-lyv + |= syn=sign-arvo + ^+ vats + =. vats gall-lyv + =/ vets ~(tap in ~(key by ark)) + |- + ?~ vets vats + =. vats (abed i.vets) + =. vats update-running-dudes + $(vets t.vets) + :: ++ take-onto |= [=wire syn=sign-arvo] ^+ kiln diff --git a/pkg/arvo/tmp/base.jam b/pkg/arvo/tmp/base.jam index 933d0452e..195ceaf7b 100644 --- a/pkg/arvo/tmp/base.jam +++ b/pkg/arvo/tmp/base.jam @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bdc0d04b806adf99ca83271bee4f48d47896885367425d9f5bb9c833a03cab41 -size 3424458 +oid sha256:77a1db934f8fe10b1ec2a2cdb91f6293a705a6a1fcae8c065e53223dfe0a3e59 +size 3425897 diff --git a/pkg/arvo/tmp/garden.jam b/pkg/arvo/tmp/garden.jam index 6235770d5..bdaba8f8a 100644 --- a/pkg/arvo/tmp/garden.jam +++ b/pkg/arvo/tmp/garden.jam @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:41adc2a69b36c4789ad0d03f0bd013bdf590fbaec5764931864a09573b6dda10 -size 375596 +oid sha256:75d5d90474b88dff4b2d5f7d909adb63c376b8393ea330829753fa1842e8b346 +size 376411 diff --git a/pkg/base-dev/sur/hood.hoon b/pkg/base-dev/sur/hood.hoon index c53ad0437..f317b4d59 100644 --- a/pkg/base-dev/sur/hood.hoon +++ b/pkg/base-dev/sur/hood.hoon @@ -152,6 +152,8 @@ ++ read-bill |= [our=ship =desk now=@da] =/ pax (en-beam [our desk da+now] /desk/bill) + ?. (~(has in .^((set ^desk) cd/~[(scot %p our) ~ (scot %da now)])) desk) + *(list dude) ?. .^(? cu/pax) *(list dude) .^((list dude) cx/pax) @@ -171,12 +173,18 @@ ?~ upstream (read-bill local) ?: =(ship.u.upstream our.local) - (read-bill local) + (read-bill local(desk desk.u.upstream)) (read-bill-foreign u.upstream) =/ want (get-apps-want all rein) =/ have (get-apps-live local) [want (skip have ~(has in (sy want)))] :: +++ get-remote-diff + |= [our=ship here=desk now=@da her=ship there=desk when=aeon] + =+ .^(our-hash=@uv cz/[(scot %p our) here (scot %da now) ~]) + =+ .^(her-hash=@uv cz/[(scot %p her) there (scot %ud when) ~]) + !=(our-hash her-hash) +:: ++ get-apps-live |= [our=ship =desk now=@da] ^- (list dude) diff --git a/pkg/garden/app/docket.hoon b/pkg/garden/app/docket.hoon index edb556f4e..c00cfa566 100644 --- a/pkg/garden/app/docket.hoon +++ b/pkg/garden/app/docket.hoon @@ -329,9 +329,14 @@ ?+ p.cage.sign `state %thread-fail =+ !<([=term =tang] q.cage.sign) - =. charges (new-chad:cha hung+'glob-failed') - :- ~[add-fact:cha] - ((slog leaf+"docket: thread failed; will retry" leaf+ tang) state) + ?. =(term %cancelled) + =. charges (new-chad:cha hung+'glob-failed') + :- ~[add-fact:cha] + ((slog leaf+"docket: thread failed;" leaf+ tang) state) + %- (slog leaf+"docket: thread cancelled; retrying" leaf+ tang) + =. charges (new-chad:cha %install ~) + :_ state + [add-fact:cha fetch-glob:cha] :: %thread-done =+ !<(=glob q.cage.sign)