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.