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
  • Build and verify all signed variants from final fixed head 2a8e59f1c in release run #30265973777
  • 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
  • Smoke-test the signed build on the phone (install, launch, memory-trim crash path, Text Expander UI); tablet was unavailable and is deferred
  • Mark Release LeanTypeDual 0.1.0 #125 ready and merge it into dev (merge commit 17b2b2b60)
  • Promote dev to main via Release LeanTypeDual 0.1.0 #128, tag v0.1.0, and publish signed release artifacts verified against the established signer

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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