Skip to content

Release LeanTypeDual 0.1.0#125

Draft
AsafMah wants to merge 10 commits into
devfrom
chore/release-0.1.0
Draft

Release LeanTypeDual 0.1.0#125
AsafMah wants to merge 10 commits into
devfrom
chore/release-0.1.0

Conversation

@AsafMah

@AsafMah AsafMah commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Restart LeanTypeDual's visible version series at 0.1.0 while retaining Android versionCode 4100. The CI signer exactly matches the installed non-debug 3.9.1/3910 package, so the signed artifacts remain upgrade-compatible. The separate com.asafmah.leantypedual application ID remains the actual collision boundary from upstream LeanType.
  • Include the pinned LeanBitLab v4.0.2 integrations from merge: sync LeanBitLab v3.9.9 #122 and merge: stack LeanBitLab v4.0.2 #124, while preserving LeanTypeDual's Java fallback gesture engine, privacy flavors, two-thumb behavior, and fork-owned release metadata.
  • Keep ordinary lowercase words such as to, no, and meet lowercase for taps and swipes without Shift.
  • Consolidate release publishing onto one fail-fast signing workflow that builds and verifies all four signed APK flavors; Gradle now refuses to package unsigned release artifacts.

Refs #119. Supersedes closed draft #120 after the release branch was renamed from chore/release-3.11.0.

Verification completed

  • All four flavor compile gates pass after v4.0.2 reconciliation.
  • Focused IME, suggestion, Java-fallback, dictionary, AppUpgrade, settings, capitalization, Unicode, immediate-autospace, and combining-mode regressions pass.
  • Full Offline debug baseline: release branch 313 tests / 10 known failures / 1 skipped versus current dev 309 tests / the same 10 failures / 1 skipped.
  • Offline runTests: 313 tests / the same four Windows parser failures / 1 skipped; Linux CI on the reconciled pre-reset commit passed.
  • Standard Full debug APK reports 0.1.0, code 4100, package com.asafmah.leantypedual.debug.
  • Phone upgrade proof: adb install -r upgraded the non-debug package from 3.9.1/3910 to the CI-signed Standard Full 0.1.0/4100 APK; the installed signer still matches, both production and debug settings activities launch without a crash, and the active debug IME remained selected.
  • python -m unittest tools.test_release passes and the release-note generator resolves release_notes_v0.1.0.md.
  • Local unsigned release packaging now fails explicitly instead of emitting installable-looking unsigned APKs.
  • Per-flavor low-API signing coverage is enforced in CI: Standard and Standard Full (minSdk 23) plus Offline Lite (minSdk 21) verify v1/JAR signatures across API 21–23; Offline has minSdk 26 and verifies v2/v3 for its supported devices. Final unit run #30220601580 and release run #30220604785 both pass.

Signing verification

Final Release workflow run #30220604785 built and verified all four signed flavors, including explicit API 21–23 v1/JAR coverage for every compatible flavor. Every APK uses one RSA signer (CN=AsafMah) with certificate SHA-256 c032eafcd7ce9197fd9e636f2c86b1590f0a84f8f73016c66d63c1382af81554. That fingerprint exactly matches the installed non-debug LeanTypeDual 3.9.1 package and each published v3.9.1 package population (com.asafmah.leantypedual, .offline, and .offlinelite); an in-place signed base-package upgrade to 0.1.0 succeeded. Local release packaging without real credentials now fails instead of producing unsigned APKs.

Remaining release gates

  • Complete behavioral phone smoke in a real editor: typing, direct IME switching, custom-layout restoration, and lowercase tap/swipe casing.
  • Install the signed release candidate on the tablet and verify upgrade/data retention plus the same behavioral smoke.
  • Mark this PR ready only after the remaining phone and tablet behavioral smoke gates pass.

No tag or production release should be created from this draft yet.

@AsafMah AsafMah mentioned this pull request Jul 26, 2026
18 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant