From 7f0d8288b9c176b34adfd6d58de6910443c28a49 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Tue, 6 Oct 2026 14:26:07 +0200 Subject: [PATCH 01/18] chore: move to 19.0 beta Test-bot: skip --- HISTORY.md | 4 ++++ TIER.md | 2 +- VERSION.md | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 4b7e6c6f02..7ac7465222 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,9 @@ # Keyman Version History +## 19.0.300 beta 2026-10-06 + +* chore: move to beta + ## 19.0.299 alpha 2026-10-05 * chore(deps): bump ip-address from 10.5.0 to 10.7.2 in /developer/src/server/src/win32/trayicon/addon-src (#16698) diff --git a/TIER.md b/TIER.md index 4a58007052..65b2df87f7 100644 --- a/TIER.md +++ b/TIER.md @@ -1 +1 @@ -alpha +beta diff --git a/VERSION.md b/VERSION.md index 8ba1724f8c..b6f64c7939 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -19.0.300 \ No newline at end of file +19.0.301 \ No newline at end of file From b5cc838798c4869debad6412b25f1d7ce8006dbb Mon Sep 17 00:00:00 2001 From: Keyman Build Agent Date: Tue, 6 Oct 2026 07:49:57 -0500 Subject: [PATCH 02/18] auto: increment beta version to 19.0.302 Test-bot: skip Build-bot: skip --- VERSION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.md b/VERSION.md index b6f64c7939..6e3edc5a83 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -19.0.301 \ No newline at end of file +19.0.302 \ No newline at end of file From 9a031d1d46dbd95f44c9352797bdb5b8c0c07bbf Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Tue, 6 Oct 2026 15:37:08 +0200 Subject: [PATCH 03/18] fix(mac): lower case 'k' for .pkg.download_info Fixes: #16734 Test-bot: skip Build-bot: skip --- mac/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mac/build.sh b/mac/build.sh index 88eaedf42d..992df40378 100755 --- a/mac/build.sh +++ b/mac/build.sh @@ -388,7 +388,7 @@ do_publish_installer() { if builder_is_ci_build && builder_is_ci_build_level_release; then builder_echo info "writing download info for Keyman installer..." local UPLOAD_PATH="${KEYMAN_MAC_BASE_PATH}/build/upload/${KEYMAN_VERSION}" - write_download_info "${UPLOAD_PATH}" "Keyman-${KEYMAN_VERSION_FOR_FILENAME}.pkg" "Keyman Installer Package" pkg mac + write_download_info "${UPLOAD_PATH}" "keyman-${KEYMAN_VERSION_FOR_FILENAME}.pkg" "Keyman Installer Package" pkg mac do_sentry else builder_echo info "not writing download info because we are not on a CI build..." From 634f36d90f704f27b9028d634acf52845f7b70a0 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Wed, 7 Oct 2026 15:27:05 +1000 Subject: [PATCH 04/18] docs: remove repeated clean up instructions The majority of the Windows clean up said the same steps everytime. They didn't really say anything really other than remove Keyman and sometimes the 3rd-party app to do the test. I have added a general comment to the start of all the tests to cover this. Similar changes to developer.md and mac.md The gestures.md had clean up that was actually the Keyman for Windows Cleanup for tests these have been removed. Note: android and ios and web possilby all need changes but they do seem to vary more. Build-bot: skip --- docs/tests/acceptance/developer.md | 15 + docs/tests/acceptance/gestures.md | 179 -------- docs/tests/acceptance/mac.md | 221 +-------- docs/tests/acceptance/web.md | 90 ++-- docs/tests/acceptance/windows.md | 704 +---------------------------- 5 files changed, 86 insertions(+), 1123 deletions(-) diff --git a/docs/tests/acceptance/developer.md b/docs/tests/acceptance/developer.md index b0a7c76213..f7cd8eb3d6 100644 --- a/docs/tests/acceptance/developer.md +++ b/docs/tests/acceptance/developer.md @@ -1,5 +1,20 @@ # Developer Acceptance Tests +### Clean up instructions for manual tests +For all these acceptance steps to perform a `cleanup` Uninstall Keyman and any third-party applications installed as part for the `Setup` steps. + +If an installation becomes corrupted and it is not possible to uninstall `Keyman Developer` through `Add or remove programs`, clean up the files in the following folders if they exist. + +- %ProgramFiles(x86)%\Keyman or %ProgramFiles%\Keyman +- %CommonProgramFiles(x86)%\Keyman or %CommonProgramFiles%\Keyman +- %ProgramData%\Keyman +- %AppData%\Keyman +- %LocalAppData%\Keyman + +If still having trouble remove the registry values at +- HKCU\Software\Keyman +- HKLM\Software\Wow6432Node\Keyman + **TEST_241** Test case for Debugger_Starts , diff --git a/docs/tests/acceptance/gestures.md b/docs/tests/acceptance/gestures.md index 8882113e12..3aba62a05e 100644 --- a/docs/tests/acceptance/gestures.md +++ b/docs/tests/acceptance/gestures.md @@ -53,21 +53,6 @@ Original TestLodge ID: TC188 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_288** @@ -122,21 +107,6 @@ Original TestLodge ID: TC189 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_289** @@ -190,21 +160,6 @@ Original TestLodge ID: TC190 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_290** @@ -252,21 +207,6 @@ Original TestLodge ID: TC191 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_291** @@ -320,20 +260,6 @@ Original TestLodge ID: TC192 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
**TEST_292** Test case for BASIC_MODIPRESS_HOLD, @@ -381,21 +307,6 @@ Original TestLodge ID: TC193 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_293** @@ -454,21 +365,6 @@ Original TestLodge ID: TC194 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_294** @@ -522,21 +418,6 @@ Original TestLodge ID: TC195 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_295** @@ -586,21 +467,6 @@ Original TestLodge ID: TC196 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_297** @@ -653,21 +519,6 @@ Original TestLodge ID: TC198 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_300** @@ -733,21 +584,6 @@ Original TestLodge ID: TC201 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_302** @@ -807,20 +643,5 @@ Original TestLodge ID: TC203 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- diff --git a/docs/tests/acceptance/mac.md b/docs/tests/acceptance/mac.md index 6262f62111..57f8fd9431 100644 --- a/docs/tests/acceptance/mac.md +++ b/docs/tests/acceptance/mac.md @@ -1,5 +1,8 @@ # macOS Acceptance Tests +### Clean up instructions for manual tests +For all these acceptance steps to perform a `cleanup` Uninstall Keyman and any third-party applications installed as part for the `Setup` steps. + **TEST_173** Test case for Chrome_Google_Docs with Amharic, @@ -48,15 +51,6 @@ Original TestLodge ID: TC113 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall the Amharic keyboard. -3. Uninstall the Chrome browser. - -
- --- **TEST_175** @@ -106,15 +100,6 @@ Original TestLodge ID: TC115 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall the Amharic keyboard. -3. Uninstall Atom Editor. - -
- --- **TEST_178** @@ -165,15 +150,6 @@ Original TestLodge ID: TC118 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall the Amharic keyboard. -3. Uninstall Safari browser. - -
- --- **TEST_180** @@ -224,15 +200,6 @@ Original TestLodge ID: TC120 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall the Amharic keyboard. -3. Uninstall the Firefox browser. - -
- --- **TEST_183** @@ -283,15 +250,6 @@ Original TestLodge ID: TC123 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall the Amharic keyboard. -3. Uninstall the Firefox browser. - -
- --- **TEST_185** @@ -341,15 +299,6 @@ Original TestLodge ID: TC125 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall the Amharic keyboard. -3. Uninstall Notes App. - -
- --- **TEST_188** @@ -399,15 +348,6 @@ Original TestLodge ID: TC128 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall the Amharic keyboard. -3. Uninstall LibreOffice 7.0 app. - -
- --- **TEST_190** @@ -469,14 +409,6 @@ Original TestLodge ID: TC130 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall Chrome browser. - -
- --- **TEST_193** @@ -539,14 +471,6 @@ Original TestLodge ID: TC133 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall Chrome browser. - -
- --- **TEST_195** @@ -608,13 +532,6 @@ Original TestLodge ID: TC135 -
-Cleanup - -1. Uninstall Keyman build on the device. - -
- --- **TEST_198** @@ -676,13 +593,6 @@ Original TestLodge ID: TC138 -
-Cleanup - -1. Uninstall Keyman build on the device. - -
- --- **TEST_200** @@ -747,13 +657,6 @@ Original TestLodge ID: TC140 -
-Cleanup - -1. Uninstall Keyman build on the device. - -
- --- **TEST_203** @@ -815,13 +718,6 @@ Original TestLodge ID: TC143 -
-Cleanup - -1. Uninstall Keyman build on the device. - -
- --- **TEST_205** @@ -882,12 +778,6 @@ Original TestLodge ID: TC145 -
-Cleanup - -1. Uninstall Keyman build on the device. - -
**TEST_208** Test case for MAIL app with Shortcuts, @@ -946,13 +836,6 @@ Original TestLodge ID: TC148 -
-Cleanup - -1. Uninstall Keyman build on the device. - -
- --- **TEST_210** @@ -995,14 +878,6 @@ Original TestLodge ID: TC222 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall Chrome browser. - -
- --- **TEST_213** @@ -1047,14 +922,6 @@ Original TestLodge ID: TC225 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall Chrome browser. - -
- --- **TEST_215** @@ -1094,13 +961,6 @@ Original TestLodge ID: TC235 -
-Cleanup - -1. Uninstall Keyman build on the MAC - -
- --- **TEST_218** @@ -1142,14 +1002,6 @@ Original TestLodge ID: TC238 -
-Cleanup - -1. Uninstall Keyman build on the MAC -SUITE_KMX_PROCESSOR_COMPLIANT_GROUP_LINUX: - -
- --- **TEST_220** @@ -1193,14 +1045,6 @@ Original TestLodge ID: TC250 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall Chrome browser. - -
- --- **TEST_223** @@ -1245,14 +1089,6 @@ Original TestLodge ID: TC253 -
-Cleanup - -1. Uninstall Keyman build on the device. -2. Uninstall Chrome browser. - -
- --- **TEST_226** @@ -1295,14 +1131,6 @@ Original TestLodge ID: TC266 -
-Cleanup - -1. Uninstall Keyman build on the macOS -2. Uninstall the TextEdit app. - -
- --- **TEST_228** @@ -1345,14 +1173,6 @@ Original TestLodge ID: TC268 -
-Cleanup - -1. Uninstall Keyman build on the macOS -2. Uninstall the TextEdit app. - -
- --- **TEST_231** @@ -1401,13 +1221,6 @@ Original TestLodge ID: TC286 -
-Cleanup - -1. Uninstall the Keyman build on the macOS. - -
- --- **TEST_233** @@ -1451,13 +1264,6 @@ Original TestLodge ID: TC288 -
-Cleanup - -1. Uninstall the Keyman build on the macOS. - -
- --- **TEST_236** @@ -1505,13 +1311,6 @@ Original TestLodge ID: TC291 -
-Cleanup - -1. Uninstall the Keyman build on the macOS. - -
- --- **TEST_238** @@ -1558,13 +1357,6 @@ Original TestLodge ID: TC293 -
-Cleanup - -1. Uninstall the Keyman build on the macOS. - -
- --- **TEST_341** @@ -1618,12 +1410,5 @@ TC - fix(mac): handle PackageInfo section in kmp.inf file #13876 -
-Cleanup - -1. Uninstall the Keyman build on macOS. - -
- --- diff --git a/docs/tests/acceptance/web.md b/docs/tests/acceptance/web.md index e8ca5f6b7d..c915c05517 100644 --- a/docs/tests/acceptance/web.md +++ b/docs/tests/acceptance/web.md @@ -36,7 +36,7 @@ Original TestLodge ID: TC162 1. Open Firefox browser in Windows OS. 2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar. -3.Verify that the testing index page opens. +3. Verify that the testing index page opens. 4. Click 'View Keymanweb use samples' link button. 5. Verify KeymanWeb Samples page opens. 6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -45,7 +45,7 @@ Original TestLodge ID: TC162 9. Verify it produces ‘ŋ’ 10. Open Chrome browser in Windows OS. 11. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar. -12.Verify that the testing index page opens. +12. Verify that the testing index page opens. 13. Click 'View Keymanweb use samples' link button. 14. Verify KeymanWeb Samples page opens. 15. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -54,7 +54,7 @@ Original TestLodge ID: TC162 18. Verify it produces ‘ŋ’ 19. Open Safari browser in macOS. 20. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar. -21.Verify that the testing index page opens. +21. Verify that the testing index page opens. 22. Click 'View Keymanweb use samples' link button. 23. Verify KeymanWeb Samples page opens. 24. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -63,7 +63,7 @@ Original TestLodge ID: TC162 27. Verify it produces ‘ŋ’ 28. Open Chrome browser in macOS. 29. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar. -30.Verify that the testing index page opens. +30. Verify that the testing index page opens. 31. Click 'View Keymanweb use samples' link button. 32. Verify KeymanWeb Samples page opens. 33. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -72,7 +72,7 @@ Original TestLodge ID: TC162 36. Verify it produces ‘ŋ’ 37. Open Firefox in macOS. 38. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar. -39.Verify that the testing index page opens. +39. Verify that the testing index page opens. 40. Click 'View Keymanweb use samples' link button. 41. Verify KeymanWeb Samples page opens. 42. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -81,7 +81,7 @@ Original TestLodge ID: TC162 45. Verify it produces ‘ŋ’ 46. Open Firefox in Linux OS. 47. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar. -48.Verify that the testing index page opens. +48. Verify that the testing index page opens. 49. Click 'View Keymanweb use samples' link button. 50. Verify KeymanWeb Samples page opens. 51. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -141,7 +141,7 @@ Original TestLodge ID: TC163 1. Open Firefox browser in Windows OS. 2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar. -3.Verify that the testing index page opens. +3. Verify that the testing index page opens. 4. Click 'View Keymanweb use samples' link button. 5. Verify KeymanWeb Samples page opens. 6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -151,7 +151,7 @@ Original TestLodge ID: TC163 10. Verify that the Khmer Angkor keyboard is added and displayed on the Screen. 11. Open Chrome browser in Windows OS. 12. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -13.Verify that the testing index page opens. +13. Verify that the testing index page opens. 14. Click 'View Keymanweb use samples' link button. 15. Verify KeymanWeb Samples page opens. 16. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -161,7 +161,7 @@ Original TestLodge ID: TC163 20. Verify that the Khmer Angkor keyboard is added and displayed on the Screen. 21. Open Safari browser in macOS. 22. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -23.Verify that the testing index page opens. +23. Verify that the testing index page opens. 24. Click 'View Keymanweb use samples' link button. 25. Verify KeymanWeb Samples page opens. 26. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -171,7 +171,7 @@ Original TestLodge ID: TC163 30. Verify that the Khmer Angkor keyboard is added and displayed on the Screen. 31. Open Chrome browser in macOS. 32. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -33.Verify that the testing index page opens. +33. Verify that the testing index page opens. 34. Click 'View Keymanweb use samples' link button. 35. Verify KeymanWeb Samples page opens. 36. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -181,7 +181,7 @@ Original TestLodge ID: TC163 40. Verify that the Khmer Angkor keyboard is added and displayed on the Screen. 41. Open Firefox browser in macOS. 42. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -43.Verify that the testing index page opens. +43. Verify that the testing index page opens. 44. Click 'View Keymanweb use samples' link button. 45. Verify KeymanWeb Samples page opens. 46. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -191,7 +191,7 @@ Original TestLodge ID: TC163 50. Verify that the Khmer Angkor keyboard is added and displayed on the Screen. 51. Open Firefox browser in Linux OS. 52. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -53.Verify that the testing index page opens. +53. Verify that the testing index page opens. 54. Click 'View Keymanweb use samples' link button. 55. Verify KeymanWeb Samples page opens. 56. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -252,7 +252,7 @@ Original TestLodge ID: TC164 1. Open Firefox browser in Windows OS. 2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -3.Verify that the testing index page opens. +3. Verify that the testing index page opens. 4. Click 'View Keymanweb use samples' link button. 5. Verify KeymanWeb Samples page opens. 6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -276,7 +276,7 @@ Original TestLodge ID: TC164 24. Verify it deletes the remaining letter on the screen. 25. Open Chrome browser in Windows OS. 22. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -23.Verify that the testing index page opens. +23. Verify that the testing index page opens. 24. Click 'View Keymanweb use samples' link button. 25. Verify KeymanWeb Samples page opens. 26. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -300,7 +300,7 @@ Original TestLodge ID: TC164 40. Verify it deletes the remaining letter on the screen. 41. Open Safari browser in macOS 42. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -43.Verify that the testing index page opens. +43. Verify that the testing index page opens. 44. Click 'View Keymanweb use samples' link button. 45. Verify KeymanWeb Samples page opens. 46. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -324,7 +324,7 @@ Original TestLodge ID: TC164 64. Verify it deletes the remaining letter on the screen. 61. Open Chrome browser in macOS. 62. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -63.Verify that the testing index page opens. +63. Verify that the testing index page opens. 64. Click 'View Keymanweb use samples' link button. 65. Verify KeymanWeb Samples page opens. 66. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -348,7 +348,7 @@ Original TestLodge ID: TC164 84. Verify it deletes the remaining letter on the screen. 85. Open Firefox browser in macOS. 86. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -87.Verify that the testing index page opens. +87. Verify that the testing index page opens. 88. Click 'View Keymanweb use samples' link button. 89. Verify KeymanWeb Samples page opens. 90. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -372,7 +372,7 @@ Original TestLodge ID: TC164 108. Verify it deletes the remaining letter on the screen. 101. Open Firefox browser in Linux OS. 102. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -103.Verify that the testing index page opens. +103. Verify that the testing index page opens. 104. Click 'View Keymanweb use samples' link button. 105. Verify KeymanWeb Samples page opens. 106. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -447,7 +447,7 @@ Original TestLodge ID: TC165 1. Open Firefox browser in Windows OS. 2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -3.Verify that the testing index page opens. +3. Verify that the testing index page opens. 4. Click 'View Keymanweb use samples' link button. 5. Verify KeymanWeb Samples page opens. 6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -458,7 +458,7 @@ Original TestLodge ID: TC165 11. Verify that a Spanish keyboard is added to the list. 12. Open Chrome browser in Windows OS. 13. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -14.Verify that the testing index page opens. +14. Verify that the testing index page opens. 15. Click 'View Keymanweb use samples' link button. 16. Verify KeymanWeb Samples page opens. 17. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -469,7 +469,7 @@ Original TestLodge ID: TC165 22. Verify that a Spanish keyboard is added to the list. 23. Open Safari browser in macOS. 24. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -25.Verify that the testing index page opens. +25. Verify that the testing index page opens. 26. Click 'View Keymanweb use samples' link button. 27. Verify KeymanWeb Samples page opens. 28. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -480,7 +480,7 @@ Original TestLodge ID: TC165 33. Verify that a Spanish keyboard is added to the list. 34. Open Chrome browser in macOS. 35. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -36.Verify that the testing index page opens. +36. Verify that the testing index page opens. 37. Click 'View Keymanweb use samples' link button. 38. Verify KeymanWeb Samples page opens. 39. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -491,7 +491,7 @@ Original TestLodge ID: TC165 44. Verify that a Spanish keyboard is added to the list. 45. Open Firefox browser in macOS. 46. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -47.Verify that the testing index page opens. +47. Verify that the testing index page opens. 48. Click 'View Keymanweb use samples' link button. 49. Verify KeymanWeb Samples page opens. 50. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -502,7 +502,7 @@ Original TestLodge ID: TC165 55. Verify that a Spanish keyboard is added to the list. 56. Open Firefox browser in Linux OS. 57. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -58.Verify that the testing index page opens. +58. Verify that the testing index page opens. 59. Click 'View Keymanweb use samples' link button. 60. Verify KeymanWeb Samples page opens. 61. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -564,7 +564,7 @@ Original TestLodge ID: TC166 1. Open Firefox browser in Windows OS. 2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -3.Verify that the testing index page opens. +3. Verify that the testing index page opens. 4. Click 'View Keymanweb use samples' link button. 5. Verify KeymanWeb Samples page opens. 6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -677,7 +677,7 @@ Original TestLodge ID: TC167 45. Type d. 46. Verify that the final letter should be xdx. 47. Open Chrome browser in Windows OS. -48.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +48. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 49. Verify that the testing index page opens. 50. Click 'View Keymaweb website-oriented manual test pages' link button. 51. Verify KeymanWeb Samples page opens. @@ -951,7 +951,7 @@ Original TestLodge ID: TC169 Action 1. Open Firefox browser in Linux OS. -2.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 3. Verify that the testing index page opens. 4. Click 'View Keymaweb website-oriented manual test pages' link button. 5. Verify KeymanWeb Samples page opens. @@ -1176,7 +1176,7 @@ Original TestLodge ID: TC171 11. Click / touch a blank area of the page. 12. Verify that the OSK should automatically hide. 13. Open Chrome in windows OS. -14.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +14. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 15. Verify that the testing index page opens. 16. Click 'Tests the new Attachment/Enablement API functionality' link button. 17. Verify KeymanWeb Samples - Attachment API Testing page opens. @@ -1293,8 +1293,8 @@ Original TestLodge ID: TC172 1. Open Firefox browser in Windows OS. 2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -3.Verify that the testing index page opens. -4.Click 'Tests the new Attachment/Enablement API functionality' link button. +3. Verify that the testing index page opens. +4. Click 'Tests the new Attachment/Enablement API functionality' link button. 5. Verify KeymanWeb Samples - Attachment API Testing page opens. 6. Click the ‘Create Inputs’ button one time. 7. Click the ‘Create Textarea’ button one time. @@ -1451,7 +1451,7 @@ Verify KeymanWeb Samples - Attachment API Testing page opens. 15. Click Dynamic area #2. 16. Verify that the Lao keyboard should be displayed. 17. Open Chrome browser in Windows OS. -18.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +18. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 19. Verify that the testing index page opens. 20. Click 'Tests the new Attachment/Enablement API functionality' link button. 21. Verify KeymanWeb Samples - Attachment API Testing page opens. @@ -1523,7 +1523,7 @@ Verify KeymanWeb Samples - Attachment API Testing page opens. 87. Click Dynamic area #2. 88. Verify that the Lao keyboard should be displayed. 89. Open Firefox browser in macOS. -90.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +90. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 91. Verify that the testing index page opens. 92. Click 'Tests the new Attachment/Enablement API functionality' link button. 93. Verify KeymanWeb Samples - Attachment API Testing page opens. @@ -1628,7 +1628,7 @@ Original TestLodge ID: TC174 15. Type 2. 16. Verify the second option should replace the context. 17. Open Chrome browser in Windows OS. -18.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +18. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 19. Verify that the testing index page opens. 20. Click 'View Keymaweb website-oriented manual test pages' link button. 21. Verify KeymanWeb Samples page opens. @@ -1644,7 +1644,7 @@ Original TestLodge ID: TC174 31. Type 2. 32. Verify the second option should replace the context. 33. Open Safari browser in macOS. -34.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +34. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 35. Verify that the testing index page opens. 36. Click 'View Keymaweb website-oriented manual test pages' link button. 37. Verify KeymanWeb Samples page opens. @@ -1692,7 +1692,7 @@ Original TestLodge ID: TC174 80. Type 2. 81. Verify the second option should replace the context. 82. Open Firefox in Linux OS. -83.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +83. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 84. Verify that the testing index page opens. 85. Click 'View Keymaweb website-oriented manual test pages' link button. 86. Verify KeymanWeb Samples page opens. @@ -1760,10 +1760,10 @@ Original TestLodge ID: TC175 1. Open Firefox browser in Windows OS. 2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -3.Verify that the testing index page opens. +3. Verify that the testing index page opens. 4. Click 'View Keymaweb website-oriented manual test pages' link button. 5. Verify KeymanWeb Samples page opens. -6.Click 'Test unminified Keymanweb' link button. +6. Click 'Test unminified Keymanweb' link button. 7. Verify the corresponding KeymaWeb Sample page opens. 8. Type 'japanese' under "Add a keyboard by keyboard name" text box. 9. Click Add button. @@ -1843,7 +1843,7 @@ Original TestLodge ID: TC175 83. Verify that the OSK should remain visible. 84. Verify the caret should move from the input control to the textarea control. 85. Open Chrome browser in macOS. -86.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +86. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 87. Verify that the testing index page opens. 88. Click 'View Keymaweb website-oriented manual test pages' link button. 89. Verify KeymanWeb Samples page opens. @@ -2028,7 +2028,7 @@ Original TestLodge ID: TC176 49. Verify that the letter ‘ŋ’ appears on the text input screen. 50. Click the Safari browser in iPad Tablet. 51. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. -52.Verify that the testing index page opens. +52. Verify that the testing index page opens. 53. Click 'View Keymanweb use samples' link button. 54. Verify KeymanWeb Samples page opens. 55. Click 'Example1 - Toggle UI, all resources in same folder as page' link button. @@ -2039,7 +2039,7 @@ Original TestLodge ID: TC176 60. Long-press ‘n’ key, while keeping the finger down, move on the long-press options ‘ŋ‘ so it's highlighted, and release. 61. Verify that the letter ‘ŋ’ appears on the text input screen. 62. Click the Safari browser in the iPad Tablet with a physical keyboard. -63.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +63. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 64. Verify that the testing index page opens. 65. Click 'View Keymanweb use samples' link button. 66. Verify KeymanWeb Samples page opens. @@ -2262,7 +2262,7 @@ Original TestLodge ID: TC178 48. Hit Backspace key. 49. Verify that it shows an empty text area. 50. Click the Safari browser in an iPhone Mobile. -51.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +51. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 52. Verify that the testing index page opens. 53. Click 'View Keymanweb use samples' link button. 54. Verify KeymanWeb Samples page opens. @@ -2432,7 +2432,7 @@ Original TestLodge ID: TC179 20. Click the Add button. 21. Verify that the Spanish keyboard is added to the list. 22. Click Safari browser in an iPhone Mobile. -23.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +23. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 24. Verify that the testing index page opens. 25. Click 'View Keymanweb use samples' link button. 26. Verify KeymanWeb Samples page opens. @@ -2807,7 +2807,7 @@ Original TestLodge ID: TC182 8. Verify that manual attachment mode results in a page with no KMW-activated controls. 9. Verify that the KeymanWeb is properly attached to and detaches from each relevant type of control with the page’s API-interface controls. 10. Click the Chrome browser icon in an Android Mobile device attached with a physical keyboard. -11.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +11. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 12. Verify that the testing index page opens. 13. Click 'View Keymanweb website-oriented manual test pages' link button. 14. Verify KeymanWeb 17 Testing page opens. @@ -3081,7 +3081,7 @@ Original TestLodge ID: TC184 16. Click / touch a blank area of the page. 17. Verify that the OSK should automatically hide. 18. Click the Chrome browser in Android mobile attached with physical keyboard -19.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +19. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 20. Verify that the testing index page opens. 21. Click 'View Keymanweb website-oriented manual test pages' link button. 22. Verify KeymanWeb 17 Testing page opens. @@ -3132,7 +3132,7 @@ Original TestLodge ID: TC184 73. Click / touch a blank area of the page. 74. Verify that the OSK should automatically hide. 75. Click the Safari browser icon on the iPad device. -76.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. +76. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar. 77. Verify that the testing index page opens. 78. Click 'View Keymanweb website-oriented manual test pages' link button. 79. Verify KeymanWeb 17 Testing page opens. diff --git a/docs/tests/acceptance/windows.md b/docs/tests/acceptance/windows.md index b8edc32dc9..dce81ce2f9 100644 --- a/docs/tests/acceptance/windows.md +++ b/docs/tests/acceptance/windows.md @@ -1,5 +1,20 @@ # Windows Acceptance Tests +### Clean up instructions for manual tests +For all these acceptance steps to perform a `cleanup` Uninstall Keyman and any third-party applications installed as part for the `Setup` steps. + +If an installation becomes corrupted and it is not possible to uninstall `Keyman for Windows` through `Add or remove programs`, clean up the files in the following folders if they exist. + +- %ProgramFiles(x86)%\Keyman or %ProgramFiles%\Keyman +- %CommonProgramFiles(x86)%\Keyman or %CommonProgramFiles%\Keyman +- %ProgramData%\Keyman +- %AppData%\Keyman +- %LocalAppData%\Keyman + +If still having trouble remove the registry values at +- HKCU\Software\Keyman +- HKLM\Software\Wow6432Node\Keyman + **TEST_1** Test case for INSTALL Keyman @@ -56,21 +71,6 @@ Original TestLodge ID: TC01 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the Keyman Uninstallation completed successfully. - -
- --- **TEST_2** @@ -134,21 +134,6 @@ Original TestLodge ID: TC02 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_3** @@ -203,21 +188,6 @@ Original TestLodge ID: TC03 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_4** @@ -269,21 +239,6 @@ Original TestLodge ID: TC04 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_5** @@ -328,21 +283,6 @@ Original TestLodge ID: TC05 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens.yman 16.0’ from the list. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_6** @@ -367,9 +307,9 @@ Original TestLodge ID: TC06
Setup -1.Install Keyman latest Stable build from Keyman.com site. -2.Install CapsLock Keyboard. -3.CapsLock is currently on +1. Install Keyman latest Stable build from Keyman.com site. +2. Install CapsLock Keyboard. +3. CapsLock is currently on 4. Currently active keyboard is the CapsLock Keyboard.
@@ -384,21 +324,6 @@ Original TestLodge ID: TC06 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_7** @@ -423,10 +348,10 @@ Original TestLodge ID: TC07
Setup -1.Install Keyman latest Stable build from Keyman.com Site. -2.Install CapsLock Keyboard. +1. Install Keyman latest Stable build from Keyman.com Site. +2. Install CapsLock Keyboard. 3. CapsLock is currently on -4.Currently active keyboard is the CapsLock Keyboard. +4. Currently active keyboard is the CapsLock Keyboard.
@@ -440,21 +365,6 @@ Original TestLodge ID: TC07 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_8** @@ -496,21 +406,6 @@ Original TestLodge ID: TC08 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_9** @@ -552,21 +447,6 @@ Original TestLodge ID: TC09 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_10** @@ -608,21 +488,6 @@ Original TestLodge ID: TC10 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_11** @@ -667,21 +532,6 @@ Original TestLodge ID: TC11 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_12** @@ -728,21 +578,6 @@ Original TestLodge ID: TC12 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_13** @@ -789,21 +624,6 @@ Original TestLodge ID: TC13 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_14** @@ -848,21 +668,6 @@ Original TestLodge ID: TC14 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_15** @@ -908,21 +713,6 @@ Original TestLodge ID: TC15 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_16** @@ -964,21 +754,6 @@ Original TestLodge ID: TC16 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_17** @@ -1022,21 +797,6 @@ Original TestLodge ID: TC17 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_18** @@ -1081,21 +841,6 @@ Original TestLodge ID: TC18 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_19** @@ -1139,21 +884,6 @@ Original TestLodge ID: TC19 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_20** @@ -1198,21 +928,6 @@ Original TestLodge ID: TC20 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_21** @@ -1273,21 +988,6 @@ Original TestLodge ID: TC21 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_22** @@ -1331,21 +1031,6 @@ Original TestLodge ID: TC22 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_23** @@ -1389,21 +1074,6 @@ Original TestLodge ID: TC23 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_24** @@ -1462,21 +1132,6 @@ Original TestLodge ID: TC24 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_25** @@ -1535,21 +1190,6 @@ Original TestLodge ID: TC25 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_26** @@ -1582,7 +1222,7 @@ Original TestLodge ID: TC26 6. Create New>DWORD(32-bit) key. 7. Rename ‘ShowIMWindowAlways’ to the new DWORD key. 8. Set the Key value to1 -9.This keyboard uses the letters aeom to allow IMX input. This time a IM window should display. +9. This keyboard uses the letters aeom to allow IMX input. This time a IM window should display. @@ -1607,21 +1247,6 @@ Original TestLodge ID: TC26 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_27** @@ -1667,21 +1292,6 @@ Original TestLodge ID: TC27 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_28** @@ -1727,21 +1337,6 @@ Original TestLodge ID: TC28 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_29** @@ -1789,21 +1384,6 @@ Original TestLodge ID: TC29 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_30** @@ -1851,21 +1431,6 @@ Original TestLodge ID: TC30 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_31** @@ -1910,21 +1475,6 @@ Original TestLodge ID: TC31 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_32** @@ -1969,21 +1519,6 @@ Original TestLodge ID: TC32 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_33** @@ -2032,21 +1567,6 @@ Original TestLodge ID: TC33 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_34** @@ -2091,21 +1611,6 @@ Original TestLodge ID: TC34 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_35** @@ -2141,19 +1646,7 @@ Original TestLodge ID: TC186 2. Change the directory path to where we downloaded the Keyman Alpha Build. 3. Type the command : keyman latest version number.exe -o (say “17.0.210.exe -o”). 4. Verify that the self extract process happened without any errors. -5.) Verify the build was installed successfully without showing any error messages. - - - -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Click the Control Panel option. -3. Click the ‘Uninstall a Program’ option. -4. Select the installed Keyman version from the list. -5. Click the Uninstall option. -6. Verify that the keyman uninstallation was completed successfully. +5. ) Verify the build was installed successfully without showing any error messages.
@@ -2213,21 +1706,6 @@ Original TestLodge ID: TC187 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Task bar) -2. Verify that the ‘Control panel’ appears in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the the Keyman Uninstallation completed successfully - -
- --- **TEST_38** @@ -2270,21 +1748,6 @@ Original TestLodge ID: TC205 -
-Cleanup - -1. Type ‘Control panel’ in the Search bar (in Taskbar) -2. Verify that the ‘Control panel’ appeared in the menu list. -3. Click the Control panel option. -4. Verify that the Control Panel dialog appeared. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the Keyman Uninstallation was completed successfully - -
- --- **TEST_41** @@ -2326,14 +1789,6 @@ Original TestLodge ID: TC218 -
-Cleanup - -1. Uninstall Keyman build on the Windows -2. Uninstall the TextEdit app. - -
- --- **TEST_43** @@ -2376,14 +1831,6 @@ Original TestLodge ID: TC220 -
-Cleanup - -1. Uninstall Keyman build on the Windows -2. Uninstall the TextEdit app. - -
- --- **TEST_46** @@ -2425,13 +1872,6 @@ Original TestLodge ID: TC232 -
-Cleanup - -1. Uninstall Keyman build on the Windows - -
- --- **TEST_48** @@ -2473,13 +1913,6 @@ Original TestLodge ID: TC234 -
-Cleanup - -1. Uninstall Keyman build on the Windows - -
- --- **TEST_51** @@ -2522,14 +1955,6 @@ Original TestLodge ID: TC246 -
-Cleanup - -1. Uninstall Keyman build on the Windows -2. Uninstall the TextEdit app. - -
- --- **TEST_53** @@ -2572,14 +1997,6 @@ Original TestLodge ID: TC248 -
-Cleanup - -1. Uninstall Keyman build on the Windows -2. Uninstall the TextEdit app. - -
- --- **TEST_56** @@ -2622,14 +2039,6 @@ Original TestLodge ID: TC261 -
-Cleanup - -1. Uninstall Keyman build on the Windows -2. Uninstall the WordPad app. - -
- --- **TEST_58** @@ -2672,14 +2081,6 @@ Original TestLodge ID: TC263 -
-Cleanup - -1. Uninstall Keyman build on the Windows -2. Uninstall the WordPad app. - -
- --- **TEST_61** @@ -2733,21 +2134,6 @@ Original TestLodge ID: TC295 -
-Cleanup - -1. Type ‘Control panel’ in the search bar (in the taskbar) -2. Verify that the ‘Control Panel’ appears in the menu list. -3. Click the Control Panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the Keyman Uninstallation was completed successfully. - -
- --- **TEST_304** @@ -2809,21 +2195,6 @@ TC - feat(windows): kmshell switch handling for the installing state_TEST_INSTAL -
-Cleanup - -1. Type ‘Control panel’ in the search bar (in the task bar) -2. Verify that the ‘Control Panel’ appears in the menu list. -3. Click the Control Panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the Keyman Uninstallation was completed successfully. - -
- --- **TEST_309** @@ -2887,21 +2258,6 @@ TC - fix(windows): handle keyboard package not downloaded #12948 -
-Cleanup - -1. Type ‘Control panel’ in the search bar (in the task bar) -2. Verify that the ‘Control Panel’ appears in the menu list. -3. Click the Control Panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the Keyman Uninstallation was completed successfully. - -
- --- **TEST_324** @@ -2950,17 +2306,3 @@ TC - feat(windows): UI layout for update tab_TEST_UI_UPDATES_KBD #12840 -
-Cleanup - -1. Type ‘Control panel’ in the search bar (in the task bar) -2. Verify that the ‘Control Panel’ appears in the menu list. -3. Click the Control Panel option. -4. Verify that the Control Panel dialog appears. -5. Click the ‘Uninstall a Program’ option. -6. Verify that the Programs and Features dialog box opens. -7. Select the installed Keyman version from the list. -8. Click the Uninstall option. -9. Verify that the Keyman Uninstallation was completed successfully. - -
From e7bb9fbb7a39eb63169bffcb43c99c973d9d817a Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 7 Oct 2026 10:24:14 +0200 Subject: [PATCH 05/18] docs: update v19 whats-new Also references new endpoint on keyman.com which redirects to list of github issues that relate to the platform for a given date range (our cleanest way of showing changes at this time). Test-bot: skip --- android/docs/engine/whatsnew.md | 7 +++++- android/docs/help/about/whatsnew.md | 6 +++++ developer/docs/help/whatsnew.md | 10 ++++++++ ios/docs/help/about/whatsnew.md | 4 ++++ linux/docs/help/about/whatsnew.md | 13 +++++++++++ mac/docs/help/about/whatsnew.md | 4 ++++ web/docs/engine/whatsnew.md | 36 +++++++++++++++++++++++++++++ windows/docs/engine/whatsnew.md | 19 +++++++++++++++ windows/docs/help/about/whatsnew.md | 7 ++++++ 9 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 windows/docs/engine/whatsnew.md diff --git a/android/docs/engine/whatsnew.md b/android/docs/engine/whatsnew.md index 9d9f748b3d..2c83245495 100644 --- a/android/docs/engine/whatsnew.md +++ b/android/docs/engine/whatsnew.md @@ -2,7 +2,12 @@ title: What's New in Keyman Engine 19.0 for Android --- -* Added API for broadcasting when Keyman system keyboard font changes (#15193) +* **BREAKING** Apps that use the functionality of Keyman Engine for Android will have to add `androidx.webkit:webkit:1.14.0` as a dependency (#16146) +* **KNOWN ISSUE** `sil_euro_latin` keyboard must be included in an app if `setDefaultKeyboard()` is not called during initialization (#16215) +* Added [Intent `com.tavultesoft.kmapro.keyboard_changed`](KMAPro/) which is broadcast when Keyman system keyboard changes and includes font name (#15193) +* Added [`KMManager.getKeyboardHeightMax()`](KMManager/getKeyboardHeightMax) API (#13663) +* Added [`KMManager.getKeyboardHeightMin()`](KMManager/getKeyboardHeightMin) API (#13663) +* Clarified font filename vs facename in various APIs (#16211) ## See Also * [Keyman Engine for Android Documentation](index) \ No newline at end of file diff --git a/android/docs/help/about/whatsnew.md b/android/docs/help/about/whatsnew.md index d0ca85e93f..d3ed69a614 100644 --- a/android/docs/help/about/whatsnew.md +++ b/android/docs/help/about/whatsnew.md @@ -4,3 +4,9 @@ title: What's New in Keyman 19.0 for Android Here are some of the new features we have added to Keyman 19.0 for Android: +- Keyboard search is now localized for several languages (#15510) +- Support for dark mode (#15827) +- Refreshed and modernized settings user interface (#15827) +- Automatic acceptance of corrections (#12893) +- Improvements to interface for keyboard resizing (#15267) +- About [220 other fixes and changes](https://keyman.com/go/app/whatsnew/android/19.0) diff --git a/developer/docs/help/whatsnew.md b/developer/docs/help/whatsnew.md index 1005476c3d..a0541ad51f 100644 --- a/developer/docs/help/whatsnew.md +++ b/developer/docs/help/whatsnew.md @@ -3,3 +3,13 @@ title: What's new in Keyman Developer 19.0 --- Keyman Developer 19 has the following significant changes: + +- Updated to Unicode 17.0 (#14728) +- Updated langtags.json, ISO639-3, language-subtag-registry (#16371) +- Validate a keyboard or lexical model project frmo within Keyman Developer (#16076) +- Support for line numbers in LDML keyboard compiler messages (#13375) +- Convert from .keylayout (macOS keyboards, Ukelele) into .kmn (#12191) +- Compiler improvements - prevent illegal constructs (#16723, #16726, #36710, #16717) +- Various improvements to touch layout editor (#16572, #16520, #16517, #16516, #16509, #16456, #16370, #16347, #16129, #15371, #15338, #15243, #15060, #14228) +- Support output folder and `--continue-on-error` in kmc (#16453) +- About [400 other fixes and changes](https://keyman.com/go/app/whatsnew/developer/19.0) diff --git a/ios/docs/help/about/whatsnew.md b/ios/docs/help/about/whatsnew.md index b123b1f23c..6f51dd4b61 100644 --- a/ios/docs/help/about/whatsnew.md +++ b/ios/docs/help/about/whatsnew.md @@ -3,3 +3,7 @@ title: What's New in Keyman 19.0 for iPhone and iPad --- Here are some of the new features we have added to Keyman for iPhone and iPad 19.0: + +- Keyboard search is now localized for several languages (#15510) +- Automatic acceptance of corrections (#12893) +- About [150 other fixes and changes](https://keyman.com/go/app/whatsnew/ios/19.0) diff --git a/linux/docs/help/about/whatsnew.md b/linux/docs/help/about/whatsnew.md index 5521261b96..2e6175c2b4 100644 --- a/linux/docs/help/about/whatsnew.md +++ b/linux/docs/help/about/whatsnew.md @@ -3,3 +3,16 @@ title: What's New in Keyman 19.0 for Linux --- Here are some of the new features we have added to Keyman for Linux 19.0: + +- Keyboard search is now localized for several languages (#15510) +- Generate a diagnostic report for technical support (#15576) +- About [275 other fixes and changes](https://keyman.com/go/app/whatsnew/linux/19.0) + +Known issues: + +- `onboard-keyman` package no longer gets installed automatically when + installing `keyman`. The reason is that it doesn't work properly with Wayland + and is not available in the official Debian/Ubuntu repos + ([#14769](https://github.com/keymanapp/keyman/issues/14769)). It is still + possible to install it manually in your package manager, or in a terminal + window with `sudo apt install onboard-keyman`. \ No newline at end of file diff --git a/mac/docs/help/about/whatsnew.md b/mac/docs/help/about/whatsnew.md index 8cc29bdadb..9e683a4671 100644 --- a/mac/docs/help/about/whatsnew.md +++ b/mac/docs/help/about/whatsnew.md @@ -3,3 +3,7 @@ title: What's New in Keyman 19.0 for macOS --- Here are some of the new features we have added to Keyman 19.0 for macOS: + +- Keyboard search is now localized for several languages (#15510) +- Redesigned and modernized app - new installer, new configuration app (#15328) +- About [180 other fixes and changes](https://keyman.com/go/app/whatsnew/mac/19.0) diff --git a/web/docs/engine/whatsnew.md b/web/docs/engine/whatsnew.md index 8828f3b81f..0b98cd04db 100644 --- a/web/docs/engine/whatsnew.md +++ b/web/docs/engine/whatsnew.md @@ -2,6 +2,42 @@ title: What's New in KeymanWeb 19.0 --- +* **BREAKING** `file:` protocol is no longer supported, as keyboards are loaded + with `fetch()` API (#12334) +* Bug fix: the `keyboardloaded` event now fires only once per loaded keyboard. + Previously the event fired twice. (#16297) +* Fixed `loaduserinterface` and `unloaduserinterface` events to fire + consistently (#16353) +* Clarified use of asynchronous APIs (such as `addKeyboards()`) (#16064) +* Cleanup of various examples (#16064) +* Addressed several bugs with control of active keyboard (#16524) +* Removed `keyman.FocusLastActiveElement()` (use + `keyman.focusLastActiveElement()`) (#16170) +* Removed `keyman.GetLastActiveElement()` (use `keyman.getLastActiveElement()`) + (#16170) +* Removed `keyman.HideHelp()` (use `keyman.osk.hide()`) (#16170) +* Removed `keyman.ShowHelp()` (use `keyman.osk.show()`, `keyman.osk.setRect()`) + (#16170) +* Removed `keyman.ShowPinnedHelp()` (use `keyman.osk.show()`, + `keyman.osk.setRect()`) (#16170) +* Deprecated `keyman.build` and `keyman.version` (use `keyman.versionInfo`) + (#16351) +* Deprecated `keyman.helpURL` (use Keyman Cloud APIs) (#16351) +* Deprecated `keyman.moveToElement` (use `elem.focus()`) (#16661) +* Deprecated `keyman.interface.FocusLastActiveElement()` (use + `keyman.interface.focusLastActiveTextStore()`) (#16170) +* Deprecated `keyman.interface.GetLastActiveElement()` (use + `keyman.interface.getLastActiveTextStore()`) (#16170) +* Deprecated `keyman.interface.HideHelp()` (use `keyman.osk.hide()`) (#16170) +* Deprecated `keyman.interface.ShowHelp()` (use `keyman.osk.show()`) (#16170) +* Deprecated `keyman.interface.ShowPinnedHelp()` (use `keyman.osk.show()`, + `keyman.osk.setRect()`) (#16170) +* Deprecated `keyman.util.toFloat()` (#16351) +* Deprecated `keyman.util.toNumber()` (#16351) +* Deprecated `keyman.util.toNzString()` (#16351) +* Removed deprecated `onunloaded` handler (#16351) +* About [550 other fixes and changes](https://keyman.com/go/app/whatsnew/web/19.0) + ## See also * [Keyman Engine for Web Documentation](index) diff --git a/windows/docs/engine/whatsnew.md b/windows/docs/engine/whatsnew.md new file mode 100644 index 0000000000..d9be30aef7 --- /dev/null +++ b/windows/docs/engine/whatsnew.md @@ -0,0 +1,19 @@ +--- +title: What's New in Keyman Engine 19.0 for Windows +--- + +* **kmcomapi:** Added the `MCompileForBaseKeyboard(long KLID)` COM method to the + new `IKeymanKeyboardInstalled2` interface, which extends + `IKeymanKeyboardInstalled`. The method accepts the user's base keyboard ID and + allows `mcompile` to compile all installed keyboard layouts against that + keyboard ID. See #16162 for details. +* **kmcomapi:** Added the `Install3` COM method, which accepts a base keyboard + ID. The base keyboard ID is passed to `mcompile` during installation so that + the keyboard layout can be compiled against the specified base keyboard. + `Install3` has been added to the following interfaces: `IKeymanKeyboardFile3`, + `IKeymanPackageFile3`, `IKeymanKeyboardsInstalled3`, and + `IKeymanPackagesInstalled3`. See #16528 for details. + +## See Also + +* [Keyman Engine for Windows Documentation](index) \ No newline at end of file diff --git a/windows/docs/help/about/whatsnew.md b/windows/docs/help/about/whatsnew.md index ee917f3870..72958d0eb4 100644 --- a/windows/docs/help/about/whatsnew.md +++ b/windows/docs/help/about/whatsnew.md @@ -4,6 +4,13 @@ title: What's New in Keyman 19.0 for Windows Here are some of the new features we have added to Keyman 19.0 for Windows: +- Full support for Windows on ARM64 processors (#14621) +- Keyboard search pages are now available in more languages (#15510) +- Improved startup time (#14795) +- Improved stability on heavily loaded systems (#15179) +- Improvements to selection of base keyboard for mnemonic layouts (#16162) +- About [250 other fixes and changes](https://keyman.com/go/app/whatsnew/windows/19.0) + ## Related Topics - [Version History](history) From b3a6fd0d3854454ab5a210f902310f87ce51fa35 Mon Sep 17 00:00:00 2001 From: Keyman Build Agent Date: Wed, 7 Oct 2026 04:37:39 -0500 Subject: [PATCH 06/18] auto: increment beta version to 19.0.303 Test-bot: skip Build-bot: skip --- HISTORY.md | 5 +++++ VERSION.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index 7ac7465222..51482e8a2f 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,10 @@ # Keyman Version History +## 19.0.302 beta 2026-10-07 + +* fix(mac): lower case 'k' for .pkg.download_info (#16743) +* docs: update v19 whats-new (#16748) + ## 19.0.300 beta 2026-10-06 * chore: move to beta diff --git a/VERSION.md b/VERSION.md index 6e3edc5a83..95fc14a774 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -19.0.302 \ No newline at end of file +19.0.303 \ No newline at end of file From 8a80030429cde796582a0e381788c5299ccce693 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Wed, 7 Oct 2026 15:09:28 +0200 Subject: [PATCH 07/18] docs(common): add `sentry-cli` version and update documentation Build-bot: skip Test-bot: skip --- docs/build/linux-ubuntu.md | 9 +++++++++ docs/build/macos.md | 14 ++++++++------ docs/build/sentry-cli.md | 7 +++++-- docs/build/windows.md | 8 +++----- docs/minimum-versions.md | 1 + resources/build/minimum-versions.inc.sh | 3 ++- 6 files changed, 28 insertions(+), 14 deletions(-) diff --git a/docs/build/linux-ubuntu.md b/docs/build/linux-ubuntu.md index 82537b1b79..8f3e879801 100644 --- a/docs/build/linux-ubuntu.md +++ b/docs/build/linux-ubuntu.md @@ -245,6 +245,15 @@ from command line. But note that you do need to update your `JAVA_HOME` env var to the associated version before opening Android Studio and loading any Android projects. `JAVA_HOME_11` is mostly used by CI. +## Optional Tools + +- sentry-cli (optional) + - Uploading symbols for Sentry-based error reporting + + See for the installation, and + check [minimum-versions.md](../minimum-versions.md) for the required version of + `sentry-cli`. + ## Docker Builder The Docker builder allows you to perform a build from anywhere Docker is supported. diff --git a/docs/build/macos.md b/docs/build/macos.md index 92203ddb6d..b8030c7292 100644 --- a/docs/build/macos.md +++ b/docs/build/macos.md @@ -41,7 +41,7 @@ Rosetta 2 installed. Many dependencies are only required for specific projects. -* XCode (iOS, macOS) 26.2 or 26.3 (not higher at this time, see #16416) +* XCode (iOS, macOS) 26.2 or 26.3 (not higher at this time, see #16416) is needed only for Keyman for macOS and Keyman for iOS (). * Install from App Store @@ -206,8 +206,10 @@ components such as emulator images and SDK updates. * node.js, emscripten -```shell -brew install node emscripten + ```shell + brew install node emscripten + ``` + * node.js 20.0, emscripten 3.1.64 See section KeymanWeb Dependencies for installation @@ -216,6 +218,6 @@ See section KeymanWeb Dependencies for installation * sentry-cli: Uploading symbols for Sentry-based error reporting - ```shell - brew install getsentry/tools/sentry-cli - ``` + See for the installation, and + check [minimum-versions.md](../minimum-versions.md) for the required version of + `sentry-cli`. diff --git a/docs/build/sentry-cli.md b/docs/build/sentry-cli.md index 42095d38eb..e9955082e6 100644 --- a/docs/build/sentry-cli.md +++ b/docs/build/sentry-cli.md @@ -1,8 +1,11 @@ # Setting up sentry-cli -Contact the Keyman team if you need access to sentry.keyman.com for development. +Contact the Keyman team if you need access to keyman.sentry.io for development. You will also need to install [sentry-cli](https://docs.sentry.io/cli/installation/) for uploading Debug symbols. -After setting up your personal [Auth token](http://keyman.sentry.io/settings/account/api/auth-tokens/), add the following to **~/.bashrc** +Check [minimum-versions.md](../minimum-versions.md) for the required version of `sentry-cli`. + +After setting up your personal [Auth token](http://keyman.sentry.io/settings/account/api/auth-tokens/), +add the following to `~/.bashrc`: ```bash export SENTRY_AUTH_TOKEN={your Sentry auth token} diff --git a/docs/build/windows.md b/docs/build/windows.md index edc756340f..180b099fc5 100644 --- a/docs/build/windows.md +++ b/docs/build/windows.md @@ -412,8 +412,6 @@ certificates for the build. * sentry-cli (optional) - Uploading symbols for Sentry-based error reporting - bash: - ```bash - # bash - curl -sL https://sentry.io/get-cli/ | bash - ``` + See for the installation, and + check [minimum-versions.md](../minimum-versions.md) for the required version of + `sentry-cli`. diff --git a/docs/minimum-versions.md b/docs/minimum-versions.md index b9c08e1e71..3a68aeaad3 100644 --- a/docs/minimum-versions.md +++ b/docs/minimum-versions.md @@ -74,6 +74,7 @@ https://help.keyman.com/developer/engine/android/latest-version/ | KEYMAN_VERSION_LANGTAGS | 2026-06-09 | | KEYMAN_VERSION_LANGTAGS_API | 1.4 | | KEYMAN_VERSION_LANGUAGE_SUBTAG_REGISTRY | 2026-08-08 | +| KEYMAN_VERSION_SENTRY_CLI | 1.70.0 | | KEYMAN_VERSION_UNICODE | 17.0.0 | | KEYMAN_VERSION_XCODE | 26.2 | diff --git a/resources/build/minimum-versions.inc.sh b/resources/build/minimum-versions.inc.sh index 539c66554a..7ae71a21c8 100644 --- a/resources/build/minimum-versions.inc.sh +++ b/resources/build/minimum-versions.inc.sh @@ -32,6 +32,7 @@ KEYMAN_MIN_VERSION_EMSCRIPTEN=3.1.64 # Use KEYMAN_USE_EMSDK to automati KEYMAN_MIN_VERSION_VISUAL_STUDIO=2022 # Visual Studio 2022, see /docs/build/windows.md for workloads and components KEYMAN_MIN_VERSION_MESON=1.0.0 # TODO: rename meson_options.txt to meson.options when updating to >= 1.1, see #15127. KEYMAN_VERSION_XCODE=26.2 # XCode 26.2 is the current supported version; download from https://developer.apple.com/download/all/ +KEYMAN_VERSION_SENTRY_CLI=1.70.0 # sentry-cli used to upload debug information to Sentry during CI KEYMAN_VERSION_GRADLE=8.12 # See /android/KMEA/gradle/wrapper/gradle-wrapper.properties @@ -52,4 +53,4 @@ KEYMAN_VERSION_ISO639_3=2026-08-17 # Date of last import KEYMAN_VERSION_LANGTAGS=2026-06-09 # _version value KEYMAN_VERSION_LANGTAGS_API=1.4 # Langtags API version supported KEYMAN_VERSION_LANGUAGE_SUBTAG_REGISTRY=2026-08-08 # Date from first line of language-subtag-registry -KEYMAN_VERSION_UNICODE=17.0.0 # UCD + related data \ No newline at end of file +KEYMAN_VERSION_UNICODE=17.0.0 # UCD + related data From 2e9f13a770c5e9115ee4764cebb13e6a05b20b6a Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 7 Oct 2026 15:09:31 +0200 Subject: [PATCH 08/18] fix(resources): export KEYMAN_TIER so we get beta tagging on release build As it wasn't exported, Android beta build was falling back to 'alpha' as KEYMAN_TIER was 'null' in gradle. Test-bot: skip --- android/KMAPro/kMAPro/build.gradle | 1 + resources/build/builder-basic.inc.sh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/android/KMAPro/kMAPro/build.gradle b/android/KMAPro/kMAPro/build.gradle index 7c6b966484..ef60799d5d 100644 --- a/android/KMAPro/kMAPro/build.gradle +++ b/android/KMAPro/kMAPro/build.gradle @@ -9,6 +9,7 @@ plugins { ext.rootPath = '../../' apply from: "$rootPath/version.gradle" String tier = System.getenv("KEYMAN_TIER"); +println "Using tier $tier" java { toolchain { diff --git a/resources/build/builder-basic.inc.sh b/resources/build/builder-basic.inc.sh index f016b3dc1e..ddb321a271 100644 --- a/resources/build/builder-basic.inc.sh +++ b/resources/build/builder-basic.inc.sh @@ -151,6 +151,9 @@ function _builder_basic_find_version() { export KEYMAN_VERSION_ENVIRONMENT export KEYMAN_VERSION_GIT_TAG export KEYMAN_VERSION_FOR_FILENAME + export KEYMAN_TIER + export UPLOAD_SENTRY + export BUILDER_OS } function _builder_basic_find_tier() { From 986a36271fff4327996818ad88f08257ff8d21a0 Mon Sep 17 00:00:00 2001 From: Keyman Build Agent Date: Wed, 7 Oct 2026 08:47:32 -0500 Subject: [PATCH 09/18] auto: increment beta version to 19.0.304 Test-bot: skip Build-bot: skip --- HISTORY.md | 4 ++++ VERSION.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index 51482e8a2f..3fb01bef03 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,9 @@ # Keyman Version History +## 19.0.303 beta 2026-10-07 + +* fix(resources): export KEYMAN_TIER so we get beta tagging on release build (#16751) + ## 19.0.302 beta 2026-10-07 * fix(mac): lower case 'k' for .pkg.download_info (#16743) diff --git a/VERSION.md b/VERSION.md index 95fc14a774..b578233ebf 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -19.0.303 \ No newline at end of file +19.0.304 \ No newline at end of file From cad81751a0ee8b6f8d240a2be0b48bb5b6aa1cd9 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Tue, 6 Oct 2026 11:07:04 +0200 Subject: [PATCH 10/18] =?UTF-8?q?chore(linux):=20update=20changelog=20with?= =?UTF-8?q?=20Debian=20version=20=F0=9F=8D=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cherry-pick: #16735 Build-bot: skip Test-bot: skip --- linux/debian/changelog | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/linux/debian/changelog b/linux/debian/changelog index e2e8f9afdd..971042b075 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -1,8 +1,17 @@ -keyman (18.0.249-1) UNRELEASED; urgency=medium +keyman (18.0.253-1) UNRELEASED; urgency=medium - * Add procps dependency (closes: 1136515) + * Add procps dependency (closes: #1136515) - -- Eberhard Beilharz Mon, 18 May 2026 18:06:49 +0200 + -- Eberhard Beilharz Tue, 06 Oct 2026 11:05:30 +0200 + +keyman (18.0.248-2) unstable; urgency=medium + + * Team upload. + * debian/patches/e77d2432ef91465e72460b32e5bc3e870b77fe9c.patch: + Backport upstream patch to fix FTBFS due to pkg_resources. + (Closes: #1149425) + + -- Boyuan Yang Wed, 30 Sep 2026 10:39:04 -0400 keyman (18.0.248-1) unstable; urgency=medium From 59e032fd6054a33958341cf5bb7851cf18c65334 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Thu, 8 Oct 2026 18:25:14 +0200 Subject: [PATCH 11/18] fix(web): prevent crash adding log entry for keystroke with `inputBreadCrumb` Fixes: #16760 Fixes: [KEYMAN_WEB_YH](https://keyman.sentry.io/issues/7661231665/?referrer=github_integration) Cherry-pick: #16761 Build-bot: skip Test-bot: skip --- web/src/engine/src/main/headless/transcriptionCache.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/engine/src/main/headless/transcriptionCache.ts b/web/src/engine/src/main/headless/transcriptionCache.ts index 7ff3832b9b..5fcfd00b33 100644 --- a/web/src/engine/src/main/headless/transcriptionCache.ts +++ b/web/src/engine/src/main/headless/transcriptionCache.ts @@ -22,7 +22,7 @@ export class TranscriptionCache extends RewindableCache { }); return entries - .map(({key, entry}) => `Context state ${key}'s keystroke:\n${entry.keystroke.inputBreadcrumb ?? ''}`) + .map(({key, entry}) => `Context state ${key}'s keystroke:\n${entry?.keystroke?.inputBreadcrumb ?? ''}`) .join('\n'); } -} \ No newline at end of file +} From 02a0b988f24402978cb99685a160489573d66706 Mon Sep 17 00:00:00 2001 From: Keyman Build Agent Date: Thu, 8 Oct 2026 13:01:44 -0500 Subject: [PATCH 12/18] auto: increment beta version to 19.0.305 Test-bot: skip Build-bot: skip --- HISTORY.md | 5 +++++ VERSION.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index 3fb01bef03..bc6b202230 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,10 @@ # Keyman Version History +## 19.0.304 beta 2026-10-08 + +* docs(common): add `sentry-cli` version and update documentation (#16752) +* chore(linux): update changelog with Debian version (#16758) + ## 19.0.303 beta 2026-10-07 * fix(resources): export KEYMAN_TIER so we get beta tagging on release build (#16751) diff --git a/VERSION.md b/VERSION.md index b578233ebf..69262baadb 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -19.0.304 \ No newline at end of file +19.0.305 \ No newline at end of file From 5dabf39deba09098ef362a6f9094b44c40955780 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Fri, 9 Oct 2026 11:20:30 +0200 Subject: [PATCH 13/18] maint(ios): new iOS certificate (beta-19.0) Test-bot: skip Build-bot: skip release:ios Cherry-pick-of: #16771 --- ios/exportAppStore.plist | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/exportAppStore.plist b/ios/exportAppStore.plist index 46b26a7870..1f46159397 100644 --- a/ios/exportAppStore.plist +++ b/ios/exportAppStore.plist @@ -7,9 +7,9 @@ teamID 3YE4W86L3G signingCertificate - AF5CC1ABB8118334C3FDDF03D23BF08148932D5F + CEEA1FABBCD0CB8E47945FF6A9D8CB97FD7788C1 installerSigningCertificate - AF5CC1ABB8118334C3FDDF03D23BF08148932D5F + CEEA1FABBCD0CB8E47945FF6A9D8CB97FD7788C1 provisioningProfiles Tavultesoft.Keyman From 56e9b742acb0367ca3dd1b80859248c2e2e6a9e5 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Fri, 9 Oct 2026 12:28:06 +0200 Subject: [PATCH 14/18] docs(developer): fix typo in whatsnew Test-bot: skip Build-bot: skip --- developer/docs/help/whatsnew.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/developer/docs/help/whatsnew.md b/developer/docs/help/whatsnew.md index a0541ad51f..549307f277 100644 --- a/developer/docs/help/whatsnew.md +++ b/developer/docs/help/whatsnew.md @@ -6,7 +6,7 @@ Keyman Developer 19 has the following significant changes: - Updated to Unicode 17.0 (#14728) - Updated langtags.json, ISO639-3, language-subtag-registry (#16371) -- Validate a keyboard or lexical model project frmo within Keyman Developer (#16076) +- Validate a keyboard or lexical model project from within Keyman Developer (#16076) - Support for line numbers in LDML keyboard compiler messages (#13375) - Convert from .keylayout (macOS keyboards, Ukelele) into .kmn (#12191) - Compiler improvements - prevent illegal constructs (#16723, #16726, #36710, #16717) From 032556dbcf73e5b6d4bf0c7a27fe8c92567ebb3b Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Fri, 9 Oct 2026 15:18:11 +0200 Subject: [PATCH 15/18] fix(web): fix crash applying suggestions `langProcessor.applySuggestion` can return `null` for various reasons. If it returns `null` we should consider this an invalid suggestion state and return `null` from `suggestionApplier`. Fixes: #16785 Fixes: [KEYMAN-WEB-Y6](https://keyman.sentry.io/issues/7614775993/?referrer=github_integration) Build-bot: skip build:web Test-bot: skip --- .../src/interfaces/prediction/predictionContext.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/web/src/engine/src/interfaces/prediction/predictionContext.ts b/web/src/engine/src/interfaces/prediction/predictionContext.ts index 6ebcec0db9..38051b7e75 100644 --- a/web/src/engine/src/interfaces/prediction/predictionContext.ts +++ b/web/src/engine/src/interfaces/prediction/predictionContext.ts @@ -85,13 +85,14 @@ export class PredictionContext extends EventEmitter { this.currentTextStore && langProcessor.state == 'configured'; this.suggestionApplier = (suggestion, processorAction) => { - if(validSuggestionState()) { + if (validSuggestionState()) { const results = langProcessor.applySuggestion(suggestion, this.currentTextStore, getLayerId, processorAction); - results.reversion.then((reversion) => this._immediateReversion = reversion); - return results.appendedProcessorAction; - } else { - return null; + if (results) { + results.reversion.then((reversion) => this._immediateReversion = reversion); + return results.appendedProcessorAction; + } } + return null; } this.suggestionReverter = async (reversion) => { @@ -316,4 +317,4 @@ export class PredictionContext extends EventEmitter { this.resetContext(); } } -} \ No newline at end of file +} From 7ac24ca1c141aaff32a2642b01a469b8391c1e62 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Fri, 9 Oct 2026 16:34:57 +0200 Subject: [PATCH 16/18] fix(web): don't crash on gestures when banner disabled Fixes: #16787 Fixes: [KEYMAN-WEB-YC](https://keyman.sentry.io/issues/7647250411/?referrer=github_integration) Build-bot: skip Test-bot: skip --- .../engine/src/osk/banner/suggestionBanner.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/web/src/engine/src/osk/banner/suggestionBanner.ts b/web/src/engine/src/osk/banner/suggestionBanner.ts index 843c0dd912..bab946769d 100644 --- a/web/src/engine/src/osk/banner/suggestionBanner.ts +++ b/web/src/engine/src/osk/banner/suggestionBanner.ts @@ -577,8 +577,10 @@ export class SuggestionBanner extends Banner { return; } - const autoselection = this._predictionContext.selected; - this._predictionContext.selected = null; + const autoselection = this.predictionContext?.selected; + if (this.predictionContext) { + this.predictionContext.selected = null; + } // Always clear pre-existing selections when a new banner input/gesture starts. this.options.forEach((entry) => { entry.highlight(false); @@ -628,9 +630,13 @@ export class SuggestionBanner extends Banner { return; } + if (!this.predictionContext) { + return; + } + // The suggestions are still current? Then restore the original // auto-correct suggestion and its highlighting. - this._predictionContext.selected = autoselection; + this.predictionContext.selected = autoselection; if(autoselection) { for(const entry of this.options) { if(entry.suggestion == autoselection) { @@ -668,11 +674,11 @@ export class SuggestionBanner extends Banner { // Invalidate the suggestions internally, but don't visually update; // this will avoid banner-flicker. this.currentSuggestions = []; - this.predictionContext.accept(suggestion.suggestion); + this.predictionContext?.accept(suggestion.suggestion); // Trigger new predictions, as no input exists to trigger new ones otherwise. // Reversions will re-use old suggestions, though. if(suggestion.suggestion.tag != 'revert') { - this.predictionContext.triggerPredictions(); + this.predictionContext?.triggerPredictions(); } // Reset the scroll state From 4ba30f54107d294e0e5f22190adee541ace0715d Mon Sep 17 00:00:00 2001 From: Keyman Build Agent Date: Fri, 9 Oct 2026 13:02:29 -0500 Subject: [PATCH 17/18] auto: increment beta version to 19.0.306 Test-bot: skip Build-bot: skip --- HISTORY.md | 8 ++++++++ VERSION.md | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index bc6b202230..9b33fb7a70 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,13 @@ # Keyman Version History +## 19.0.305 beta 2026-10-09 + +* docs: remove repeated clean up instructions (#16745) +* fix(web): prevent crash adding log entry for keystroke with `inputBreadCrumb` (#16762) +* maint(ios): new iOS certificate (beta-19.0) (#16772) +* docs(developer): fix typo in whatsnew (#16774) +* fix(web): fix crash applying suggestions (#16786) + ## 19.0.304 beta 2026-10-08 * docs(common): add `sentry-cli` version and update documentation (#16752) diff --git a/VERSION.md b/VERSION.md index 69262baadb..7d0b3bdda6 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -19.0.305 \ No newline at end of file +19.0.306 \ No newline at end of file From 5df0acc9bf6a7cb57ece7c466257f0a05d0aafa8 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 12 Oct 2026 12:29:54 +0200 Subject: [PATCH 18/18] maint(common): remove history-utils.sh iOS history writing has been unstable, which has broken builds, e.g. due to keywords being rejected in commit/PR messages. Thus, safer to never automatically attempt to send release notes to App Store. Normally would do this as part of a maintenance cycle, but pushing forward due to experiencing issue right now on #16794. Fixes: #16795 Test-bot: skip Build-bot: skip release:ios --- ios/tools/prepRelease.sh | 12 +- resources/build/history/history-utils.sh | 199 ------------------ .../build/history/validate-all-history.sh | 15 -- resources/build/history/validate-history.sh | 9 - 4 files changed, 5 insertions(+), 230 deletions(-) delete mode 100755 resources/build/history/history-utils.sh delete mode 100755 resources/build/history/validate-all-history.sh delete mode 100755 resources/build/history/validate-history.sh diff --git a/ios/tools/prepRelease.sh b/ios/tools/prepRelease.sh index c54748b548..6c2c38e1af 100755 --- a/ios/tools/prepRelease.sh +++ b/ios/tools/prepRelease.sh @@ -25,9 +25,9 @@ if [ -d "upload" ]; then rm -rf upload fi -#Include script dependency -. $KEYMAN_ROOT/resources/build/history/history-utils.sh #includes the following -#. ../resources/build/utils.inc.sh +# Include script dependency +. "$KEYMAN_ROOT/resources/build/utils.inc.sh" + BUILD_NUMBER="${KEYMAN_VERSION}" @@ -36,8 +36,6 @@ CHANGELOG_PATH="upload/$BUILD_NUMBER/$KEYMAN_CHANGELOG" WORK_DIR=`pwd` -BUILD_COUNTER="$((${BUILD_NUMBER##*.}))" - UPLOAD_BASE="upload" UPLOAD_FOLDER="${BUILD_NUMBER}" UPLOAD_DIR="${UPLOAD_BASE}/${UPLOAD_FOLDER}" @@ -47,8 +45,8 @@ mkdir -p "${UPLOAD_DIR}" # First, we prep the files for publication: write changelog echo "Writing changelog to $CHANGELOG_PATH" -get_version_notes "ios" "${BUILD_NUMBER}" "$KEYMAN_TIER" > $CHANGELOG_PATH -echo "* Minor fixes and performance improvements" >> $CHANGELOG_PATH +echo "* Minor fixes and performance improvements" > $CHANGELOG_PATH +echo "* See keyman.com/ios for full change history" >> $CHANGELOG_PATH # Strip emoji as App Store does not allow emoji in changelogs node "$KEYMAN_ROOT/resources/tools/strip-emoji" < "$CHANGELOG_PATH" > "$CHANGELOG_PATH.1" diff --git a/resources/build/history/history-utils.sh b/resources/build/history/history-utils.sh deleted file mode 100755 index 9a1f8f6b5e..0000000000 --- a/resources/build/history/history-utils.sh +++ /dev/null @@ -1,199 +0,0 @@ -#!/usr/bin/env bash - -#set -x -#DEBUG=1 - -_hu_base_dir=$(dirname "$BASH_SOURCE")/../../.. - -. $_hu_base_dir/resources/build/utils.inc.sh - -_hu_debug() { - if [[ ! -z ${DEBUG+x} ]] && [[ $DEBUG == 1 ]]; then echo "$1"; fi -} - -get_history_file_path() { - history_file_path="$_hu_base_dir/HISTORY.md" -} - -# Creates and initializes a variable called `history_file` that contains the raw content -# of the specified project's `history.md` file. -get_history_file() { - get_history_file_path - - history_file=`cat $history_file_path` -} - -### Parsing Utilities ### -enum_line_types=("version-header", "title", "whitespace", "listitem", "other") - -# Title Match: # Keyman Version History -# ${BASH_REMATCH[1]} - history.md's "Title" text. -re_title="^#[^#](.+)" - -# Release Subtitle Match: ## version tier date -# Example: ## 14.0.2 alpha 2020-02-02 -# ${BASH_REMATCH[1]} - version -# ${BASH_REMATCH[2]} - tier -# ${BASH_REMATCH[3]} - publishing date -re_header="^##[[:space:]]*([0-9]+\.[0-9]+\.[0-9]+)[[:space:]]*(alpha|beta|stable)[[:space:]]*([0-9]{4}-[0-9]{2}-[0-9]{2})" - -# Entry in release log -# ${BASH_REMATCH[1]} - the full line of text -re_item="(.+)" - -# Checks that it's a simple line of whitespace. -re_blank="^[[:space:]]*$" - -re_v_major="^([0-9]+)\.[0-9]+" -re_v_alpha="^([0-9]+\.[0-9]+)" -re_v_build="^[0-9]+\.[0-9]+\.([0-9]+)" - -### Core Parsing ### - -# $1 - should be the $line being processed. -get_line_type() { - line_type="other" - - if [[ "$1" =~ $re_title ]]; then - line_type="title" - elif [[ "$1" =~ $re_header ]]; then - line_type="version-header" - line_version="${BASH_REMATCH[1]}" - line_tier="${BASH_REMATCH[2]}" - line_date="${BASH_REMATCH[3]}" - elif [[ "$1" =~ $re_blank ]]; then - line_type="whitespace" - elif [[ "$1" =~ $re_item ]]; then - line_type="listitem" - fi - - # This section is quite useful for debugging purposes. - #if [[ $line_type != "other" ]]; then - _hu_debug "$line_type: $1" - #fi -} - -# $1 - the markdown block to be processed. May be the subset of a file, rather than its full body. -# $2 - a shell script command to be performed on the line. Shell script functors! -# $3, $4 - external arguments provided to the shell script command. -process_history_loop() { - # Grabs one line from the specified file at a time. - #printf "%s\n" "$1" | while IFS= read -r line || [[ -n "$line" ]]; do - while IFS= read -r line || [[ -n "$line" ]]; do - # Do things with the $line. - # Like, what kind of $line is this? - $2 "$line" "$3" "$4" "$5" - done <<< "$1" # The triple <<< forces the loop to evaluate within the same script, preserving variable changes. -} - -### Version Changelog Extraction ### - -# $1 - a full version string (likely in major.minor.build form) -# Returns $v_alpha, containing only major.minor if it may be extracted. Returns $1 if not. -get_alpha_version() { - [[ $1 =~ $re_v_alpha ]] - if [ ! -z ${BASH_REMATCH[1]} ]; then - v_alpha=${BASH_REMATCH[1]} - else - v_alpha=$1 - fi -} - -# $1 - a full version string -# Returns $v_build, containing the final .build portion of a major.minor.build version number. -# If missing, returns an empty string. -get_build_number() { - [[ "$1" =~ $re_v_build ]] - if [ ! -z "${BASH_REMATCH[1]}" ]; then - v_build="${BASH_REMATCH[1]}" - else - v_build= - fi -} - -# Used internally by get_version_notes, passed as a pseudo-functor to process_history_loop. -get_version_helper() { - local line="$1" - local version="$2" - local tier="$3" - local product="$4" - get_line_type "$line" - - if [ $in_block = true ]; then - if [[ $line_type = "version-header" ]]; then - in_block=false - elif [[ $line_type = "listitem" ]]; then - if [[ "$product" == "ios" ]]; then - # We have to filter out other platforms to satisfy Apple - if [[ "$line" =~ \(ios|web|common ]]; then - echo "$line" | sed -e "s/Android/mobile platform/" - fi - else - if [[ "$line" =~ "\($product|web|common" ]]; then - echo "$line" - fi - fi - elif [[ $line_type = "whitespace" ]]; then - echo ""; - fi - else - v= # Must be cleared initially for the test to work correctly! - t= - d= - - if [[ $line_type = "version-header" ]]; then - d="$line_date" - v="$line_version" - t="$line_tier" - fi - - # Splits the version numbers into their components to facilitate finding - # 1) the FIRST version in history.md - # 2) with equal to or lesser version - # 3) of the same tier. - if [[ "$v" != "" && "$t" = "$tier" && $version_found = false ]]; then - get_alpha_version "$v" - get_build_number "$v" - - found_v="$v_alpha" - found_b="$v_build" - - get_alpha_version "$version" - get_build_number "$version" - - search_v="$v_alpha" - search_b="$v_build" - - if [[ "$found_v" = "$search_v" && ( $found_b -le $search_b ) ]]; then - in_block=true - version_found=true - - if [[ -n $d ]]; then - echo "Published on $d." - fi - fi - fi - fi -} - -# $1 - the product whose version notes we wish to obtain -# $2 - the version number to be obtained. -# $3 - the tier of the product to be obtained (alpha, beta, stable) -get_version_notes() { - # State-tracking variable(s). - in_block=false - version_found=false - - local vn_product=$1 - local vn_version=$2 - local vn_tier=$3 - - get_history_file - process_history_loop "${history_file}" get_version_helper "$vn_version" "$vn_tier" "$vn_product" - - if [ $version_found = false ]; then - builder_die "Could not find changelog information for $vn_product version $vn_version $vn_tier." - fi -} - -### End Version Changelog Extraction ### \ No newline at end of file diff --git a/resources/build/history/validate-all-history.sh b/resources/build/history/validate-all-history.sh deleted file mode 100755 index 69b4b12c53..0000000000 --- a/resources/build/history/validate-all-history.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -echo "**TODO** Update script to work with new history/versioning" -exit 1 - -FAIL=0 -./validateHistory.sh android || FAIL=$(($FAIL + 1)) -./validateHistory.sh desktop || FAIL=$(($FAIL + 2)) -./validateHistory.sh developer || FAIL=$(($FAIL + 4)) -./validateHistory.sh ios || FAIL=$(($FAIL + 8)) -./validateHistory.sh linux || FAIL=$(($FAIL + 16)) -./validateHistory.sh mac || FAIL=$(($FAIL + 32)) -./validateHistory.sh web || FAIL=$(($FAIL + 64)) -echo Final status = $FAIL -exit $FAIL diff --git a/resources/build/history/validate-history.sh b/resources/build/history/validate-history.sh deleted file mode 100755 index 8242c13d32..0000000000 --- a/resources/build/history/validate-history.sh +++ /dev/null @@ -1,9 +0,0 @@ -echo "**TODO** Update script to work with new history/versioning" -exit 1 - -_hu_base_dir=$(dirname "$BASH_SOURCE")/.. - -. $_hu_base_dir/resources/historyUtils.sh - -# Insert the shorthand for a platform as the command-line argument. -validate_history_file "$1" \ No newline at end of file