diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 72ad227..c95532f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -125,7 +125,7 @@ All workflows are in `.github/workflows/`: 4. **version-management.yml** (Version Bumping) - Manual workflow for updating app version - - Updates: `app/build.gradle.kts`, `metadata/ink.trmnl.android.yml`, changelogs + - Updates: `app/build.gradle.kts`, changelogs - Run `./scripts/show_version_info.sh` locally to get current version ## Common Issues & Workarounds @@ -159,7 +159,6 @@ All workflows are in `.github/workflows/`: 2. Use GitHub Actions workflow: `.github/workflows/version-management.yml` 3. Workflow updates: - `app/build.gradle.kts` (versionCode, versionName) - - `metadata/ink.trmnl.android.yml` (F-Droid metadata) - `fastlane/metadata/android/en-US/changelogs/{versionCode}.txt` See `RELEASE_CHECKLIST.md` for complete release process. @@ -224,7 +223,6 @@ gradle/ # Gradle wrapper JARs and version catalogs .githooks/ # Git hooks .idea/ # Android Studio settings keystore/ # Debug and release keystores -metadata/ # F-Droid metadata fastlane/ # Fastlane configuration for app store project-resources/ # Design assets, PRD documents scripts/ # Utility scripts (version info) diff --git a/.github/workflows/version-management.yml b/.github/workflows/version-management.yml index 18b009f..794f127 100644 --- a/.github/workflows/version-management.yml +++ b/.github/workflows/version-management.yml @@ -1,5 +1,5 @@ # This GitHub Actions workflow handles version management for the trmnl-android project. -# It automates the process of updating version numbers, F-Droid metadata, and creating release PRs. +# It automates the process of updating version numbers and creating release PRs. # # 🔍 TIP: Run `scripts/show_version_info.sh` locally to display current versions and get suggestions # for the next version number before running this workflow. @@ -21,7 +21,7 @@ on: required: true type: string git_tag: - description: 'Git tag for this release (defaults to v + version_name, used for F-Droid metadata)' + description: 'Git tag for this release (defaults to v + version_name)' required: false type: string release_notes: @@ -104,19 +104,6 @@ jobs: sed -i "s/versionCode = [0-9]\\+/versionCode = ${{ inputs.version_code }}/g" app/build.gradle.kts sed -i "s/versionName = \"[^\"]*\"/versionName = \"${{ inputs.version_name }}\"/g" app/build.gradle.kts echo "✓ Updated app/build.gradle.kts with version ${{ inputs.version_name }} (${{ inputs.version_code }})" - - - name: Update F-Droid metadata file - run: | - if [ -f "metadata/ink.trmnl.android.yml" ]; then - sed -i "s/CurrentVersion: .*/CurrentVersion: ${{ inputs.version_name }}/g" metadata/ink.trmnl.android.yml - sed -i "s/CurrentVersionCode: [0-9]\\+/CurrentVersionCode: ${{ inputs.version_code }}/g" metadata/ink.trmnl.android.yml - sed -i "s/versionName: .*/versionName: ${{ inputs.version_name }}/g" metadata/ink.trmnl.android.yml - sed -i "s/versionCode: [0-9]\\+/versionCode: ${{ inputs.version_code }}/g" metadata/ink.trmnl.android.yml - sed -i "s/commit: .*/commit: ${{ env.GIT_TAG }}/g" metadata/ink.trmnl.android.yml - echo "✓ Updated metadata/ink.trmnl.android.yml with version ${{ inputs.version_name }} (${{ inputs.version_code }})" - else - echo "Warning: metadata/ink.trmnl.android.yml not found" - fi - name: Create changelog file run: | @@ -140,7 +127,6 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} add-paths: | app/build.gradle.kts - metadata/ fastlane/ commit-message: "chore: prepare release ${{ inputs.version_name }}" title: "Prepare release ${{ inputs.version_name }}" @@ -152,7 +138,6 @@ jobs: ## 🔄 Changes Made: - Updated app/build.gradle.kts - - Updated F-Droid metadata - Created changelog file ## ⚡ Trigger CI Workflows (Do This First): diff --git a/CLAUDE.md b/CLAUDE.md index 2ca44d3..c5432af 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -144,7 +144,7 @@ app/src/main/java/ink/trmnl/android/ ## Build Types (Not Flavors) -**Note:** This project uses only build TYPES (debug/release), NOT product flavors. There's no separate F-Droid flavor despite what some older docs might suggest. +**Note:** This project uses only build TYPES (debug/release), NOT product flavors. **Debug:** - `buildConfigField("Boolean", "USE_FAKE_API", "true")` @@ -158,14 +158,14 @@ app/src/main/java/ink/trmnl/android/ - Keystore env vars: `KEYSTORE_PASSWORD`, `KEY_ALIAS` - Code shrinking: `isMinifyEnabled = true`, `isShrinkResources = true` - ProGuard: `proguard-android-optimize.txt` + `proguard-rules.pro` -- F-Droid compatible: `dependenciesInfo.includeInApk = false` +- Privacy: `dependenciesInfo.includeInApk = false` (disables dependency metadata) ## Version Management **DO NOT manually edit version numbers.** Use automated workflow: - Check version: `./scripts/show_version_info.sh` - Update workflow: `.github/workflows/version-management.yml` -- Updates: `app/build.gradle.kts`, `metadata/ink.trmnl.android.yml`, changelogs +- Updates: `app/build.gradle.kts`, changelogs ## CI/CD Workflows @@ -203,7 +203,7 @@ app/src/main/java/ink/trmnl/android/ - **BYOS Support**: Supports custom server URLs for BYOS installations - **Screen Wake Lock**: `FLAG_KEEP_SCREEN_ON` doesn't work reliably on e-Ink tablets due to aggressive battery optimization - **Kotlin Version**: Capped at 2.1.10 due to Dagger 2.56.2 compatibility (see libs.versions.toml comment) -- **No Product Flavors**: Only debug/release build types exist (no F-Droid flavor) +- **No Product Flavors**: Only debug/release build types exist ## Copilot Instructions Context diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6a3c957..b285491 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -78,8 +78,6 @@ The app uses standard Android build types (debug and release). There are no prod - **Debug**: Development builds with fake API support and debug keystore - **Release**: Production builds with code shrinking, ProGuard, and production keystore -The release build is F-Droid compatible (no Google dependencies, `dependenciesInfo.includeInApk = false`). - To build the release APK: ```bash # Build the release variant diff --git a/RELEASE_CHECKLIST.md b/RELEASE_CHECKLIST.md index 99c3052..6126556 100644 --- a/RELEASE_CHECKLIST.md +++ b/RELEASE_CHECKLIST.md @@ -7,7 +7,6 @@ This document outlines the process for creating new releases of the TRMNL Androi The project uses GitHub Actions to manage version synchronization across different files: - `app/build.gradle.kts`: Contains the app's version code and name -- `metadata/ink.trmnl.android.yml`: Contains F-Droid metadata and versioning - `fastlane/metadata/android/en-US/changelogs/`: Contains version-specific changelog files ## Creating a new release @@ -21,7 +20,6 @@ The project uses GitHub Actions to manage version synchronization across differe This will display: - Current version code and name -- F-Droid metadata version information - Existing changelog files - Suggested next version @@ -109,7 +107,6 @@ If you encounter issues with the version management workflow: 1. **Manual versioning**: - Update `app/build.gradle.kts` with the new version code and name - - Update `metadata/ink.trmnl.android.yml` with the same version information - Create a new changelog file in `fastlane/metadata/android/en-US/changelogs/{VERSION_CODE}.txt` - Commit and tag manually diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4c71b5c..5ad86e6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -122,8 +122,8 @@ android { buildConfig = true } - // Disables encrypted signing block added by AGP (not supported by F-Droid) - // See https://gitlab.com/fdroid/fdroiddata/-/merge_requests/24134#note_2590441621 + // Disables dependency metadata to improve privacy + // See https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/dsl/DependenciesInfo dependenciesInfo { // Disables dependency metadata when building APKs. includeInApk = false diff --git a/keystore/README.md b/keystore/README.md index 3a12ceb..075a11c 100644 --- a/keystore/README.md +++ b/keystore/README.md @@ -16,12 +16,11 @@ signing the app during development. The production keystore (`trmnl-app-release.keystore`) is used for all release builds and is stored as a base64-encoded secret in GitHub Actions. The keystore is decoded during CI/CD builds. -**Note:** This project uses only build types (debug/release), not product flavors. There is no separate F-Droid flavor. The release build is F-Droid compatible by default. +**Note:** This project uses only build types (debug/release), not product flavors. ### Release Build Distribution -- **General Distribution**: Release APK signed with production keystore -- **F-Droid Distribution**: Same release APK (F-Droid verifies the signature during their reproducible build process) +The release APK is signed with the production keystore and distributed through Google Play Store. ### Important Notes About the Production Keystore diff --git a/metadata/en-US/fdroid.properties b/metadata/en-US/fdroid.properties deleted file mode 100644 index 17672e4..0000000 --- a/metadata/en-US/fdroid.properties +++ /dev/null @@ -1,3 +0,0 @@ -# For F-Droid builds -fdroid.includesNonFreeAssets=false -fdroid.usePreferredNetworkConfig=true diff --git a/metadata/ink.trmnl.android.yml b/metadata/ink.trmnl.android.yml deleted file mode 100644 index a3f597a..0000000 --- a/metadata/ink.trmnl.android.yml +++ /dev/null @@ -1,31 +0,0 @@ -Categories: - - Internet - - System -License: MIT -AuthorName: TRMNL -AuthorEmail: support@usetrmnl.com -AuthorWebSite: https://usetrmnl.com/ -SourceCode: https://github.com/usetrmnl/trmnl-android -IssueTracker: https://github.com/usetrmnl/trmnl-android/issues -Changelog: https://github.com/usetrmnl/trmnl-android/releases - -AutoName: TRMNL - -RepoType: git -Repo: https://github.com/usetrmnl/trmnl-android.git -Binaries: https://github.com/usetrmnl/trmnl-android/releases/download/v%v/trmnl-v%v.apk - -Builds: - - versionName: 2.4.2 - versionCode: 28 - commit: v2.4.2 - subdir: app - gradle: - - yes - -AllowedAPKSigningKeys: 209b92f5bb0144237251a10fc3ebb53a1117e3dfeb406997bfd6b07f6fb1f248 - -AutoUpdateMode: Version -UpdateCheckMode: Tags -CurrentVersion: 2.4.2 -CurrentVersionCode: 28