docs: BUILD-f7.md — сборочная среда (Node 22.17), воспроизводимость подтверждена (55/65 бандлов = офиц. релиз), разбор downstream-правок glb (брендинг dev-f7 + патч Listener.php)

This commit is contained in:
2026-07-06 14:18:33 +00:00
parent 01acfa3b40
commit 2e3eaad31f
2 changed files with 38 additions and 39 deletions
+1 -39
View File
@@ -1,39 +1 @@
# Exclude npm stuff /node_modules/
/build
/node_modules
# PHP Code Sniffer
/vendor
/vendor-bin/*/vendor
/lib/Vendor
/.php-cs-fixer.cache
# Local docs
/site
# Karma/jasmine coverage data
/coverage
/tests/php/coverage-html
/tests/php/clover.xml
/tests/php/.phpunit.result.cache
/tests/integration/vendor
/tests/integration/output
/drone
/findings.sarif
# PHP Dev server output (integration tests)
/tests/integration/phpserver*.log
# Compiled frontend assets
/css
/js
# VScode settings
/.vscode
*.code-workspace
# JetBrains IDEs settings
/.idea
# JetBrains Fleet settings
/.fleet
+37
View File
@@ -0,0 +1,37 @@
# Сборка форка f7_talk (Nextcloud Talk / spreed)
Форк ветки nextcloud/spreed. Базовый апстрим — **v22.0.12** (тег `v22.0.12-upstream`),
совместим с NC 32.0.5 (glb, forbion). Обновления с официальной ветки НЕ берём (решение владельца
2026-07-06) — источник версии Talk теперь этот репозиторий.
## Сборочная среда (проверено на nd3, 2026-07-06)
- Node **22.17.0** + npm **10.9.2** (package.json engines: node ^22, npm ^10.5). На nd3 ставится
в userspace: `/home/foradmin/f7-build/node-v22.17.0-linux-x64` (не системный).
- Зависимости фронтенда: `npm ci` по `package-lock.json` (воспроизводимо).
- Сборка: `NODE_OPTIONS=--max-old-space-size=8192 npm run build` (rspack, production) → каталог `js/`.
На 16 vCPU / 20 ГБ занимает ~20 с; 4 warning'а (olm.wasm __dirname/__filename) — безвредны.
## Воспроизводимость (подтверждена)
Наша сборка из исходников v22.0.12 сверена с ОФИЦИАЛЬНЫМ релизным артефактом
`nextcloud-releases/spreed v22.0.12`:
- **55 из 65** `.js`-бандлов — байт-в-байт идентичны.
- Расхождения: 10 файлов = `.map` (source maps, не грузятся клиентом) + `talk-collections.js`,
где отличается ТОЛЬКО порядок двух minifier-переменных (`p`/`d`) — недетерминизм минификатора,
функционально эквивалентно. Вывод: собранный нами Talk = официальному 22.0.12.
## Что на боевом glb отличается от стока (правки downstream, НЕ наши в форке)
Установленный на glb spreed = сток 22.0.12 + преобразования f7-брендинга (владелец — dev-f7,
их generalize/theme-конвейер), а НЕ ручной патч ядра:
- `l10n/*` (110 файлов): строки Nextcloud→F7cloud, ссылки docs;
- `img/*` (27): фавиконки/иконки бренда; `css/talk-main.css`: одна @media-правка;
- `js/*` (7 бандлов): namespace `http://nextcloud.com/ns``https://f7cloud.ru/ns` + бренд-строки;
- **единственный функциональный патч PHP**: `lib/Notification/Listener.php` — форс языка `ru`
для push-уведомлений больших звонков (упрощение: fallbackLang='ru', userLanguages=[]).
Вывод для форка: брендинг остаётся ПОСТ-сборочным шагом dev-f7 (их зона), либо переносится в форк
отдельным коммитом по согласованию. Патч Listener.php логично инкорпорировать в форк как наш.
## Релизы форка
Версии `22.0.12-f7.N`. Пайплайн: изменение → `npm ci && npm run build` → смок-чеклист на стенде →
деплой glb → золотой шаблон (dev-f7). app id `spreed`, схема БД, OCS API v4/bot v1/HMAC — НЕ трогаем
(транскрипция R5, HPB, мобильные клиенты). Первый релиз f7.1 — только маркер версии, обкатка конвейера.