diff --git a/.gitignore b/.gitignore index 6001188..2ccbe46 100644 --- a/.gitignore +++ b/.gitignore @@ -1,39 +1 @@ -# Exclude npm stuff -/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 +/node_modules/ diff --git a/BUILD-f7.md b/BUILD-f7.md new file mode 100644 index 0000000..cdef6ce --- /dev/null +++ b/BUILD-f7.md @@ -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 — только маркер версии, обкатка конвейера.