ci: add automated checks, and document the architecture - #1
Merged
Conversation
added 2 commits
August 5, 2026 22:10
The repository had no automated checks, so nothing verified the 16 test classes or the lint configuration except a local run. The workflow uses Temurin 17 with the Gradle cache and the Android SDK already present on the GitHub runner, and it runs from the Rannah directory where the Gradle build lives. Reports are uploaded only when a step fails. .gitattributes pins the line endings that matter, gradlew as LF and .bat as CRLF, marks the binary assets so git stops trying to diff them, and keeps the bundled Tajawal fonts out of the repository language statistics, which currently count them towards the code.
ARCHITECTURE.md records the decisions that are not visible in a file listing: the database is the source of truth and every alarm is derivable from it, which is what makes reboots and clock changes safe; the scheduler is the single owner of the lifecycle and every action is idempotent; the alarm gateway is an interface so the lifecycle can be tested on the JVM. The README gains the build commands, the toolchain versions they need, the stack, and a CI badge.
دليل المراجع (Reviewer's Guide)يضيف سير عمل CI في GitHub Actions لمشروع Gradle الفرعي Rannah، ويوثّق معمارية التطبيق وعملية البناء، ويُحسّن ملف README، ويوحد التعامل مع نهايات الأسطر والأصول المضمّنة (vendored assets)، بالإضافة إلى مراجعة تعليقات / KDoc للتوضيح دون تغيير في سلوك وقت التشغيل. التغييرات على مستوى الملفات
نصائح وأوامر (Tips and commands)التفاعل مع Sourcery
تخصيص تجربتكيمكنك الوصول إلى لوحة التحكم لـ:
الحصول على المساعدة
Original review guide in EnglishReviewer's GuideAdds a GitHub Actions CI workflow for the Rannah Gradle subproject, documents the app’s architecture and build process, enhances the README, and standardises line-ending and vendored-asset handling, plus a sweep of comment/DocKdoc clarifications without changing runtime behaviour. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
added 4 commits
August 5, 2026 22:46
Dependabot opens monthly pull requests for the Gradle build, including the version catalog, and for the actions pinned in the workflow. Both are capped so an unattended month cannot flood the repository.
checkout and upload-artifact were pinned at v4 and setup-java at v4, while v7, v7 and v5 are current.
Replaces every em dash in the Kotlin comments with a colon where a short label introduces a definition, a comma where the dash was parenthetical, and brackets where a clause was fenced by a pair. 152 lines across 46 files, all of them comment text; no code changed.
English first, with the Arabic version kept in a collapsible section rather than dropped. The page now opens with an animated header, three badges that each point at live data (CI, latest release, minimum Android version), what the app is in two sentences, and a three step install. The rest follows the order a reader actually asks for it: features, how it works, build from source, layout, stack, privacy. The privacy section keeps the honest caveat about Android backup instead of claiming everything stays on the device.
Mod578
marked this pull request as ready for review
August 5, 2026 20:08
There was a problem hiding this comment.
مرحبًا - لقد راجعت تغييراتك وهي تبدو رائعة!
سورسي مجاني للمشاريع مفتوحة المصدر - إذا أعجبتك مراجعاتنا فيُرجى التفكير في مشاركتها ✨
Original comment in English
Hey - I've reviewed your changes and they look great!
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Quality pass on the repository. No application code is touched in this branch: it adds automated checks, developer documentation, and line ending rules.
CI
The repository had no workflow, so the 16 test classes and the lint configuration were only ever verified by hand on a local machine.
.github/workflows/ci.ymlruns unit tests,lintDebugandassembleDebugon pushes tomasterand on pull requests, using Temurin 17 and the Android SDK already present on the GitHub runner. Reports upload only when a step fails.The Gradle build lives in the
Rannah/subdirectory, so the workflow sets that as its working directory.Documentation
Rannah/docs/ARCHITECTURE.mdwrites down what the file tree does not show:ReminderScheduleris the single owner of the lifecycle and every action is idempotent, so a replayed broadcast cannot produce a second outcome for one occurrenceAlarmGatewayis an interface with a fake in tests, which is why the lifecycle can be covered on the JVM without an emulatorThe README gains the build commands, the toolchain they need, the stack, and a CI badge.
Line endings
.gitattributeskeepsgradlewas LF and.batas CRLF, marks binary assets, and marks the bundled Tajawal fonts as vendored so they stop counting towards the repository language statistics.Validation
The Android SDK is not installed on the machine this was prepared on, so Gradle could not run locally. The CI run on this pull request is the validation, and its result is visible in the checks below.
Not done here
LICENSEfile. The repository still has none, and picking one is your decision, not something to infer. The Apache 2.0 and OFL files underapp/src/main/assets/licenses/are third party notices for bundled dependencies and fonts, not a licence for this code.rootProject.nameis stillBal. It is internal to Gradle and renaming it is a build change with no user visible benefit, so it is left for you to decide.Summary by Sourcery
تقديم تكامل مستمر (CI) مؤتمت، وتوثيق معمارية موجّه للمطورين، وتنظيم المستودع دون تغيير في سلوك التطبيق.
ميزات جديدة:
تحسينات:
البناء (Build):
التكامل المستمر (CI):
التوثيق:
الاختبارات:
أعمال تنظيمية (Chores):
Original summary in English
Summary by Sourcery
Introduce automated CI, developer-focused architecture documentation, and repository housekeeping without changing application behaviour.
New Features:
Enhancements:
Build:
CI:
Documentation:
Tests:
Chores:
ميزات جديدة:
تحسينات:
CI:
التوثيق:
أعمال صيانة:
Original summary in English
Summary by Sourcery
تقديم تكامل مستمر (CI) مؤتمت، وتوثيق معمارية موجّه للمطورين، وتنظيم المستودع دون تغيير في سلوك التطبيق.
ميزات جديدة:
تحسينات:
البناء (Build):
التكامل المستمر (CI):
التوثيق:
الاختبارات:
أعمال تنظيمية (Chores):
Original summary in English
Summary by Sourcery
Introduce automated CI, developer-focused architecture documentation, and repository housekeeping without changing application behaviour.
New Features:
Enhancements:
Build:
CI:
Documentation:
Tests:
Chores: