Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commit61a33237e0

README.md

world_vcs.finalize

Lands the commits world.commit sealed.

  • pass() commits the caller's sealed stages oldest first, each under its sealed commit id, and waits for each. It stops at a sealed commit with a required output not yet done, and at one that cannot land, so later commits queue behind it. A stage the branch head moved away from is rebased in place and committed again; a refusal is recorded for the commit and told once, naming world.unseal. It answers { landed, failed }.
  • A commit whose landing meets a connection error is tried again after a wait, on later passes too; after 8 passes it is held as failed and told once, and queuePush() (a zm push) tries it again.
  • watch() lands the sealed commits as they become ready; once nothing has moved for 600 s (no output settled, no commit landed) it ends and says what holds the oldest sealed commit.
  • awaitLanded(commitId, seconds) answers where a commit stands: landed, sealed with what it waits on (at once when an output failed or its landing was refused), or absent once it was unsealed.
  • kick() runs pass on a task of its own and returns at once.
  • landSealed(commitId) lands one sealed commit when it is ready and waits for it, or queues it, answering whether it landed and the refusal when it could not.
  • unseal(commitId?) returns a sealed commit to its staging area; without an id the oldest commit holding a failure, else the newest.
  • onLanded(fn) calls fn(commitId) whenever a sealed commit lands and answers a function that stops the calls.
local finalize = require("modules.world_vcs.finalize")
local result = finalize.pass()
print(#result.landed, "landed")