Files
YouTubeDL/CONTRIBUTING.md
T
DepressedCat 5f2aad00f4
Check extension and helper / check (push) Canceled after 0s
Publish YouTubeDL 1.4.5 and website on Gitea
2026-10-10 23:53:17 +03:00

88 lines
6.9 KiB
Markdown

# Сборка и проверки правообладателя
Этот документ описывает обслуживание официальной версии правообладателем и уполномоченными им лицами.
Публикация инструкций не предоставляет права изменять, создавать самостоятельные форки
или распространять новые версии собственного кода. Условия и исключения — в [LICENSE](LICENSE).
Пользователь может собрать неизменённую официальную поставку для установки и использования по назначению.
Исходники расширения — `extension/`, Native Messaging помощника — `host/`,
установщика — `tools/setup.cs`, сайта — `site/`.
Готовые EXE, приватный runtime, кеши, личная история и `node_modules` в Git не включаются.
## Быстрые проверки
Нужны Python 3.10+ и Node.js 22+. Для тестов помощника установите `requirements.txt`
в отдельное виртуальное окружение. Не меняйте глобальное окружение пользователя.
```powershell
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
npm ci
.\.venv\Scripts\python.exe -m unittest discover -s tests -v
npm test
npm run check
python tools/build.py
```
`tools/build.py` собирает небольшой `dist/YouTubeDL-1.4.5.zip` без EXE.
Для сборки расширения не требуется предварительно собирать помощник.
## Браузерные проверки
Нужен установленный Microsoft Edge в Windows; для `test:ui` можно задать `YTDL_TEST_BROWSER`.
Скриншоты и отчёты сохраняются в игнорируемую папку `test-artifacts`.
```powershell
npm run test:ui
npm run test:setup
npm run test:thumbnails
npm run test:motion
npm run test:live-shorts
npm run test:site
```
Проверки UI используют контролируемые браузерные API. `test:motion` и `test:live-shorts`
загружают настоящее расширение в отдельный профиль Edge; последняя открывает живой YouTube.
`test:site` проверяет сайт в браузере на широком и узком экране, ссылки скачивания, темы и навигацию.
`npm run test:reconnect` использует отдельную установку и уникальное имя native host:
проверяет install/remove/reinstall, разрывы портов и две открытые панели без перезагрузки.
Ему нужен `dist/YouTubeDL-Helper-Setup.exe`.
`test:browser` скачивает публичный тестовый ролик и проверяет NVENC через FFprobe.
**`test:helper` удаляет и повторно устанавливает зарегистрированный помощник текущего пользователя**:
запускайте только в подготовленной тестовой учётной записи Windows.
`tests/offline-bundle.py`, `tests/component-update.py` и `tests/amd-fallback.py` проверяют автономность,
обновления и отказ AMD с переходом на CPU. GPU-проверки зависят от реального оборудования.
## Сборка помощника
Нужны Windows x64, C# compiler .NET Framework и Python. Подготовка требует интернет,
работает в `.build-cache` и `.build`, проверяет закреплённые SHA256.
```powershell
python tools/build_bundle.py --prepare
# Повторная сборка из подготовленного комплекта:
python tools/build_bundle.py
```
Версия помощника берётся из `host/common.py`, версия расширения — из `extension/manifest.json`.
Не меняйте публичный `key` расширения: он закрепляет ID, разрешённый установленному native host.
EXE самодостаточен; `install.ps1` / `install.cmd` предназначены для разработки с внешним Python.
## Релизы и сайт
- Публикуйте ZIP расширения, отдельный `YouTubeDL-Helper-Setup.exe`, манифест, лицензии/исходные материалы и `SHA256SUMS.txt` в релизах Gitea.
- Перед выпуском обновите версии и ссылки в `INSTALL.md`, `README.md`, `site/index.html` и документации. Стабильное имя EXE позволяет использовать URL `/releases/download/vВЕРСИЯ/YouTubeDL-Helper-Setup.exe`.
- Исходники статического сайта находятся в `site/` того же репозитория. Nginx публикует их по адресу https://git.lonarpgproxy.space/extention/youtubedl/; обновление выполняется из проверенного коммита main отдельным развёртыванием.
- Для локального просмотра: `python -m http.server 4173 --directory site`, затем `http://127.0.0.1:4173`.
- Графика и её промпты описаны в `docs/ASSETS.md`. Не добавляйте в маркетинговые скриншоты настоящие cookies, приватные ссылки или личные пути.
Для подготовки исходников FFmpeg и его библиотек используйте закреплённую копию
FFmpeg-Builds из архива исходных материалов релиза. На Linux с Docker выполните
`./download.sh win64 gpl-shared`; параметры и скачиваемые ревизии заданы в сценариях этой копии.
Проверяйте лицензии и доступность соответствующих исходников при замене стороннего runtime.
Предложения улучшений и ошибки присылайте через Issues; для изменений собственного кода
нужно предварительное письменное разрешение правообладателя. В bug report укажите версии ОС, браузера,
расширения и помощника, действия для воспроизведения и текст ошибки без личных данных.