diff --git a/.travis/in-urbit.ls b/.travis/in-urbit.ls index 02d90cb20..09470c5d8 100644 --- a/.travis/in-urbit.ls +++ b/.travis/in-urbit.ls @@ -2,7 +2,7 @@ require! <[ split ]> {through} = require 'promise-streams' {Urbit,ERROR} = require './runner.ls' -urbit = new Urbit process.argv[2 to] +urbit = new Urbit process.argv[3 to] urbit.expect ERROR .then -> process.exit 1 diff --git a/.travis/pin-vere-commit.txt b/.travis/pin-vere-commit.txt index 33a3ba110..e0667f69a 100644 --- a/.travis/pin-vere-commit.txt +++ b/.travis/pin-vere-commit.txt @@ -1 +1 @@ -ab4b327e82ff4ee21a332df8ccc426ed7c7a1897 \ No newline at end of file +89479463e5a39ef9ede4e5c414ca5c5721520100 \ No newline at end of file diff --git a/.travis/runner.ls b/.travis/runner.ls index 125f3d5e2..40c82113b 100644 --- a/.travis/runner.ls +++ b/.travis/runner.ls @@ -8,6 +8,8 @@ export class Urbit @pty = pty.spawn \urbit args @pty.on \data ~> @stdout.write it # TODO pipe? console.log "FIXME Running Ubuntu 14.04, which causes a libtinfo version info warning. Should update to 16.04." + console.log "starting vere with the following arguments:" + console.log args # @last-output = Date.now() @pty.on \data ~> @last-output = Date.now() diff --git a/.travis/test.ls b/.travis/test.ls index 8dd19ef28..f0772cb8e 100644 --- a/.travis/test.ls +++ b/.travis/test.ls @@ -13,6 +13,16 @@ Promise.resolve urbit <- urb.expect-echo "%dojo-booted" .then urb.reset-listeners! ] +.then (urb)-> + urb.note "Running /===/tests" + errs = "" #REVIEW stream reduce? + urb.every /(\/[ -~]* (FAILED|CRASHED))/, ([_,result])-> + if !errs => urb.warn "First error" + errs += "\n #result" + <- urb.line "+test, =defer |, =seed `@uvI`(shaz %reproducible)" .then + <- urb.expect-echo "%ran-tests" .then + if errs => throw Error errs + urb.reset-listeners! .then (urb)-> urb.note "Testing compilation" errs = {} #REVIEW stream reduce? @@ -44,16 +54,6 @@ Promise.resolve urbit errs := Object.keys errs if errs.length => throw Error "in #errs" urb.reset-listeners! -.then (urb)-> - urb.note "Running /===/tests" - errs = "" #REVIEW stream reduce? - urb.every /(\/[ -~]* (FAILED|CRASHED))/, ([_,result])-> - if !errs => urb.warn "First error" - errs += "\n #result" - <- urb.line "+test, =defer |, =seed `@uvI`(shaz %reproducible)" .then - <- urb.expect-echo "%ran-tests" .then - if errs => throw Error errs - urb.reset-listeners! .then -> urbit.exit 0 .catch (err)-> diff --git a/sys/vane/ford.hoon b/sys/vane/ford.hoon index 90dc751de..87b9a60aa 100644 --- a/sys/vane/ford.hoon +++ b/sys/vane/ford.hoon @@ -1561,6 +1561,11 @@ |= =build-status %_ build-status clients + :: if we've already encountered :i.subs, don't overwrite + :: + ?: (~(has by clients.build-status) [%cache new-id]) + clients.build-status + :: =/ old-clients-on-duct (~(get ju clients.build-status) [%duct duct]) :: =- (~(del by -) [%duct duct]) @@ -1725,7 +1730,9 @@ =. builds.state %+ ~(jab by builds.state) new-sub |= =build-status - build-status(clients (~(put ju clients.build-status) [%duct duct] new-client)) + %_ build-status + clients (~(put ju clients.build-status) [%duct duct] new-client) + == :: state -- @@ -5500,22 +5507,6 @@ :: nothing depends on :build, so we'll remove it :: :- removed=& - ^+ state - :: - =/ subs=(list ^build) ~(tap in ~(key by subs.build-status)) - :: for each sub, remove :build from its :clients - :: - =. builds.state - |- ^+ builds.state - ?~ subs builds.state - :: - =? builds.state (~(has by builds.state) i.subs) - :: - %+ ~(jab by builds.state) i.subs - |= build-status=^build-status - build-status(clients (~(del ju clients.build-status) [%duct duct] build)) - :: - $(subs t.subs) :: %_ state builds-by-schematic