From 461add841bf3a8d8a264c8845384e3e6ab2e28d6 Mon Sep 17 00:00:00 2001 From: Suman Biswas Date: Sat, 7 Nov 2026 20:08:54 +0530 Subject: [PATCH 1/2] chore(release): bump to 0.3.2+4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Split APK version codes become 41/42/43. The F-Droid recipe and its README now describe the build × 10 + ABI scheme set in Gradle. Refs #169 --- fdroid/README.md | 18 +++++++-------- fdroid/in.commandlinecoding.elephant.yml | 28 +++++++++++------------ mobile/lib/pages/settings/help_about.dart | 2 +- mobile/pubspec.yaml | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/fdroid/README.md b/fdroid/README.md index 717ad72..7f07739 100644 --- a/fdroid/README.md +++ b/fdroid/README.md @@ -7,22 +7,22 @@ F-Droid checks for new releases by reading `mobile/pubspec.yaml` at each `v*` tag, so the version there must be bumped before tagging. 1. Bump `version:` in `mobile/pubspec.yaml`. Increase both parts: `0.3.1+3` → `0.3.2+4`. The number after `+` is the versionCode and must always go up. -2. Add a changelog at `metadata/en-US/changelogs/<4000 + versionCode>.txt` (for `+4`, that's `4004.txt`). Keep it under 500 characters. +2. Add the changelog as `metadata/en-US/changelogs/.txt`, one file per ABI with the same text (for `+4`: `41.txt`, `42.txt`, `43.txt`). Keep it under 500 characters. 3. Commit, then tag `v` (e.g. `v0.3.2`) and push the tag. The release workflow fails if the tag doesn't match `pubspec.yaml`. F-Droid picks up the new tag automatically within a few days. ## Version codes -APKs are built per ABI, and Flutter derives each versionCode from the `pubspec.yaml` build number: +APKs are built per ABI. `mobile/android/app/build.gradle.kts` overrides Flutter's default offsets so each split gets `pubspec build number × 10 + ABI code`: -| ABI | versionCode | -|---|---| -| armeabi-v7a | 1000 + build number | -| arm64-v8a | 2000 + build number | -| x86_64 | 4000 + build number | +| ABI | versionCode | `+4` | +|---|---|---| +| armeabi-v7a | build × 10 + 1 | 41 | +| arm64-v8a | build × 10 + 2 | 42 | +| x86_64 | build × 10 + 3 | 43 | -The recipe's `VercodeOperation` mirrors this. If a Flutter upgrade changes this scheme, update the recipe. +The recipe's `VercodeOperation` mirrors this. If the scheme changes in Gradle, update the recipe. ## Flutter version @@ -56,5 +56,5 @@ Without `key.properties` or the secrets, release builds are unsigned, which is w 1. Tag the release (see above). 2. Fork [fdroiddata](https://gitlab.com/fdroid/fdroiddata) and copy the recipe to `metadata/in.commandlinecoding.elephant.yml`. -3. Replace `commit: v0.3.1` in each build with the tag's full commit hash. +3. Replace `commit: v0.3.2` in each build with the tag's full commit hash. 4. Run `fdroid lint in.commandlinecoding.elephant` and `fdroid build -v -l in.commandlinecoding.elephant`, then open a merge request. diff --git a/fdroid/in.commandlinecoding.elephant.yml b/fdroid/in.commandlinecoding.elephant.yml index c19eb8b..6bf8717 100644 --- a/fdroid/in.commandlinecoding.elephant.yml +++ b/fdroid/in.commandlinecoding.elephant.yml @@ -14,9 +14,9 @@ RepoType: git Repo: https://github.com/CommandLineCoding/Elephant.git Builds: - - versionName: 0.3.1 - versionCode: 1003 - commit: v0.3.1 + - versionName: 0.3.2 + versionCode: 41 + commit: v0.3.2 subdir: mobile output: build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk srclibs: @@ -37,9 +37,9 @@ Builds: - $$flutter$$/bin/flutter build apk --release --split-per-abi --target-platform="android-arm" ndk: 28.2.13676358 - - versionName: 0.3.1 - versionCode: 2003 - commit: v0.3.1 + - versionName: 0.3.2 + versionCode: 42 + commit: v0.3.2 subdir: mobile output: build/app/outputs/flutter-apk/app-arm64-v8a-release.apk srclibs: @@ -60,9 +60,9 @@ Builds: - $$flutter$$/bin/flutter build apk --release --split-per-abi --target-platform="android-arm64" ndk: 28.2.13676358 - - versionName: 0.3.1 - versionCode: 4003 - commit: v0.3.1 + - versionName: 0.3.2 + versionCode: 43 + commit: v0.3.2 subdir: mobile output: build/app/outputs/flutter-apk/app-x86_64-release.apk srclibs: @@ -86,9 +86,9 @@ Builds: AutoUpdateMode: Version UpdateCheckMode: Tags VercodeOperation: - - '%c + 1000' - - '%c + 2000' - - '%c + 4000' + - '%c * 10 + 1' + - '%c * 10 + 2' + - '%c * 10 + 3' UpdateCheckData: mobile/pubspec.yaml|version:\s.+\+(\d+)|.|version:\s(.+)\+ -CurrentVersion: 0.3.1 -CurrentVersionCode: 4003 +CurrentVersion: 0.3.2 +CurrentVersionCode: 43 diff --git a/mobile/lib/pages/settings/help_about.dart b/mobile/lib/pages/settings/help_about.dart index de3f365..879082a 100644 --- a/mobile/lib/pages/settings/help_about.dart +++ b/mobile/lib/pages/settings/help_about.dart @@ -7,7 +7,7 @@ import 'package:url_launcher/url_launcher.dart'; class HelpAboutPage extends StatelessWidget { const HelpAboutPage({super.key}); - static const String appVersion = '0.3.1'; + static const String appVersion = '0.3.2'; static const String githubUrl = 'https://github.com/commandlinecoding/elephant'; diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 8da1458..d65e4c1 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 0.3.1+3 +version: 0.3.2+4 environment: sdk: ^3.12.0 From cc34c292376bfe9a0a67f2dcbda482318a1885bb Mon Sep 17 00:00:00 2001 From: Suman Biswas Date: Sat, 7 Nov 2026 20:08:54 +0530 Subject: [PATCH 2/2] docs(metadata): refresh F-Droid listing for 0.3.2 Replace the screenshots with 15 taken on a Galaxy S20 FE running this build, add changelogs 41/42/43 (drops 4003.txt from the old scheme), and mention account deletion and HTTPS on any port in the description. Refs #169 --- metadata/en-US/changelogs/4003.txt | 7 ------- metadata/en-US/changelogs/41.txt | 8 ++++++++ metadata/en-US/changelogs/42.txt | 8 ++++++++ metadata/en-US/changelogs/43.txt | 8 ++++++++ metadata/en-US/full_description.txt | 3 ++- metadata/en-US/images/phoneScreenshots/1.png | Bin 1079529 -> 383666 bytes metadata/en-US/images/phoneScreenshots/10.png | Bin 501220 -> 232777 bytes metadata/en-US/images/phoneScreenshots/11.png | Bin 506468 -> 240958 bytes metadata/en-US/images/phoneScreenshots/12.png | Bin 462294 -> 476882 bytes metadata/en-US/images/phoneScreenshots/13.png | Bin 452771 -> 258288 bytes metadata/en-US/images/phoneScreenshots/14.png | Bin 527448 -> 257900 bytes metadata/en-US/images/phoneScreenshots/15.png | Bin 493184 -> 194956 bytes metadata/en-US/images/phoneScreenshots/16.png | Bin 443679 -> 0 bytes metadata/en-US/images/phoneScreenshots/17.png | Bin 447072 -> 0 bytes metadata/en-US/images/phoneScreenshots/18.png | Bin 453982 -> 0 bytes metadata/en-US/images/phoneScreenshots/19.png | Bin 491917 -> 0 bytes metadata/en-US/images/phoneScreenshots/2.png | Bin 1004221 -> 365357 bytes metadata/en-US/images/phoneScreenshots/20.png | Bin 468308 -> 0 bytes metadata/en-US/images/phoneScreenshots/3.png | Bin 1170951 -> 174035 bytes metadata/en-US/images/phoneScreenshots/4.png | Bin 954060 -> 218168 bytes metadata/en-US/images/phoneScreenshots/5.png | Bin 994748 -> 296459 bytes metadata/en-US/images/phoneScreenshots/6.png | Bin 455491 -> 178498 bytes metadata/en-US/images/phoneScreenshots/7.png | Bin 449287 -> 281188 bytes metadata/en-US/images/phoneScreenshots/8.png | Bin 524026 -> 266342 bytes metadata/en-US/images/phoneScreenshots/9.png | Bin 495279 -> 322443 bytes 25 files changed, 26 insertions(+), 8 deletions(-) delete mode 100644 metadata/en-US/changelogs/4003.txt create mode 100644 metadata/en-US/changelogs/41.txt create mode 100644 metadata/en-US/changelogs/42.txt create mode 100644 metadata/en-US/changelogs/43.txt delete mode 100644 metadata/en-US/images/phoneScreenshots/16.png delete mode 100644 metadata/en-US/images/phoneScreenshots/17.png delete mode 100644 metadata/en-US/images/phoneScreenshots/18.png delete mode 100644 metadata/en-US/images/phoneScreenshots/19.png delete mode 100644 metadata/en-US/images/phoneScreenshots/20.png diff --git a/metadata/en-US/changelogs/4003.txt b/metadata/en-US/changelogs/4003.txt deleted file mode 100644 index 511ac10..0000000 --- a/metadata/en-US/changelogs/4003.txt +++ /dev/null @@ -1,7 +0,0 @@ -First release on F-Droid. -- End-to-end encrypted direct messages (Signal Protocol) with safety-number verification -- Group chats with admin roles, replies, message editing, typing indicators and read receipts -- New frosted-glass design with four themes -- Encrypted on-device storage and offline sending -- Username/password, Google or GitHub sign-in -- Connect to Elephant Cloud or your own server diff --git a/metadata/en-US/changelogs/41.txt b/metadata/en-US/changelogs/41.txt new file mode 100644 index 0000000..324ac0b --- /dev/null +++ b/metadata/en-US/changelogs/41.txt @@ -0,0 +1,8 @@ +First release on F-Droid. +- End-to-end encrypted direct messages (Signal Protocol) with safety-number verification +- Group chats, replies, message editing and read receipts +- Four frosted-glass themes and encrypted on-device storage +- New: delete your account from Account settings +- New: HTTPS/WSS switch for self-hosted servers on any port +- Fixed: local data could become unreadable after a force stop +- Clearer errors when editing fails or chats can't load diff --git a/metadata/en-US/changelogs/42.txt b/metadata/en-US/changelogs/42.txt new file mode 100644 index 0000000..324ac0b --- /dev/null +++ b/metadata/en-US/changelogs/42.txt @@ -0,0 +1,8 @@ +First release on F-Droid. +- End-to-end encrypted direct messages (Signal Protocol) with safety-number verification +- Group chats, replies, message editing and read receipts +- Four frosted-glass themes and encrypted on-device storage +- New: delete your account from Account settings +- New: HTTPS/WSS switch for self-hosted servers on any port +- Fixed: local data could become unreadable after a force stop +- Clearer errors when editing fails or chats can't load diff --git a/metadata/en-US/changelogs/43.txt b/metadata/en-US/changelogs/43.txt new file mode 100644 index 0000000..324ac0b --- /dev/null +++ b/metadata/en-US/changelogs/43.txt @@ -0,0 +1,8 @@ +First release on F-Droid. +- End-to-end encrypted direct messages (Signal Protocol) with safety-number verification +- Group chats, replies, message editing and read receipts +- Four frosted-glass themes and encrypted on-device storage +- New: delete your account from Account settings +- New: HTTPS/WSS switch for self-hosted servers on any port +- Fixed: local data could become unreadable after a force stop +- Clearer errors when editing fails or chats can't load diff --git a/metadata/en-US/full_description.txt b/metadata/en-US/full_description.txt index 901a73c..c3e669b 100644 --- a/metadata/en-US/full_description.txt +++ b/metadata/en-US/full_description.txt @@ -12,10 +12,11 @@ Elephant is a privacy-first, open-source messenger. Direct messages are end-to-e
  • Find people by username and share yours as a QR code
  • Sign in with a username and password, or optionally with Google or GitHub
  • Four themes: Frost, Aura, Onyx and Nebula
  • +
  • Delete your account and its messages from the server at any time
  • Your server, your data -Elephant connects to the public server at elephant.commandlinecoding.in by default. The server is also free software (AGPL-3.0), and you can run your own and point the app at it from the sign-in screen. +Elephant connects to the public server at elephant.commandlinecoding.in by default. The server is also free software (AGPL-3.0), and you can run your own and point the app at it from the sign-in screen, with HTTPS on any port. Good to know