Login
Documentation
Login

Runner. How a node runs a run's program; the run's node says where. A node offers some runners, and OCX's status lists them; a node answers a run whose runner it does not offer with ended, refused. Every runner runs its program in a fresh checkout of the run's checkout: a check-in's hash, or a branch's name, meaning its latest check-in. The runners:

For both, command is what is run, and the run's objective says in words what counts as passing. So to run something once, use command; to run it for every check-in on some branches, use ci. Special hardware is a node, not a runner: to test each check-in on dev on a board attached to a host, send a ci run whose node is that host's, such as {"runner": "ci", "command": ["make", "board-test"], "checkins": ["dev"], …}.

Subscription. What a session is given while it runs, set by two fields of its run, both optional and empty by default:

A session is first given Run HASH: OBJECTIVE. Deliveries reach its program's input whole, one at a time, in the order they arrived; one that arrives while the program is busy waits its turn. USER is the user Fossil received the artifact from. Nothing is given to, or kept for, a run that is not running, and a run that is not a session is given nothing. A run's own posts, such as its questions, answers and progress, are plain posts in its thread, with no OCX message.

Limits. What a node holds a run's program to, in the run's limits. Each is optional; a limit left out takes the node's own default, and the node's started report lists, in a limits of the same shape, every limit it applies. A node that cannot enforce a limit a run asks for answers it ended, refused.

branch and own_thread are enforced by OCX's tools, so asking for either also means no_password. A tool refuses a write these forbid, and the run goes on. Without no_password, the program's Fossil capabilities are its only limit in Fossil.