Skip to content

20260924 - Report per node whether a release landed, and why not - #11

Merged
Purple10101 merged 1 commit into
mainfrom
20260924-rollout-report
Sep 24, 2026
Merged

Purple10101 merged 1 commit into
mainfrom
20260924-rollout-report

Conversation

@Purple10101

Copy link
Copy Markdown
Contributor

Stacked on #10. Item 5b of ClickUp OTA deployments miss part of the fleet on every release (123zgec4tmx). Read-only: it creates nothing.

rollout_report.py gives every accepted node one verdict for the latest stable release (or the ones named):

Verdict Meaning
landed on both target versions; flagged if retina_stack is not up
test build running a -dev build
pending the rollout is waiting for it to check in, including a node offline since before the rollout
retryable failed for a reason deploy_retry would retry
not targeted no deployment of the target reached it
needs a person failed for a reason no retry fixes

Versions come from the rootfs-image and docker-compose attributes, never artifact_name. Failure reasons come from deploy_retry.classify, so the report and the retry agree.

Live run, 2026-09-24, owl-os v0.17.0 + retina-node v0.4.6.0

16 landed · 2 test build (Josh Test Nodes) · 1 pending (Roswell, offline since 2026-07-26) · 2 needs a person (ret9573ecda, retc47d6f72: power lost mid-deployment, retry not enabled).

Found while building it

A device is handed its deployment only when it checks in, so a node offline since before the rollout has no deployment yet and must read as pending. And "All devices" rollouts cover only devices accepted when they were created: three nodes accepted in September never joined the 2026-09-03 rollout despite spare slots. Onboarding covers new nodes.

13 tests; 59 with #10's. retina_stack fills in once owl-os#61's inventory script ships.

🤖 Generated with Claude Code

ret9573ecda failed two releases in a row and ran with no radar for four weeks
before anyone noticed; a rollout was judged by its statistics. The report
gives every accepted node one verdict: landed, test build, pending,
retryable, not targeted or needs a person, with the reason. Versions come
from the per-type inventory attributes and failure reasons from
deploy_retry.classify.

Two things it has to get right, both seen on the live fleet on 2026-09-24:
a device is only handed its deployment when it checks in, so Roswell, offline
since July but accepted before the rollout, is pending, not missed; and a
device accepted after a rollout was created is never offered it at all.

Run against the fleet for owl-os v0.17.0 + retina-node v0.4.6.0: 16 landed,
2 test builds, 1 pending (Roswell), 2 need a person (the 192.168.68.x site's
power cuts).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Base automatically changed from 20260924-retry-missed-failures to main September 24, 2026 13:05
@Purple10101
Purple10101 merged commit 05b6505 into main Sep 24, 2026
2 checks passed
@Purple10101
Purple10101 deleted the 20260924-rollout-report branch September 24, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant