Skip to content

Release LeanTypeDual 0.1.0 #119

Description

@AsafMah

Goal

Release LeanTypeDual 0.1.0 from dev after the LeanBitLab/LeanType v3.9.5 sync in #118.

Release metadata

  • Version name: 0.1.0
  • Version code: 4100
  • Version policy: visible SemVer restarted at 0.1.0; versionCode 4100 remains monotonic above the prior 3.10.0/4000 release
  • Draft release PR: Release LeanTypeDual 0.1.0 #125

Progress

  • Merge upstream sync PR merge: sync LeanBitLab v3.9.5 #118 into dev
  • Merge pinned v3.9.9 PR merge: sync LeanBitLab v3.9.9 #122 and stacked v4.0.2 PR merge: stack LeanBitLab v4.0.2 #124 into dev
  • Reconcile draft release PR Release LeanTypeDual 0.1.0 #125 with v4.0.2 dev and pass CI run #30170663607
  • Prepare version, changelog, Fastlane note, and release notes
  • Build all four unsigned release candidates and verify version/package/permission metadata
  • Run release-focused regression tests
  • Pass PR Release LeanTypeDual 0.1.0 #125 GitHub Actions unit-test workflow after v4.0.2 reconciliation
  • HEAD-check all 276 downloadable dictionary URLs across main, experimental, and emoji groups
  • Complete high-effort independent review and fix the discovered Android 6–8 direct-IME compatibility defects
  • Fix unshifted tap/swipe title-case promotion and pass casing regression suites in Release LeanTypeDual 0.1.0 #125
  • Build and verify all four signed 0.1.0 APK variants in Actions run #30205992255 (signer SHA-256 c032eafcd7ce9197fd9e636f2c86b1590f0a84f8f73016c66d63c1382af81554)
  • Confirm the same signer on all published v3.9.1 package IDs and verify required v1/JAR coverage for every API 21–23-compatible 0.1.0 flavor
  • Enforce legacy signature coverage in CI and pass final unit run #30220601580 plus signed release run #30220604785
  • Fix the recurring memory-trim crash from the 0.1.0 phone reports and verify the exact lifecycle path on-device
  • Remove the duplicate Text Expander “Expand immediately” control and verify the corrected phone UI
  • Pass final unit CI run #30241802559 after both regression fixes
  • Confirm all four signed artifact fingerprints match the installed non-debug LeanTypeDual package
  • Upgrade the phone's non-debug package in place from 3.9.1/3910 to signed 0.1.0/4100; install final debug 0.1.0; launch both settings apps; preserve the active debug IME
  • Complete behavioral smoke on phone and install/smoke-test the signed APK on tablet
  • Mark Release LeanTypeDual 0.1.0 #125 ready and merge it into dev
  • Promote dev to main, tag v0.1.0, and publish signed release artifacts

Hard release gates

  • The release workflow has the established signing identity in GitHub Actions secrets; all four APKs verify and match the installed production signer. Local placeholder credentials intentionally fail closed.
  • Phone signing/upgrade/app-launch gates pass. Behavioral smoke remains on the phone, and signed install plus full smoke remain on the tablet.
  • Translation refresh is unchanged because Weblate returned a bot-challenge HTML payload rather than a ZIP.
  • Khipro mapping is unchanged because the configured upstream touchscreen.json source is retired (404).

Required device smoke

On both phone and tablet with a correctly signed Standard Full APK:

  • Confirm upgrade install and retention of settings/dictionaries.
  • Enable/select LeanTypeDual and type in a real editor.
  • Verify direct IME switching for an IME-only target and a target subtype.
  • Verify custom-layout restoration across symbols mode, rotation, and keyboard reload.
  • Verify to, no, and meet remain lowercase for taps and swipes without Shift, with shifted/locked controls.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions