A release checklist: everything to look at before a version is committed or shipped, one box per item -- or one per item and per member, when the team checks it together.
class MMO\admin\helpers\Checklist
Namespace
MMO\admin\helpers
Kept in a JSON file of its own, `{folder}/{name}.json` ([`ChecklistController`](https://mcp.mmoframework.fr/documentation/mmo.admin/php/controllers/ChecklistController.md#checklistcontroller)):
{"version": 4, "updatedAt": "...", "title": "my.oviepro 4.1: review before commit", "description": "...",
"board": "my.oviepro-deploy", "boardUrl": "boards/oviepro-deploy", "members": [],
"recipe": {...}, // how [`ChecklistBuilder`](https://mcp.mmoframework.fr/documentation/mmo.admin/php/helpers/ChecklistBuilder.md#checklistbuilder) makes the items
"types": {"pdf": {"label": "PDF and printing", "icon": "file-pdf"}}, // what each `kind` is called, and its icon
"groups": {"General": {"icon": "globe"}}, // a group's icon
"items": [{id, group, section, kind, title, detail, url, note, tickets}, ...],
"checks": {"<item id>": {"<member, or *>": {"at": "...", "by": "marc"}}},
"release": {"name": "4.1", "startedAt": "...", "startedBy": "marc"}, // the round being checked
"history": [{name, startedAt, startedBy, closedAt, closedBy, done, total}, ...]} // the rounds before, last first
- An item's `id` is the hash of its group, section and title ([`ItemId`](https://mcp.mmoframework.fr/documentation/mmo.admin/php/helpers/Checklist.md#checklist-itemid)): items are rebuilt whenever the code
changes, and what was checked stays checked while its item is still there.
- `group` is what the page folds (a library, "pages", "before committing"), `section` a heading inside it (a
folder, a page), `kind` what the item is (`code`, `page`, `global`...), `url` where to look.
- `tickets` are the ids of the board's tickets the item verifies. A ticket all of whose items are checked is
verified ([`tickets`](https://mcp.mmoframework.fr/documentation/mmo.admin/php/helpers/Checklist.md#checklist-tickets)): it gets a label on the board, and can then be moved to done.
- Without `members`, an item has one box (`*`). With them, it has one per member, and is done once all are checked.
- A checklist is checked again at each release: the first check starts the round (`release`), [`reset`](https://mcp.mmoframework.fr/documentation/mmo.admin/php/helpers/Checklist.md#checklist-reset) closes it
-- every box unchecked, a line of `history` saying how far it got.
- `note` is a word on the item's section (a page's), `types` and `groups` how the page shows kinds and groups.
string, group: string, section: string, kind: string, title: string, detail: string, url: ?string, note: string, tickets: list<string>}> every item with every key, its id computed when it has none; an item without a title is dropped
array{title: string, status: string, total: int, checked: int, verified: bool}> each ticket the items name, with how many of its items are done; one the board does not have is left out when $tickets is given