The Sabbath¶
From sundown on Friday to sundown on Saturday, vibey rests. It writes no code, merges nothing and ships nothing. This is sub-doctrine 8.i. The heartbeat keeps going the whole time, so at sundown on Saturday everything starts again by itself.
What happens, in plain words¶
- Sundown is worked out for your machine. vibey calculates the time the sun sets where the computer is, for that exact day. It uses the same method as the US weather service's (NOAA's) sunset calculator.
- Workers stop taking jobs. Jobs already in the queue wait where they are. Nothing fails and nothing is lost.
- Commands that would start work say no, politely.
vibey newandvibey worktell you it is the Sabbath and when it ends, then stop with exit code 75 ("try again later"). Commands that only read, likevibey statusandvibey doctor, still work. - The merge train and the promotion hold. Their runs say "held for the Sabbath until ..." on the run page and finish green: paused, not failed.
- The heartbeat keeps beating. It writes "resting until
" every time, so anything watching sees that vibey is resting, not dead. - At sundown on Saturday it wakes up. The first heartbeat after sundown records that the Sabbath has ended. It starts the held merge train and promotion again, and restarts every lane that was paused.
Where does vibey think I am?¶
Run vibey sabbath (or vibey-gh sabbath status). It shows the zone, where the location
came from, how accurate it is, and when the current or next rest ends. vibey looks, in this
order:
- Your own setting, if you gave one (most accurate). Put it in this machine's
vibey.toml. Never commit it:
toml
[sabbath]
latitude = 34.97 # EXAMPLE only
longitude = -82.44
- Your computer's location service, if it is installed and allowed: CoreLocation on a
Mac (through the small
CoreLocationCLIhelper) or GeoClue on Linux. - Your time zone's main city, read from your computer's own time-zone files. This
needs no internet, but it can be tens of minutes off. For example, every clock in
America/New_Yorkwould use New York City's sunset. So vibey starts the rest earlier and ends it later, by 90 minutes unless you change it, to be safe.
vibey never looks up your location over the internet. It checks again every week, and at
once if your time zone changes. If it cannot place your machine at all, vibey doctor says
FAIL and the fixed times apply: Friday 14:00 to Saturday 23:00 local, widened.
Pausing a lane so it restarts by itself¶
A long job you run yourself (a "lane") can ask to be restarted after the Sabbath:
vibey-gh sabbath register-lane --name docs-batch --cwd ~/work/docs -- ./run-batch.sh
At sundown on Saturday the heartbeat runs ./run-batch.sh in ~/work/docs. When it
succeeds, the lane is forgotten. If it fails, the heartbeat tries again on the next beat.
Turning it off for one run¶
VIBEY_SABBATH_ENABLED=false (also 0, no, off) switches the rest off for that
process only, without touching any file. Automated checks use this: the Helm
cluster-smoke step sets it so vibey new does not decline on a Friday evening. Turning
it off anywhere else is a declared act -- prefer enabled = false in the file -- never a
missing key.
Settings¶
All the keys are in [sabbath]. The design and
its reasons are in
ADR-0072.