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 1/7] 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 8a80030429cde796582a0e381788c5299ccce693 Mon Sep 17 00:00:00 2001
From: Eberhard Beilharz
Date: Wed, 7 Oct 2026 15:09:28 +0200
Subject: [PATCH 2/7] 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 cad81751a0ee8b6f8d240a2be0b48bb5b6aa1cd9 Mon Sep 17 00:00:00 2001
From: Eberhard Beilharz
Date: Tue, 6 Oct 2026 11:07:04 +0200
Subject: [PATCH 3/7] =?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 4/7] 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 5/7] 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 6/7] 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 497383c0a03e9bfd413f464f879d6ac3e5113db9 Mon Sep 17 00:00:00 2001
From: Marc Durdin
Date: Fri, 9 Oct 2026 10:13:49 +0200
Subject: [PATCH 7/7] maint(common): add lint for unitTestEndpoints usage
This is a stop-gap for v19. See #16767 for groundwork for v20. Enable
one rule, to verify `unitTestEndpoints` is not used except in unit
tests.
Follows: #16605
See-also: #16767
Test-bot: skip
---
common/web/eslint-plugin-keyman/README.md | 3 +
.../eslint-plugin-keyman/eslint.config.mjs | 28 ++
common/web/eslint-plugin-keyman/lib/index.js | 19 ++
.../lib/rules/prohibit-unitTestEndpoints.js | 49 +++
common/web/eslint-plugin-keyman/package.json | 15 +
developer/src/.eslintrc.cjs | 16 +-
package-lock.json | 308 ++++--------------
package.json | 4 +-
8 files changed, 192 insertions(+), 250 deletions(-)
create mode 100644 common/web/eslint-plugin-keyman/README.md
create mode 100644 common/web/eslint-plugin-keyman/eslint.config.mjs
create mode 100644 common/web/eslint-plugin-keyman/lib/index.js
create mode 100644 common/web/eslint-plugin-keyman/lib/rules/prohibit-unitTestEndpoints.js
create mode 100644 common/web/eslint-plugin-keyman/package.json
diff --git a/common/web/eslint-plugin-keyman/README.md b/common/web/eslint-plugin-keyman/README.md
new file mode 100644
index 0000000000..e6c84ea6f8
--- /dev/null
+++ b/common/web/eslint-plugin-keyman/README.md
@@ -0,0 +1,3 @@
+# eslint-plugin-keyman
+
+Lint tests for keymanapp/keyman. See developer/src/.eslintrc.cjs for example usage.
diff --git a/common/web/eslint-plugin-keyman/eslint.config.mjs b/common/web/eslint-plugin-keyman/eslint.config.mjs
new file mode 100644
index 0000000000..0e6599d4da
--- /dev/null
+++ b/common/web/eslint-plugin-keyman/eslint.config.mjs
@@ -0,0 +1,28 @@
+import { defineConfig } from "eslint/config";
+import pluginJs from "@eslint/js";
+import pluginNode from "eslint-plugin-n";
+import eslintPlugin from "eslint-plugin-eslint-plugin";
+
+export default defineConfig([
+ {
+ name: "eslint/js",
+ plugins: {
+ js: pluginJs,
+ },
+ extends: ["js/recommended"],
+ },
+ {
+ name: "eslint/node",
+ plugins: {
+ n: pluginNode,
+ },
+ extends: ["n/flat/mixed-esm-and-cjs"],
+ },
+ {
+ name: "eslint/eslint-plugin",
+ plugins: {
+ "eslint-plugin": eslintPlugin,
+ },
+ extends: ["eslint-plugin/recommended"],
+ }
+]);
diff --git a/common/web/eslint-plugin-keyman/lib/index.js b/common/web/eslint-plugin-keyman/lib/index.js
new file mode 100644
index 0000000000..eaa88580e3
--- /dev/null
+++ b/common/web/eslint-plugin-keyman/lib/index.js
@@ -0,0 +1,19 @@
+/**
+ * @fileoverview Lint tests for keymanapp/keyman
+ * @author Marc Durdin
+ */
+"use strict";
+
+//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const requireIndex = require("requireindex");
+
+//------------------------------------------------------------------------------
+// Plugin Definition
+//------------------------------------------------------------------------------
+
+
+// import all rules in lib/rules
+module.exports.rules = requireIndex(__dirname + "/rules");
diff --git a/common/web/eslint-plugin-keyman/lib/rules/prohibit-unitTestEndpoints.js b/common/web/eslint-plugin-keyman/lib/rules/prohibit-unitTestEndpoints.js
new file mode 100644
index 0000000000..faba1c058d
--- /dev/null
+++ b/common/web/eslint-plugin-keyman/lib/rules/prohibit-unitTestEndpoints.js
@@ -0,0 +1,49 @@
+/*
+ * Keyman is copyright (C) SIL Global. MIT License.
+ *
+ * Created by mcdurdin on 2026-10-09
+ *
+ * Enforce restrictions on use of unitTestEndpoints -- only for use in
+ * unit tests
+ */
+
+// import { RuleDefinition } from "@eslint/core";
+
+module.exports = /*: RuleDefinition*/ {
+ meta: {
+ type: "problem",
+ docs: {
+ description: "Do not use unitTestEndpoints except in unit tests",
+ },
+ schema: [], // no options
+ },
+ create: function (context) {
+ return {
+ // callback functions
+ "Identifier[name=/^unitTestEndpoints$/]"(node) {
+ if(node.parent?.type == 'PropertyDefinition' || node.parent?.type == 'VariableDeclarator') {
+ // These are valid places to have endpoints
+ } else if(node.parent?.type == 'MemberExpression') {
+ context.report({
+ node,
+ message: 'Use of `unitTestEndpoints` outside unit tests.',
+ });
+
+ } else {
+ context.report({
+ node,
+ message: 'Unexpected `unitTestEndpoints` -- context is unclear',
+ });
+ }
+ }
+ };
+ },
+};
+
+// const plugin = {
+// rules: {
+// "prohibit-unitTestEndpoints": rule
+// }
+// };
+
+// module.exports = plugin;
\ No newline at end of file
diff --git a/common/web/eslint-plugin-keyman/package.json b/common/web/eslint-plugin-keyman/package.json
new file mode 100644
index 0000000000..dc6d696e69
--- /dev/null
+++ b/common/web/eslint-plugin-keyman/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "@keymanapp/eslint-plugin-keyman",
+ "private": "true",
+ "description": "Lint tests for keymanapp/keyman",
+ "author": "Marc Durdin",
+ "main": "./lib/index.js",
+ "exports": "./lib/index.js",
+ "files": [
+ "lib"
+ ],
+ "dependencies": {
+ "requireindex": "^1.2.0"
+ },
+ "license": "MIT"
+}
diff --git a/developer/src/.eslintrc.cjs b/developer/src/.eslintrc.cjs
index 0b4001b572..b6dd890c19 100644
--- a/developer/src/.eslintrc.cjs
+++ b/developer/src/.eslintrc.cjs
@@ -1,4 +1,18 @@
module.exports = {
ignorePatterns: ["**/build/**/*", "**/coverage/**/*"],
- rules: {},
+ plugins: [
+ '@keymanapp/eslint-plugin-keyman',
+ ],
+ rules: {
+ "@keymanapp/keyman/prohibit-unitTestEndpoints": "error",
+ },
+ overrides: [
+ {
+ files: ["**/*.tests.ts"],
+ rules: {
+ "@keymanapp/keyman/prohibit-unitTestEndpoints": "off",
+ },
+ }
+ ]
+ // rules: {},
};
diff --git a/package-lock.json b/package-lock.json
index 33e0732824..14880e321b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -27,6 +27,7 @@
"developer/src/server",
"developer/src/tike/xml/layoutbuilder",
"common/test/resources",
+ "common/web/eslint-plugin-keyman",
"common/web/keyman-version",
"common/web/langtags",
"common/web/sentry-manager",
@@ -40,6 +41,7 @@
"@keymanapp/common-types": "file:common/web/types",
"@keymanapp/developer-test-helpers": "file:developer/src/common/web/test-helpers",
"@keymanapp/developer-utils": "file:developer/src/common/web/utils",
+ "@keymanapp/eslint-plugin-keyman": "file:common/web/eslint-plugin-keyman",
"@keymanapp/hextobin": "file:common/tools/hextobin",
"@keymanapp/keyman-version": "file:common/web/keyman-version",
"@keymanapp/langtags": "file:common/web/langtags",
@@ -120,6 +122,13 @@
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"license": "MIT"
},
+ "common/web/eslint-plugin-keyman": {
+ "name": "@keymanapp/eslint-plugin-keyman",
+ "license": "MIT",
+ "dependencies": {
+ "requireindex": "^1.2.0"
+ }
+ },
"common/web/keyman-version": {
"name": "@keymanapp/keyman-version",
"license": "MIT",
@@ -2154,6 +2163,10 @@
"resolved": "developer/src/common/web/utils",
"link": true
},
+ "node_modules/@keymanapp/eslint-plugin-keyman": {
+ "resolved": "common/web/eslint-plugin-keyman",
+ "link": true
+ },
"node_modules/@keymanapp/hextobin": {
"resolved": "common/tools/hextobin",
"link": true
@@ -3102,16 +3115,6 @@
"node": ">=18"
}
},
- "node_modules/@puppeteer/browsers/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@puppeteer/browsers/node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -3165,19 +3168,6 @@
"node": ">=8"
}
},
- "node_modules/@puppeteer/browsers/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@puppeteer/browsers/node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
@@ -5740,6 +5730,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/ansi-styles": {
"version": "4.3.0",
"license": "MIT",
@@ -6690,14 +6689,6 @@
"wrap-ansi": "^7.0.0"
}
},
- "node_modules/cliui/node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/cliui/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"dev": true,
@@ -6719,17 +6710,6 @@
"node": ">=8"
}
},
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "6.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
@@ -8013,6 +7993,23 @@
"eslint": "^7.0.0 || ^8.0.0"
}
},
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/eslint-utils": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
@@ -8068,15 +8065,6 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/eslint/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/eslint/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -8089,22 +8077,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/eslint/node_modules/glob-parent": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -8123,18 +8095,6 @@
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
- "node_modules/eslint/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/espree": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
@@ -10407,15 +10367,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/log-update/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/log-update/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -10439,18 +10390,6 @@
"node": ">=8"
}
},
- "node_modules/log-update/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/log-update/node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -10844,16 +10783,6 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/mocha/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/mocha/node_modules/brace-expansion": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz",
@@ -11065,19 +10994,6 @@
"node": ">=8"
}
},
- "node_modules/mocha/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/mocha/node_modules/supports-color": {
"version": "8.1.1",
"dev": true,
@@ -12296,6 +12212,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/requireindex": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
+ "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.5"
+ }
+ },
"node_modules/requires-port": {
"version": "1.0.0",
"dev": true,
@@ -13170,15 +13095,6 @@
"node": ">=8"
}
},
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -13188,18 +13104,6 @@
"node": ">=8"
}
},
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/string.prototype.codepointat": {
"version": "0.2.1",
"license": "MIT"
@@ -13252,6 +13156,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-ansi-cjs": {
"name": "strip-ansi",
"version": "6.0.1",
@@ -13265,15 +13181,6 @@
"node": ">=8"
}
},
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -13597,25 +13504,6 @@
"typescript": "*"
}
},
- "node_modules/tsc-watch/node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tsc-watch/node_modules/strip-ansi": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/tsconfig-paths": {
"version": "3.14.2",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
@@ -14614,15 +14502,6 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -14646,25 +14525,6 @@
"node": ">=8"
}
},
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "5.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"license": "MIT",
@@ -14684,16 +14544,6 @@
"node": ">=8"
}
},
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "6.0.0",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/wrappy": {
"version": "1.0.2",
"license": "ISC"
@@ -14834,14 +14684,6 @@
"node": ">=8"
}
},
- "node_modules/yargs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/yargs/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"dev": true,
@@ -14863,17 +14705,6 @@
"node": ">=8"
}
},
- "node_modules/yargs/node_modules/strip-ansi": {
- "version": "6.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/yauzl": {
"version": "2.10.0",
"dev": true,
@@ -14940,14 +14771,6 @@
"undici-types": "~7.21.0"
}
},
- "resources/build/version/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
"resources/build/version/node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -14992,17 +14815,6 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
- "resources/build/version/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"resources/build/version/node_modules/undici-types": {
"version": "7.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.21.0.tgz",
diff --git a/package.json b/package.json
index 07b3bf7f98..ba2a199a55 100644
--- a/package.json
+++ b/package.json
@@ -52,6 +52,7 @@
"developer/src/server",
"developer/src/tike/xml/layoutbuilder",
"common/test/resources",
+ "common/web/eslint-plugin-keyman",
"common/web/keyman-version",
"common/web/langtags",
"common/web/sentry-manager",
@@ -68,7 +69,8 @@
"@keymanapp/hextobin": "file:common/tools/hextobin",
"@keymanapp/keyman-version": "file:common/web/keyman-version",
"@keymanapp/langtags": "file:common/web/langtags",
- "@keymanapp/ldml-keyboard-constants": "file:core/include/ldml"
+ "@keymanapp/ldml-keyboard-constants": "file:core/include/ldml",
+ "@keymanapp/eslint-plugin-keyman": "file:common/web/eslint-plugin-keyman"
},
"overrides": {
"ajv-cli": {