Files
YouTubeDL/CONTRIBUTING.md
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

6.9 KiB

Сборка и проверки правообладателя

Этот документ описывает обслуживание официальной версии правообладателем и уполномоченными им лицами. Публикация инструкций не предоставляет права изменять, создавать самостоятельные форки или распространять новые версии собственного кода. Условия и исключения — в LICENSE. Пользователь может собрать неизменённую официальную поставку для установки и использования по назначению.

Исходники расширения — extension/, Native Messaging помощника — host/, установщика — tools/setup.cs, сайта — site/. Готовые EXE, приватный runtime, кеши, личная история и node_modules в Git не включаются.

Быстрые проверки

Нужны Python 3.10+ и Node.js 22+. Для тестов помощника установите requirements.txt в отдельное виртуальное окружение. Не меняйте глобальное окружение пользователя.

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.

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.

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 укажите версии ОС, браузера, расширения и помощника, действия для воспроизведения и текст ошибки без личных данных.