aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-02 13:31:30 +0100
committerDanilo M. <danix@danix.xyz>2026-11-02 13:31:30 +0100
commitf78754e26c6274f997bbfe0798f47aa86f8f8133 (patch)
treeb232000eafbb4b143a63b66e2930a1064b59a494 /AGENTS.md
parent5972d8bb6ab2369e298be0e6641d92ab8f1b2f7a (diff)
downloadHardenedPass-f78754e26c6274f997bbfe0798f47aa86f8f8133.tar.gz
HardenedPass-f78754e26c6274f997bbfe0798f47aa86f8f8133.zip
build: drop the nonFree flavor, Sentry and Play Services
The fork targets GrapheneOS and ships only FOSS builds. The nonFree flavor added Sentry crash reporting, wired to upstream's Sentry project, and Play Services SMS one-time-code autofill, which needs Google's servers. Neither is wanted, so remove the flavor dimension entirely: - Delete app/src/nonFree, the SentryPlugin, the sentry-stub module, the Sentry and Play Services catalog entries, and the Sentry scope setup in Application. - Move the free AutofillSmsActivity stub into main; it keeps the SMS OTP feature off exactly as the free build did. A ponytail note marks the FillOtpFromSms paths for later removal. - SlimTests no longer needs to skip a nonFree variant. - Workflows and docs use :app:assembleDebug / :app:assembleRelease. A bare assembleRelease would also verify library modules in release mode, where ui:compose fails on a pre-existing AppCompat attribute reference the old flavored task never touched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md16
1 files changed, 9 insertions, 7 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 2061f26f..619123c3 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -11,7 +11,7 @@ started in November 2026 from upstream's last commit. Kotlin, Gradle, about 18k
Modules: `app` (UI, git sync, autofill service), `autofill-parser`, `crypto:common`,
`crypto:pgpainless`, `format:common`, `passgen:diceware`, `passgen:random`, `ui:compose`,
-`coroutine-utils`, `sentry-stub`. Build conventions live in `build-logic/`.
+`coroutine-utils`. Build conventions live in `build-logic/`.
The app name and `applicationId` (`app.passwordstore`) are still upstream's on purpose. Do not
rename them unless asked: it is tied to the release-signing decision (see Releases).
@@ -30,7 +30,7 @@ rename them unless asked: it is tied to the release-signing decision (see Releas
Needs JDK 17 and the Android SDK. `local.properties` (gitignored) holds `sdk.dir`.
- ./gradlew assembleFreeDebug # debug APK
+ ./gradlew :app:assembleDebug # debug APK
./gradlew test -PslimTests # unit tests, as CI runs them
./gradlew spotlessApply # formatting (ktfmt); CI runs spotlessCheck
./gradlew lint # all modules and variants, as CI runs it
@@ -38,11 +38,13 @@ Needs JDK 17 and the Android SDK. `local.properties` (gitignored) holds `sdk.dir
Prefix with `CI=1` to match CI: it turns Kotlin warnings into errors, so a deprecation warning
that passes locally fails CI. Before committing, run:
- CI=1 ./gradlew spotlessCheck test -PslimTests assembleFreeDebug assembleFreeRelease \
- assembleNonFreeDebug assembleNonFreeRelease lint metalavaCheckCompatibilityRelease
+ CI=1 ./gradlew spotlessCheck test -PslimTests :app:assembleDebug :app:assembleRelease \
+ lint metalavaCheckCompatibilityRelease
-Flavors: `free` (no proprietary dependencies, Sentry replaced by `sentry-stub`) and `nonFree`
-(adds Sentry and Play Services SMS OTP).
+No product flavors: the app has no proprietary dependencies, no Sentry and no Play Services
+(the upstream `nonFree` flavor was removed). Scope `assemble*` to `:app`; a bare
+`assembleRelease` also verifies library modules in release mode, where `ui:compose` fails on a
+drawable using an AppCompat attribute it does not depend on.
CI is `.github/workflows/pull_request.yml` (named "CI"), on push to `master`. Workflows use the
`setup-gradle` composite action from this fork at `@master`. It checks the repository out
@@ -61,7 +63,7 @@ in `local.properties`:
$ANDROID_HOME/emulator/emulator -avd aps-test -no-window -no-audio -no-boot-anim \
-no-snapshot-save -gpu swiftshader_indirect &
- ./gradlew installFreeDebug
+ ./gradlew installDebug
Drive it with `adb shell input`, `uiautomator dump` and `screencap`. Decrypt screens set
`FLAG_SECURE`, so screenshots of them are black; read them from the `uiautomator` dump.