fix(playbooks): 3.0.3 herald deploy, and a content check that survives releases

Deploys althing-core 3.0.3 to nh3-extdev and restarts the herald.
Verified by content on both boxes: PANE_SETTLE_S 0 -> 2 occurrences,
value 0.3, dist-info 3.0.1 -> 3.0.3.

The content check was hardcoded to the 3.0.1 markers, so from the next
release onward it would have kept passing while asserting nothing about
what had just been installed -- a check that verifies the previous
release is indistinguishable from one that works. It now takes the
marker and file as variables, bumped per release, with both releases'
markers recorded so the pattern is obvious rather than folklore.

That is the same defect class as the install step gated on `postbox` not
existing, which this playbook carried until last round: a guard written
correctly for the first run and never re-read on the second.

The post office container was not touched. forseti established by
import graph that althing/post_office/* imports neither changed module
-- the fix is in reach_pane, which is herald code -- and the container
has been up two hours across both herald restarts.
This commit is contained in:
2026-08-28 12:46:35 -07:00
parent 9f87ff87e1
commit cdeb57c18b
+12 -7
View File
@@ -19,19 +19,21 @@
# Rerunnable: a second run shows the install and unit steps skipped.
vars:
wheel_src: /home/lkraven/development/althing/dist/althing_core-3.0.1-py3-none-any.whl
wheel_dest: /tmp/althing_core-3.0.1-py3-none-any.whl
wheel_src: /home/lkraven/development/althing/dist/althing_core-3.0.3-py3-none-any.whl
wheel_dest: /tmp/althing_core-3.0.3-py3-none-any.whl
uv: /home/infra-ops/.local/bin/uv
tool_dir: /opt/uv-tools
bin_dir: /usr/local/bin
# ⚠ Moved off nh3-dev 2026-08-28. A stale value here does not fail loudly at
# install time — it fails in the VERIFY, which then reads as a broken deploy.
post_office: http://10.100.50.40:8390
marker: PANE_SETTLE_S
marker_file: post_office_herald.py
steps:
- name: Stage the v3.0.0 wheel
upload:
src: /home/lkraven/development/althing/dist/althing_core-3.0.1-py3-none-any.whl
src: /home/lkraven/development/althing/dist/althing_core-3.0.3-py3-none-any.whl
dest: "{{ wheel_dest }}"
mode: "0644"
@@ -107,10 +109,13 @@ verify:
shell: ALTHING_POST_OFFICE={{ post_office }} {{ bin_dir }}/postbox --handle operator handles | wc -l | awk '{ if ($1 >= 70) exit 0; else exit 1 }'
changed_when: "false"
- name: The 3.0.1 pane-route fix is present BY CONTENT, not by version string
# forseti's own checks. A dist-info directory records what was installed, not
# what the files contain — verify the code, not the label.
- name: This release's marker is present BY CONTENT, not by version string
# forseti's own checks. A dist-info directory records what was INSTALLED, not
# what the files CONTAIN — verify the code, not the label. Bump `marker` and
# `marker_file` with each release rather than trusting the version bumped.
# 3.0.1 _PANE_ID in zellij.py (pane routes)
# 3.0.3 PANE_SETTLE_S in post_office_herald.py (the write/submit race)
shell: |
SP={{ tool_dir }}/althing-core/lib/python3.13/site-packages/althing
grep -q _PANE_ID "$SP/zellij.py" && grep -q _live_pid "$SP/session_source.py"
grep -q '{{ marker }}' "$SP/{{ marker_file }}"
changed_when: "false"