Give packs an identity so create can refuse missing deps and load in a stable order.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,31 +11,31 @@
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] `pack.jsonc` в папке пака: `version` строкой, `requires` списком id. Файла нет — пак
|
||||
- [x] `pack.jsonc` в папке пака: `version` строкой, `requires` списком id. Файла нет — пак
|
||||
по-прежнему валиден: id вместо названия, версия пустая, зависимостей нет
|
||||
- [ ] Название пака — ключ по его id в его же `localizations/<lang>.jsonc`; второго способа
|
||||
- [x] Название пака — ключ по его id в его же `localizations/<lang>.jsonc`; второго способа
|
||||
называть вещи не заводить
|
||||
- [ ] `GET /api/mods` принимает `?lang=ru|en` и отдаёт `label`, `version` и `requires` рядом с
|
||||
- [x] `GET /api/mods` принимает `?lang=ru|en` и отдаёт `label`, `version` и `requires` рядом с
|
||||
`id` и `required`
|
||||
- [ ] У `core` такой же `pack.jsonc` и такое же название в локалях
|
||||
- [ ] Создание школы проверяет, что каждая зависимость выбрана; нет — `400` с кодом и id того,
|
||||
- [x] У `core` такой же `pack.jsonc` и такое же название в локалях
|
||||
- [x] Создание школы проверяет, что каждая зависимость выбрана; нет — `400` с кодом и id того,
|
||||
кого не хватает
|
||||
- [ ] Порядок загрузки выстраивает сервер: устойчивая топологическая сортировка поверх порядка
|
||||
- [x] Порядок загрузки выстраивает сервер: устойчивая топологическая сортировка поверх порядка
|
||||
игрока, `core` всегда первый. Цикл зависимостей — отказ
|
||||
- [ ] Разрешённый порядок виден: пишется в лог при старте школы и возвращается в ответе создания
|
||||
- [ ] Сейв хранит **разрешённый** порядок паков, чтобы школа поднималась тем же каталогом
|
||||
- [ ] Загрузчик пишет предупреждение, когда у конкретного def нет подписи в локали пака
|
||||
- [ ] `docs/protocol.md` и [`../design/foundation.md`](../design/foundation.md) правятся тем же
|
||||
- [x] Разрешённый порядок виден: пишется в лог при старте школы и возвращается в ответе создания
|
||||
- [x] Сейв хранит **разрешённый** порядок паков, чтобы школа поднималась тем же каталогом
|
||||
- [x] Загрузчик пишет предупреждение, когда у конкретного def нет подписи в локали пака
|
||||
- [x] `docs/protocol.md` и [`../design/foundation.md`](../design/foundation.md) правятся тем же
|
||||
коммитом, что и обработчики
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Пак без `pack.jsonc` виден в списке, id стоит вместо названия
|
||||
- [ ] Название приходит на языке запроса, у `core` тоже
|
||||
- [ ] Пак с невыбранной зависимостью не создаёт школу; в ответе видно, кого не хватает
|
||||
- [ ] Зависимость, выбранная после зависимого, всё равно грузится раньше
|
||||
- [ ] Цикл зависимостей — отказ, а не зависание
|
||||
- [ ] Def без подписи даёт предупреждение, но не роняет каталог
|
||||
- [x] Пак без `pack.jsonc` виден в списке, id стоит вместо названия
|
||||
- [x] Название приходит на языке запроса, у `core` тоже
|
||||
- [x] Пак с невыбранной зависимостью не создаёт школу; в ответе видно, кого не хватает
|
||||
- [x] Зависимость, выбранная после зависимого, всё равно грузится раньше
|
||||
- [x] Цикл зависимостей — отказ, а не зависание
|
||||
- [x] Def без подписи даёт предупреждение, но не роняет каталог
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
|
||||
Reference in New Issue
Block a user