Skip to content

uk CONTRIBUTING

github-actions[bot] edited this page Nov 13, 2026 · 2 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 на чистому JS + статичні бінарники для кожного ABI. Для основних функцій застосунок не потрібен. Див. ARCHITECTURE.md і docs/FILE-STRUCTURE.md.

Це відкритий, root-native наступник Swift Backup, Neo-Backup та Android-DataBackup: об'єднання їхніх функцій під ліцензією AGPLv3, з імпортом наявних резервних копій Neo-Backup та Android-DataBackup, щоб люди могли перейти.

Внески від ШІ вітаються

Асистенти та агенти на основі ШІ тут повноправні учасники, а не щось другорядне.

  • Проєкт зроблено придатним для читання машинами: кожне дієслово helper.sh виводить єдиний об'єкт JSON, рушій: це звичайний POSIX shell, а структуру файлів задокументовано в docs/FILE-STRUCTURE.md.
  • Агент може керувати кожним вмістом та дією модуля безголово через цей 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-тире чи en-тире; завжди використовуйте звичайний дефіс -.
  • WebUI: це чистий JS (один scripts.js); без фреймворків. Спілкуйтеся з root лише через обгортку helper(verb, args) та екрануйте кожне інтерпольоване значення.
  • Ніколи не послаблюйте справжню функцію (наприклад, збереження SELinux/uid/gid/режимів).
  • Дії, що змінюють стан (відновлення, видалення), мусять запитувати підтвердження й писати журнал аудиту.

Інтернаціоналізація (i18n)

  • Рядки інтерфейсу лежать у 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.

Гарні перші issue

Шукайте мітки good first issue та help wanted. Переклади, документація, нові пресети призначень rclone і вдосконалення WebUI: усе це чудові відправні точки.


Ця документація створена за допомогою Claude (Anthropic) і підтримується VD171. Виправлення та покращення вітаються; див. CONTRIBUTING.md.

Clone this wiki locally