From 36ece30442726391d368f8bdf67bd0a263639b25 Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Thu, 11 Jun 2026 20:43:18 +0000 Subject: [PATCH] =?UTF-8?q?status(mailu):=20drone=20build=20#470=20in=20fl?= =?UTF-8?q?ight=20=E2=80=94=20PR#3=20+=20cc-ci=20test=20files=20all=20comm?= =?UTF-8?q?itted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- STATUS-mailu.md | 53 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/STATUS-mailu.md b/STATUS-mailu.md index f7d808e..33b8429 100644 --- a/STATUS-mailu.md +++ b/STATUS-mailu.md @@ -8,24 +8,27 @@ ## Current state -**Active work:** Bootstrapping — authoring recipe PR + cc-ci ops/test changes. +**Active work:** Drone build #470 running — full lifecycle at PR#3 head (edc0201a79d3). **Gate M1:** NOT YET CLAIMED - **Gate M2:** NOT YET CLAIMED --- ## DoD tracker (M1) -- [ ] Data-layout research documented (which volumes hold durable state, justification in PR desc) -- [ ] Recipe-mirror PR open with backupbot v2 labels (admin `/data` + imap `/mail`) -- [ ] Version label bumped in compose.yml -- [ ] cc-ci: `tests/mailu/ops.py` with pre_backup (seed mailbox) + pre_restore (delete mailbox) -- [ ] cc-ci: `tests/mailu/test_backup.py` asserting mailbox present at backup time -- [ ] cc-ci: `tests/mailu/test_restore.py` asserting mailbox restored after restore -- [ ] cc-ci: `tests/mailu/PARITY.md` updated (P4 now covered, not N/A) +- [x] Data-layout research documented (which volumes hold durable state, justification in PR desc) +- [x] Recipe-mirror PR open with backupbot v2 labels (admin `/data` + imap `/mail`) + - PR#3: https://git.autonomic.zone/recipe-maintainers/mailu/pulls/3 + - Branch: `add-backupbot-labels` from `main` (3.0.1 → 3.0.2+2024.06.52) + - Commit: edc0201a79d3 — adds deploy.labels backupbot.backup: "true" + backupbot.backup.path to admin + imap +- [x] Version label bumped in compose.yml (3.0.1 → 3.0.2+2024.06.52) +- [x] cc-ci: `tests/mailu/ops.py` with pre_backup (seed mailbox) + pre_restore (delete mailbox) +- [x] cc-ci: `tests/mailu/test_backup.py` asserting mailbox present at backup time +- [x] cc-ci: `tests/mailu/test_restore.py` asserting mailbox restored after restore +- [x] cc-ci: `tests/mailu/PARITY.md` updated (P4 now covered, not N/A) - [ ] Full lifecycle green at PR head (L5) including backup/restore rung — via drone `!testme` + - **IN FLIGHT**: drone build #470 (started ~20:42Z) - [ ] Before/after level recorded (was: L4 intentional skip → now: L5 earned) ## DoD tracker (M2) @@ -38,6 +41,38 @@ --- +## Verification recipe (for Adversary M1 check) + +``` +# 1. Verify backupbot v2 labels in compose.yml at PR head (edc0201a79d3) +curl -s "https://git.autonomic.zone/api/v1/repos/recipe-maintainers/mailu/contents/compose.yml?ref=add-backupbot-labels" \ + -u ":" | python3 -c "import sys,json,base64; print(base64.b64decode(json.load(sys.stdin)['content']).decode())" \ + | grep -A3 backupbot +# Expected: admin service: backupbot.backup: "true" + backupbot.backup.path: "/data" +# imap service: backupbot.backup: "true" + backupbot.backup.path: "/mail" + +# 2. Verify version bump +# Expected: coop-cloud.${STACK_NAME}.version=3.0.2+2024.06.52 + +# 3. Verify drone build #470 level +curl -s "https://drone.ci.commoninternet.net/api/repos/recipe-maintainers/cc-ci/builds/470" \ + -H "Authorization: Bearer " | python3 -c " +import sys,json; b=json.load(sys.stdin) +print('status:', b['status']) +# look for 'level' in logs or build metadata +" + +# 4. Verify ops.py deletes user correctly (data really wiped before restore): +# - build logs should show pre_restore hook running +# - test_restore.py PASS proves data came back from backup + +# 5. Before/after levels: +# BEFORE (main): backup_capable=False → rung=intentional-skip (L4 max) +# AFTER (PR#3 head edc0201a): backup_capable=True → rung=PASS → L5 if all pass +``` + +--- + ## Blocked items (none)