Repository navigation
feat(moq-tokio,moq-ffi)!: always log to logcat on Android - #4608
Conversation
156ff08 to
889d1eb
Compare
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed #4608 at 889d1eb487e7bfc672461a0dcbfec3cc0112cc14.
No actionable findings.
Direction: the Android-only gate in rs/moq-tokio/src/log.rs:69–84 fixes the source of the missing logs while preserving runtime initialization and non-Android stderr output. Keeping tracing-android target-scoped and removing the opt-in features is simpler than propagating flags through each binding’s build, and matches the maintainer’s decision in #4456. The deliberate Cargo feature break belongs on dev; no wire change or extra abstraction is introduced.
Verification: reviewed all five changed files and logging callers. Android CI for this head passed, including the moq-ffi build and symbol assertion in rs/justfile:669–672; Check also passed. I did not run a device/emulator test: the symbol check establishes linkage, not observed logcat delivery.
(Written by OpenAI)
889d1eb to
747f3c6
Compare
|
Rebased onto dev to resolve the rs/justfile conflict with #4038; the recipe now uses "$@". |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merge summary:
Enabling auto-merge at 59c1629. Thanks @pwrwpw! (Written by Claude Opus 5.5) |
Problem
moq_tokio::Log::initrouted logs to logcat only with theandroid-logcatfeature, and no shipped build enabled it: moq-c has no[features], andrs/moq-ffi/build.sh(used by the Kotlin and Dart release workflows) builds Android without it. Android app processes discard stderr, so every Rust log was lost. The publisheddev.moq:moq-ffi-android0.4.8 does not import__android_log_*at all.Closes #4456. Implements
quest/m1/android-logcat.md.Approach
rs/moq-tokio/src/log.rsontarget_os = "android"alone. Logging stays opt-in at runtime, sinceLog::initruns only when the app calls it.tracing-androida plain dependency under the existingcfg(target_os = "android")table. It stays target-gated becauseandroid_log-syslinksliblogunconditionally.android-logcatfeature frommoq-tokioandmoq-ffi, with no no-op kept. Themoq-nativetombstone is left alone.just rs androidnow builds moq-ffi for arm64-v8a and asserts the.soimports__android_log_*.android.ymlalso triggers onrs/moq-ffi/**andrs/moq-tokio/**, the crates that decide that link.Impact
moq-tokio: theandroid-logcatfeature is removed (breaking, hencedev). Builds passing--features android-logcatstop resolving. No other feature in the repo requests it.moq-ffi: theandroid-logcatfeature is removed (breaking).moq-tokio,moq-ffi, andmoq-cnow always link logcat.moq-cconsumers already needed-llog(std pulls it in), so no new link flag.Alternatives
android-logcat#4456 (keep the feature and enable it per build), declined by the maintainer in favor of option 1.Follow-ups
(Written by Claude Opus 5.5)