2.7 KiB
Phase 3: mod wrappers
Phase 3 завершена: mcpack add, remove, update <mod>, update --all
делегируют операции закреплённому packwiz. Config/путь source/бинарник
проверяются до вызова; оригинальные prompts, stdout/stderr и exit code
packwiz сохраняются. Add поддерживает штатные Modrinth version URLs.
Реальная integration-проверка
bash scripts/verify-phase3.sh успешно выполнен в тестовом clone
.tools/phase3-check.m9vdq6/clone. Лог: .tools/phase3-integration.log;
diff source: .tools/phase3-check.m9vdq6/source-changes.diff.
- Remove Backpacks удалил
.pw.tomlи обновил index. - Add version URL создал metadata для 3.26.6.2174 /
pJxNzk4X; уже установленный Core сохранился. - Update одного мода заменил Backpacks на 3.26.7.2182 /
Igmp9PwW. - Для update --all снова установлена старая версия. Команда реально обновила её, после чего metadata вернулась к 3.26.7.2182.
- После каждого состояния успешен full build:
phase3-remove,phase3-add,phase3-update,phase3-all. Для всех прошли Compose config и SHA256SUMS, source metadata осталась консистентной.
Тестовые versions менялись только в clone, чтобы сохранить неизменяемые готовые релизы. Основной pack остаётся 0.0.4 с прежними тремя модами; активный сервер и мир не изменялись и не перезапускались.
Автоматические проверки
npm test: 16/16 успешны. Помимо 12 build-тестов проверены:
- точное отображение команд/аргументов packwiz, включая --all и --yes;
- отклонение неверных комбинаций до запуска tool;
- выбор source directory через config при вызове из другого cwd;
- literal search argv без shell execution;
- сохранение stdout/stderr и тестового exit code 17;
- отказ при изменённом hash packwiz.
Bash/Node syntax и git diff --check успешны. Реальные GUI/server проверки
новых модов не входят в Phase 3; wrappers меняют source, не deployment.
Пользовательские команды и контракт — mods.md.