Repository navigation
th CONTRIBUTING
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 เป็น โมดูล WebUI ของ KernelSU/APatch/Magisk: shell script + WebUI แบบ vanilla-JS
- binary แบบ static ต่อ ABI ไม่ต้องใช้แอปสำหรับฟีเจอร์หลัก ดู ARCHITECTURE.md และ docs/FILE-STRUCTURE.md
เป็น ผู้สืบทอดแบบเปิดและ root-native ของ Swift Backup, Neo-Backup และ Android-DataBackup - การรวมฟีเจอร์ของทั้งหมดไว้ภายใต้ AGPLv3 พร้อมการนำเข้า backup เดิมของ Neo-Backup และ Android-DataBackup เพื่อให้ผู้คนย้ายข้อมูลได้
ผู้ช่วยและ agent ที่เป็น AI เป็นผู้ร่วมพัฒนาระดับชั้นหนึ่งที่นี่ ไม่ใช่สิ่งที่คิดทีหลัง
- โครงการนี้สร้างมาให้เครื่องอ่านได้: ทุก verb ของ
helper.shพิมพ์ออกเป็น JSON object เดียว เอนจินเป็น POSIX shell ล้วน และโครงสร้างไฟล์มีบันทึกไว้ใน docs/FILE-STRUCTURE.md - agent สามารถบริหารจัดการ ทุก เนื้อหาและการกระทำของโมดูลแบบ headless ผ่าน JSON API นั้น - พื้นผิวการควบคุมทั้งหมด, verb และราวกันภัยอยู่ใน docs/AI-AGENTS.md
- แพตช์ที่ช่วยเขียนโดย AI จะได้รับการตรวจและยอมรับด้วยเกณฑ์เดียวกับอื่น ๆ - โดยดูที่ ความถูกต้อง ความชัดเจน และข้อตกลงด้านล่าง ไม่ใช่ว่าใคร (หรืออะไร) เป็นคนเขียน
- หากคุณขับเคลื่อน VDBackup จาก agent ให้ใช้ output แบบ JSON ของ
helper.shเป็น สัญญา (contract) อย่าขูด (scrape) WebUI - มาตรฐานเดียวกันสำหรับทุกคน: ฟีเจอร์จริงจะไม่ถูกทำให้อ่อนลง ความลับและข้อมูลอุปกรณ์ จะไม่เข้าไปอยู่ใน repo (ดู .gitignore ที่เข้มงวด) และการกระทำที่ เปลี่ยนแปลงข้อมูลยังคงต้องยืนยันและถูกบันทึกตรวจสอบ
- คุณต้องมีอุปกรณ์/อีมูเลเตอร์ที่ root แล้ว (KernelSU, APatch หรือ Magisk) เพื่อทดสอบ
- สร้าง zip ที่แฟลชได้:
cd module && zip -r9 ../VD-Backup-dev.zip .แล้วแฟลชมัน - WebUI คือ
module/webroot/(เปิดจากตัวจัดการ root) แบ็กเอนด์คือmodule/helper.sh(dispatcher) และmodule/worker.sh(เอนจินแบบ detached) - binary เนทีฟอยู่ใน
module/bin/<abi>/และสร้างโดย CI (.github/scripts/build_bin.sh) ปกติคุณไม่ต้อง rebuild มันด้วยมือ
-
ไฟล์ซอร์สทุกไฟล์ (
.sh,.js,.css,.html,.svg,.yml) ขึ้นต้นด้วย banner header ของโครงการ (คัดลอกจากไฟล์ที่มีอยู่) ไม่มีข้อยกเว้น - โค้ดและคอมเมนต์เป็นภาษาอังกฤษ คอมเมนต์ให้น้อยที่สุดและเฉพาะที่จำเป็น
-
ห้ามใช้ em-dash หรือ en-dash ให้ใช้ hyphen ธรรมดา
-เสมอ - WebUI เป็น vanilla JS (
scripts.jsไฟล์เดียว) ไม่มีเฟรมเวิร์ก คุยกับ root ผ่าน wrapperhelper(verb, args)เท่านั้น และ escape ทุกค่าที่แทรกเข้าไป - ห้ามทำให้อ่อนลง ฟีเจอร์จริง (เช่น การคงไว้ซึ่ง SELinux/uid/gid/modes)
- การกระทำที่เปลี่ยนแปลงข้อมูล (restore, delete) ต้องขอการยืนยันและเขียน audit log
- สตริง UI อยู่ใน
module/webroot/lang/ภาษาอังกฤษเป็น fallback หลัก (en.js+en.json) อีก 20 ภาษาเป็น<code>.json - การเพิ่มหรือแก้สตริง: แก้
en.jsและen.jsonจากนั้นอัปเดตทุก<code>.jsonการแตะ label ที่มองเห็นได้หมายถึงต้องอัปเดตไฟล์ภาษา ทั้งหมด และREADME.<code>.mdทั้งหมด - คำแปลเป็น JSON ล้วน - เป็นการร่วมพัฒนาครั้งแรกที่ดีเยี่ยม ดูรายการภาษาใน
module/webroot/i18n.js
- ทำ PR ให้โฟกัส อธิบายว่าทำอะไรและทำไม
- Sign off commit ของคุณ (DCO):
git commit -s(เพิ่มSigned-off-by:) - CI ต้องผ่าน (เขียว) เสมอ ใจดีในการรีวิว - ดู CODE_OF_CONDUCT.md
มองหา label good first issue และ help wanted การแปล, เอกสาร, preset destination
rclone ใหม่ และการขัดเกลา WebUI ล้วนเป็นจุดเริ่มต้นที่ยอดเยี่ยม