131 lines
5.8 KiB
Markdown
131 lines
5.8 KiB
Markdown
# STATUS — phase cfold (custom-folder collapse)
|
|
|
|
**Phase:** cfold — collapse `functional/`+`playwright/` into `custom/`
|
|
**Builder:** autonomic-bot
|
|
**Updated:** 2026-06-12
|
|
|
|
---
|
|
|
|
## M1 — PASS
|
|
|
|
Gate result: `REVIEW-cfold.md` 2026-06-12T16:20Z -> **M1 PASS**
|
|
|
|
Inputs for verification:
|
|
- Implementation commit: `44e0242` (`feat(cfold): canonicalize custom test layout`)
|
|
|
|
Completed in this checkpoint:
|
|
- discovery.py: `custom/` canonical + deprecated aliases with warnings
|
|
- `git mv` all 64 custom tests (60 functional + 4 playwright) across 20 recipes
|
|
- helper modules moved alongside their tests into `custom/`
|
|
- sys.path refs updated in mailu lifecycle overlays
|
|
- docs updated (`README.md`, `recipe-customization.md`, `testing.md`, `enroll-recipe.md`)
|
|
- unit tests updated (`test_discovery.py`, `test_discovery_phase2.py`, `test_manifest.py`)
|
|
- manifest.py now reports canonical `custom` counts
|
|
|
|
WHAT:
|
|
- M1 implementation is complete: custom-test discovery is canonicalized to `custom/`, deprecated
|
|
aliases warn loudly instead of silently dropping coverage, all cc-ci custom tests/helpers moved to
|
|
`tests/<recipe>/custom/`, manifest counts are canonicalized, and the placement-rule docs/unit tests
|
|
were updated.
|
|
|
|
HOW:
|
|
- `git ls-files "tests/*/custom/test_*.py" | wc -l`
|
|
- `git ls-files "tests/*/functional/*" "tests/*/playwright/*"`
|
|
- `for recipe in bluesky-pds cryptpad custom-html custom-html-tiny discourse drone ghost hedgedoc immich keycloak lasuite-docs lasuite-drive lasuite-meet mailu matrix-synapse mattermost-lts mumble n8n plausible uptime-kuma; do count=$(git ls-files "tests/$recipe/custom/test_*.py" | wc -l); printf "%s %s\n" "$recipe" "$count"; done`
|
|
- `nix shell nixpkgs#python311Packages.pytest -c pytest tests/unit/test_discovery.py tests/unit/test_discovery_phase2.py tests/unit/test_manifest.py -q`
|
|
|
|
EXPECTED:
|
|
- Total canonical custom tests: `64`
|
|
- Old tracked trees: no output for `functional/*` or `playwright/*`
|
|
- Per-recipe counts exactly match the baseline table below
|
|
- Focused unit suite: `18 passed`
|
|
|
|
WHERE:
|
|
- Discovery + alias warnings: `runner/harness/discovery.py`
|
|
- Canonical manifest counts: `runner/harness/manifest.py`
|
|
- Migrated custom tests/helpers: `tests/*/custom/`
|
|
- Focused unit coverage: `tests/unit/test_discovery.py`, `tests/unit/test_discovery_phase2.py`, `tests/unit/test_manifest.py`
|
|
- Placement-rule docs: `docs/recipe-customization.md`, `docs/testing.md`, `docs/enroll-recipe.md`, `README.md`
|
|
|
|
Adversary verdict:
|
|
- `machine-docs/REVIEW-cfold.md` lines 52-77
|
|
- PASS facts include: 64 canonical custom tests, zero old tracked custom trees, focused unit suite `18 passed`, deprecated-alias warning probe green, normalized `(recipe, filename)` coverage set preserved exactly (`missing []`, `extra []`).
|
|
|
|
---
|
|
|
|
## M2 — IN PROGRESS
|
|
|
|
Current work item:
|
|
- full real-CI `!testme` sweep evidence is mostly assembled; one recipe (`ghost`) remains non-green for
|
|
a cfold-neutral upgrade regression on the recipe/environment side
|
|
|
|
### M2 baseline matrix (built from live PR heads + fresh post-cfold evidence)
|
|
|
|
| Recipe | PR / ref | Expected level | Custom tests | Fresh evidence |
|
|
|---|---|---:|---:|---|
|
|
| bluesky-pds | PR #2 `f7b6c8df` | 5 | 4 | build `556` -> L5 |
|
|
| cryptpad | PR #5 `9c18c176` | 5 | 4 | build `554` -> L5 |
|
|
| custom-html | PR #2 `db9a9502` | 5 | 4 | build `541` -> L5 |
|
|
| custom-html-tiny | PR #7 `526502ba` | 5 | 1 | build `510` -> L5 |
|
|
| discourse | PR #2 `b7d8a244` | 5 | 3 | build `521` -> L5 |
|
|
| drone | PR #1 `049438e1` | 5 | 1 | build `506` -> L5 |
|
|
| ghost | PR #4 `d88f5801` | 5 | 4 | build `557` -> L1 (upgrade fail) |
|
|
| hedgedoc | PR #1 `441c411c` | 5 | 2 | build `555` -> L5 |
|
|
| immich | PR #2 `17f1649c` | 5 | 3 | build `522` -> L5 |
|
|
| keycloak | PR #3 `bfe0d16f` | 5 | 3 | build `553` -> L5 |
|
|
| lasuite-docs | PR #5 `8a06cfc2` | 5 | 5 | build `523` -> L5 |
|
|
| lasuite-drive | PR #2 `6771622b` | 5 | 3 | build `524` -> L5 |
|
|
| lasuite-meet | PR #6 `05cdafb5` | 5 | 3 | build `525` -> L5 |
|
|
| mailu | PR #4 `682ccaaa` | 5 | 3 | build `526` -> L5 |
|
|
| matrix-synapse | PR #2 `72f0176a` | 5 | 3 | build `527` -> L5 |
|
|
| mattermost-lts | PR #2 `966c6d61` | 5 | 3 | build `529` -> L5 |
|
|
| mumble | PR #1 `2b50b2f7` | 5 | 5 | build `558` -> L5 |
|
|
| n8n | PR #5 `989c44b3` | 5 | 4 | build `528` -> L5 |
|
|
| plausible | PR #3 `709a294d` | 5 | 2 | build `530` -> L5 |
|
|
| uptime-kuma | PR #3 `b0ce7942` | 5 | 4 | build `531` -> L5 |
|
|
|
|
### Ghost deviation (blocking a formal M2 claim)
|
|
|
|
`ghost` is the only recipe still preventing an M2 claim.
|
|
|
|
- Current upgrade PR head `d88f5801` (PR #4) failed again in build `557`: install/backup/restore/custom all
|
|
passed, but the upgrade op paused and rolled back before any upgrade-tier assertions could run.
|
|
- To isolate cfold from recipe-head drift, a separate probe PR #5 was opened at Ghost's last known-green
|
|
PR head `d42d0f7c` (historical build `185` = L4/L5-equivalent on 2026-06-05). That probe re-failed in
|
|
build `559` with the same upgrade pause: install/backup/restore/custom all passed, upgrade failed.
|
|
- Conclusion so far: Ghost's current failure is not caused by the `custom/` folder migration; the custom
|
|
tier still discovers and passes all 4 canonical custom tests, and the regression reproduces on the
|
|
previously-green Ghost head as an upgrade convergence failure.
|
|
|
|
### Fresh Adversary state
|
|
|
|
- `REVIEW-cfold.md` 2026-06-12T22:05:50Z: idle audit only, no new finding, no M2 claim pending.
|
|
|
|
---
|
|
|
|
## Baseline (pre-cfold) — custom test count per recipe
|
|
|
|
| Recipe | Count |
|
|
|--------|-------|
|
|
| bluesky-pds | 4 |
|
|
| cryptpad | 4 |
|
|
| custom-html | 4 |
|
|
| custom-html-tiny | 1 |
|
|
| discourse | 3 |
|
|
| drone | 1 |
|
|
| ghost | 4 |
|
|
| hedgedoc | 2 |
|
|
| immich | 3 |
|
|
| keycloak | 3 |
|
|
| lasuite-docs | 5 |
|
|
| lasuite-drive | 3 |
|
|
| lasuite-meet | 3 |
|
|
| mailu | 3 |
|
|
| matrix-synapse | 3 |
|
|
| mattermost-lts | 3 |
|
|
| mumble | 5 |
|
|
| n8n | 4 |
|
|
| plausible | 2 |
|
|
| uptime-kuma | 4 |
|
|
| **TOTAL** | **64** |
|