Release 0.4.0 #7

Merged
anas merged 1 commits from release/0.4.0 into main 2026-10-07 16:53:59 +00:00
Owner

Twenty commits since v0.3.0, and the tag still pointed at the old one — nothing could be published while main declared a version that was already taken.

0.4.0, not 0.3.1. This is not a patch: tablets and unfolded foldables read in columns, the dictionary and reading settings moved beside the poem instead of over it, couplets sit in cards and share a line where there is room, pages fill in where they load, and the design system that describes all of it now lives in design/.

What's in it

archivesName = "ganjoor-0.4.0"
versionCode  = 6
versionName  = "0.4.0"

Changelog 6.txt in en-US, fa and ur — F-Droid reads these from fastlane/, and all three locales already had 1–5, so the set stays complete.

Release build verified: ganjoor-0.4.0-release-unsigned.apk, 31.7 MB, R8-minified, lintVital clean, builds with no keystore as F-Droid requires.

What is deliberately not in it

releases/ganjoor-0.4.0.apk is not archived, and releases/README.md has no new row.

The signing key is not on this machine. Every release so far is signed with the same certificate:

CN=Ganjoor for Android, O=anas-rashid, C=PK
SHA-256 d3b5a144b600dd6d9ae8236f0a1bd630767e88d7eaa1573edaadbf8e651fe494

and releases/README.md promises that any build upgrades any other in place. Signing 0.4.0 with a new key would break that promise for every existing install — Android refuses to replace an APK with one signed differently, so people would have to uninstall and lose their bookmarks. So the archive row and the checksum wait for the real key rather than being faked or re-keyed.

To finish the GitHub release

  1. Merge this and tag v0.4.0
  2. Copy keystore.properties + the .jks from the Mac into the repo root (both are gitignored)
  3. ./gradlew :app:assembleRelease → signed APK
  4. Archive it in releases/ with its checksum, per the existing convention
  5. Create the GitHub Release on the tag and attach the APK

Steps 3–5 I can do as soon as the key is here.

Twenty commits since `v0.3.0`, and the tag still pointed at the old one — nothing could be published while `main` declared a version that was already taken. **0.4.0, not 0.3.1.** This is not a patch: tablets and unfolded foldables read in columns, the dictionary and reading settings moved beside the poem instead of over it, couplets sit in cards and share a line where there is room, pages fill in where they load, and the design system that describes all of it now lives in `design/`. ## What's in it ``` archivesName = "ganjoor-0.4.0" versionCode = 6 versionName = "0.4.0" ``` Changelog `6.txt` in **en-US, fa and ur** — F-Droid reads these from `fastlane/`, and all three locales already had 1–5, so the set stays complete. Release build verified: `ganjoor-0.4.0-release-unsigned.apk`, 31.7 MB, R8-minified, `lintVital` clean, builds with **no keystore** as F-Droid requires. ## What is deliberately not in it `releases/ganjoor-0.4.0.apk` is **not** archived, and `releases/README.md` has no new row. The signing key is not on this machine. Every release so far is signed with the same certificate: ``` CN=Ganjoor for Android, O=anas-rashid, C=PK SHA-256 d3b5a144b600dd6d9ae8236f0a1bd630767e88d7eaa1573edaadbf8e651fe494 ``` and `releases/README.md` promises that any build upgrades any other in place. Signing 0.4.0 with a new key would break that promise for every existing install — Android refuses to replace an APK with one signed differently, so people would have to uninstall and lose their bookmarks. So the archive row and the checksum wait for the real key rather than being faked or re-keyed. ## To finish the GitHub release 1. Merge this and tag `v0.4.0` 2. Copy `keystore.properties` + the `.jks` from the Mac into the repo root (both are gitignored) 3. `./gradlew :app:assembleRelease` → signed APK 4. Archive it in `releases/` with its checksum, per the existing convention 5. Create the GitHub Release on the tag and attach the APK Steps 3–5 I can do as soon as the key is here.
anas added 1 commit 2026-10-07 16:47:38 +00:00
Twenty commits since v0.3.0, and the tag still pointed at the old one: nothing
could be published while main declared a version that was already taken.

0.4.0 rather than 0.3.1 — this is not a patch. Tablets and unfolded foldables
read in columns now, the dictionary and the reading settings moved beside the
poem instead of over it, couplets sit in cards and share a line where there is
room, pages fill in where they load, and the design system that describes all of
it lives in design/.

Changelog 6 in all three languages, as F-Droid reads them from fastlane/.

The release APK is not archived in releases/ yet: the signing key is not on this
machine, and every release so far shares one key so that each upgrades the last
in place. Signing and archiving wait for it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
anas merged commit 270c28c9c9 into main 2026-10-07 16:53:59 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: anas/ganjoorandroid#7
No description provided.