test-before-release
Проверка engine до release
Главное правило: не выпускать новый tag на каждый фикс вслепую.
Правильная схема:
1. Кодим engine в feature/debug branch.
2. Подключаем реальный garden к этой branch dependency.
3. Делаем clean build.
4. Проверяем graph.json, searchIndex.json, index.html, backlinks и картинки.
5. Только если всё ok — merge в main.
6. Только потом tag vX.Y.Z.
7. Только потом upgrade gardens на tag.
Вариант A: проверить на сервере на реальном obsidian-duck-guide
Перейти в garden repo:
cd /home/supervisor/leonid_projects/obsidians/obsidian-duck-guide/site
Временно подключить engine не по tag, а по branch:
npm pkg set 'dependencies.@duck/garden-engine=git+ssh://git@github.com/leo-mmmmmmm/duck-garden-engine.git#debug/image-asset-resolution'
Или другая branch:
npm pkg set 'dependencies.@duck/garden-engine=git+ssh://git@github.com/leo-mmmmmmm/duck-garden-engine.git#fix/graph-backlinks-resolution'
Так можно тестировать фичи, не выкатывая их сразу в новую production version.
Clean build
cd /home/supervisor/leonid_projects/obsidians/obsidian-duck-guide/site
sudo rm -rf node_modules package-lock.json dist .duck-garden
sudo chown -R supervisor:supervisor .
npm install --no-audit --no-fund
npm run build
node node_modules/@duck/garden-engine/scripts/assert-dist.js
Ручные проверки важных файлов
Graph:
node -e 'const g=require("./dist/graph.json"); console.log(g.nodes["/"]); console.log(g.links)'
Search index:
node -e 'const s=require("./dist/searchIndex.json"); console.log(s.map(x=>[x.title,x.url]))'
Backlinks на Home:
grep -R "backlink-card" dist/index.html
Ожидаемо:
graph nodes: больше 0
graph links: больше 0
home backlinks: больше 0
В dist/index.html должен появиться backlink-card со ссылкой на страницу, которая ссылается на Home.
Проверка картинок
DUCK_DEBUG_IMAGES=1 npm run build
find dist/img/user -maxdepth 5 -type f | sort
Проверить конкретную картинку через публичный домен после production rebuild:
curl -I 'https://obsidian-duck-guide.obsidians.otc.guru/img/user/foto/2026-06-15%2014.57.12.jpg'
Нужно:
HTTP/1.1 200 OK
Важно про dependency
Для разработки можно использовать branch:
"@duck/garden-engine": "git+ssh://git@github.com/leo-mmmmmmm/duck-garden-engine.git#fix/graph-backlinks-resolution"
Для production использовать tag:
"@duck/garden-engine": "git+ssh://git@github.com/leo-mmmmmmm/duck-garden-engine.git#v1.0.18"
Не оставлять production garden на debug branch без причины.
Дальше: release и upgrade engine.