Skip to content

ru CONTRIBUTING

github-actions[bot] edited this page Nov 7, 2026 · 3 revisions

Languages: English | العربية | Čeština | Deutsch | Español | فارسی | Français | हिन्दी | Bahasa Indonesia | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Русский | Svenska | ไทย | Türkçe | Tiếng Việt | 中文


Вклад в VDBackup

Спасибо за помощь! VDBackup задуман так, чтобы в него было легко вносить вклад. Это руководство подскажет, где что находится, и немногочисленные соглашения, которых мы придерживаемся.

Проект с высоты птичьего полёта

VDBackup - это WebUI-модуль KernelSU/APatch/Magisk: shell-скрипты + WebUI на vanilla-JS

  • статические бинарники для каждого ABI. Для основных функций приложение не требуется. См. ARCHITECTURE.md и docs/FILE-STRUCTURE.md.

Это открытый, root-нативный преемник Swift Backup, Neo-Backup и Android-DataBackup - объединение их функций под AGPLv3, с импортом существующих резервных копий Neo-Backup и Android-DataBackup, чтобы люди могли мигрировать.

Участники-ИИ приветствуются

ИИ-ассистенты и агенты здесь полноправные участники, а не что-то второстепенное.

  • Проект создан машиночитаемым: каждый глагол helper.sh печатает единственный JSON-объект, движок - это обычный POSIX shell, а раскладка файлов задокументирована в docs/FILE-STRUCTURE.md.
  • Агент может администрировать любой контент и действие модуля headless через этот JSON API - вся поверхность управления, глаголы и предохранители описаны в docs/AI-AGENTS.md.
  • Патчи, созданные с помощью ИИ, рассматриваются и принимаются на тех же условиях, что и любые другие - по корректности, ясности и соглашениям ниже, а не по тому, кто (или что) их написал.
  • Если вы управляете VDBackup из агента, используйте JSON-вывод helper.sh как контракт; не парсите WebUI.
  • Планка одинакова для всех: реальные функции никогда не ослабляются, секреты и данные устройства никогда не попадают в репозиторий (см. строгий .gitignore), а изменяющие действия остаются подтверждёнными и запротоколированными.

Настройка окружения разработки

  • Для тестирования вам нужно устройство/эмулятор с root (KernelSU, APatch или Magisk).
  • Соберите прошиваемый zip: cd module && zip -r9 ../VD-Backup-dev.zip ., затем прошейте его.
  • WebUI находится в module/webroot/ (откройте его из root-менеджера). Бэкенд - это module/helper.sh (диспетчер) и module/worker.sh (отсоединённый движок).
  • Нативные бинарники находятся в module/bin/<abi>/ и производятся CI (.github/scripts/build_bin.sh); обычно вы не пересобираете их вручную.

Соглашения

  • Каждый исходный файл (.sh, .js, .css, .html, .svg, .yml) начинается с баннера-заголовка проекта (скопируйте его из любого существующего файла). Без исключений.
  • Код и комментарии на английском. Комментарии держите минимальными и только там, где нужно.
  • Никаких em-dash или en-dash; всегда используйте обычный дефис -.
  • WebUI - это vanilla JS (один scripts.js); без фреймворков. Обращайтесь к root только через обёртку helper(verb, args) и экранируйте каждое интерполируемое значение.
  • Никогда не ослабляйте реальную функцию (например, сохранение SELinux/uid/gid/режимов).
  • Изменяющие действия (восстановление, удаление) должны запрашивать подтверждение и писать журнал аудита.

Интернационализация (i18n)

  • UI-строки находятся в module/webroot/lang/. Английский - канонический запасной вариант (en.js + en.json); остальные 20 языков - это <code>.json.
  • Чтобы добавить или изменить строку: отредактируйте en.js и en.json, затем обновите каждый <code>.json. Правка видимой надписи означает обновление всех языковых файлов и всех README.<code>.md.
  • Переводы - это обычный JSON, отличный первый вклад. См. список языков в module/webroot/i18n.js.

Коммиты и PR

  • Держите PR сфокусированными. Описывайте что и зачем.
  • Подписывайте свои коммиты (DCO): git commit -s (добавляет Signed-off-by:).
  • CI должен оставаться зелёным. Будьте доброжелательны в ревью - см. CODE_OF_CONDUCT.md.

Хорошие первые задачи

Ищите метки good first issue и help wanted. Переводы, документация, новые пресеты назначений rclone и полировка WebUI - всё это отличные отправные точки.

Эта документация была сгенерирована с помощью Claude (Anthropic) и сопровождается VD171. Исправления и улучшения приветствуются - см. CONTRIBUTING.md.

Clone this wiki locally