Membangun (Building)
Cara mengompilasi setiap bagian dari Auriya. Kompilasi Rust memiliki catatan khusus repositori yang wajib diketahui sebelum menjalankan perintah cargo apa pun.
Dilacak ke commit 10fe7c6: Cargo.toml, .cargo/config.toml, android/*/build.gradle.kts, website/package.json. Resep CI resmi ada di Workflow CI/CD.
Cargo Dikonfigurasi Cross-Compile untuk Android
Section titled “Cargo Dikonfigurasi Cross-Compile untuk Android”File .cargo/config.toml menetapkan:
[build]target = "aarch64-linux-android"
[target.aarch64-linux-android]linker = "/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clang"runner = "bash .cargo/adb-runner.sh"Konsekuensi penting bagi kontributor:
cargo buildtidak membangun untuk host lokal secara default. Perintah ini melakukan cross-compile ke binaryaarch64-linux-androiddan membutuhkan Android NDK pada jalur hardcoded/opt/android-ndk.cargo testdijalankan langsung di perangkat fisik. Nilairunnermengirimkan setiap binary pengujian ke perangkat yang terhubung melalui adb (.cargo/adb-runner.sh). Sejumlah tes (pid_tracker,cmd_writer) memang memerlukan lingkungan Android/Linux nyata.
Untuk melakukan build di komputer host (misal untuk unit test lokal non-perangkat):
cargo build --target x86_64-unknown-linux-gnucargo test --target x86_64-unknown-linux-gnuRust — Resep Kompilasi CI
Section titled “Rust — Resep Kompilasi CI”Perintah persis yang digunakan di alur CI (CI/CD → rust-binary):
# Memerlukan: Android NDK, Rust nightly dengan target aarch64-linux-android,# rust-src, dan cargo-ndk.cargo ndk -t aarch64-linux-android --platform 26 -- build --release --bin auriya --bin auriyactlcargo ndk menyuplai jalur toolchain NDK secara otomatis. Profil release dioptimalkan untuk ukuran (Cargo.toml): opt-level = "z", lto = "fat", codegen-units = 1, panic = "abort", strip = true.
Linting dan Format Kode
Section titled “Linting dan Format Kode”Repositori menerapkan aturan lint ketat (Cargo.toml [lints]):
cargo fmt --all -- --check # cek pemformatancargo clippy --all-targets --all-features -- -D warnings # lint tingkat denyAndroid
Section titled “Android”Dua modul Gradle menghasilkan APK (android/app, android/service; minSdk = 30 / Android 11):
cd android./gradlew build # semua modul (debug + release)./gradlew :app:assembleRelease :service:assembleRelease # paket release./gradlew test # unit test JVMSitus Dokumentasi
Section titled “Situs Dokumentasi”Situs web wiki menggunakan Bun (website/package.json):
cd websitebun installbun run start # development server lokal dengan hot-reloadbun run build # static production build