Commit graph

33163 commits

Author SHA1 Message Date
Eberhard Beilharz
f51a3a4c06
Merge pull request #15608 from keymanapp/test/core/minkbd
test(core): add LDML baseline test with minimal keyboard

This replaces and enables the commented `k_000_null_keyboard` test which didn't work because keys that are not on any layer don't produce output. This instead defines a minimal keyboard with just two keys and then tests typing a key that is on the keyboard followed by a key not on the keyboard.
2026-02-24 17:40:18 +01:00
Eberhard Beilharz
3db661cd42
Merge pull request #15600 from keymanapp/refactor/core/loop
refactor(core): simplify loop for removing text

Instead of using an iterator to loop over the context items, incrementing a counter on each iteration, and then finally removing the calculated number of context items from the list, this change loops through the list and looks at the last context item, removing it if necessary.

Follows: #15596
2026-02-24 17:39:13 +01:00
Eberhard Beilharz
d359908d87
Merge pull request #15596 from keymanapp/fix/core/ldmltest
fix(core): fix iterator in backspace handling

This change replaces the reverse iterator loop that holds a stale iterator across `pop_back()` calls with a pattern that directly accesses `context.back()` on each iteration. This avoids undefined behavior from iterator invalidation when mutating the list or vector.

While so far the previous code didn't show problems, it might still access released memory depending on the implementation. The documentation for `pop_back()` says "References and iterators to the erased element are invalidated", so the previous implementation was clearly wrong.
2026-02-24 17:37:17 +01:00
Keyman Server
bc546d004c
Merge pull request #15610 from keymanapp/auto/version-master-19.0.205
auto: increment master version to 19.0.205
2026-02-20 19:07:13 +01:00
Keyman Build Agent
60e49fe271 auto: increment master version to 19.0.205
Test-bot: skip
Build-bot: skip
2026-02-20 12:01:18 -06:00
Eberhard Beilharz
2237db95f6
test(core): add LDML baseline test with minimal keyboard
This replaces and enables the commented `k_000_null_keyboard` test which
didn't work because keys that are not on any layer don't produce output.
This instead defines a minimal keyboard with just two keys and then tests
typing a key that is on the keyboard followed by a key not on the keyboard.

Test-bot: skip
2026-02-20 12:09:08 +01:00
Joshua Horton
46374e6a92
Merge pull request #15598 from keymanapp/maint/web/spaced-path-handling
maint(web): ensure Web build scripts handle paths with spaces properly
2026-02-20 14:10:40 +07:00
Eberhard Beilharz
b405bf5842
refactor(core): simplify loop for removing text
Instead of using an iterator to loop over the context items, incrementing
a counter on each iteration, and then finally removing the calculated
number of context items from the list, this change loops through the list
and looks at the last context item, removing it if necessary.

Follows: #15596
Test-bot: skip
2026-02-18 17:34:02 +01:00
Eberhard Beilharz
df2b675202
fix(core): changed ldml tests to use context list instead of vector
Production code uses a list of context items, so this change modifies
the tests to also use a list instead of a vector to more closely match
production code.

Addresses code review comment.

Test-bot: skip
2026-02-18 16:08:59 +01:00
Eberhard Beilharz
32bb1c8502
fix(core): fix iterator in backspace handling
This change replaces the reverse iterator loop that holds a stale iterator
across `pop_back()` calls with a pattern that directly accesses
`context.back()` on each iteration. This avoids undefined behavior from
iterator invalidation when mutating the list or vector.

While so far the previous code didn't show problems, it might still access
released memory depending on the implementation. The documentation for
`pop_back()` says "References and iterators to the erased element are
invalidated", so the previous implementation was clearly wrong.

Test-bot: skip
2026-02-18 15:58:45 +01:00
Joshua Horton
5c445d470c change(web): remove temp debug shell-script echo statements 2026-02-18 12:59:17 +07:00
Joshua Horton
b7975973af maint(web): ensure Web build scripts handle paths with spaces properly
The command shortcuts that were used by Web
scripts to create bundles via `esbuild` were not
properly handling the $KEYMAN_ROOT path when it
contained a space.  These changes will rectify
this behavior and permit builds for such cases.

Build-bot: skip build:web
Test-bot: skip
2026-02-18 09:14:30 +07:00
Keyman Server
65408863b5
Merge pull request #15593 from keymanapp/auto/version-master-19.0.204
auto: increment master version to 19.0.204
2026-02-16 19:05:18 +01:00
Keyman Build Agent
2a96eae14d auto: increment master version to 19.0.204
Test-bot: skip
Build-bot: skip
2026-02-16 12:01:20 -06:00
Marc Durdin
b23c97e368
Merge pull request #15591 from keymanapp/mcdurdin-patch-1
docs: Add status.keyman.com info to website readme
2026-02-16 11:19:18 +07:00
Marc Durdin
4cfb7402da
Revise port lookup and dependencies in README
Updated the port lookup table and website dependencies in the README.
2026-02-16 05:01:11 +01:00
Keyman Server
989a8dbadb
Merge pull request #15578 from keymanapp/auto/version-master-19.0.203
auto: increment master version to 19.0.203
2026-02-12 19:07:24 +01:00
Keyman Build Agent
4a0bbe68f6 auto: increment master version to 19.0.203
Test-bot: skip
Build-bot: skip
2026-02-12 12:01:32 -06:00
Eberhard Beilharz
d32d1b6b78
Merge pull request #15573 from keymanapp/fix/linux/15572_FileNotFoundError
fix(linux): check for existing file before trying to install

Under some circumstances it's possible that the user manages to select a directory instead of a kmp file, or manually enters a non-existing file. Is used to throw an error that we caught on Sentry; the user was able to continue to use the app. This change now checks for a valid file before trying to install the kmp file.

Fixes: #15572
Fixes: KEYMAN-LINUX-99
2026-02-12 10:20:37 +01:00
Keyman Server
90ff20bdf6
Merge pull request #15574 from keymanapp/auto/version-master-19.0.202
auto: increment master version to 19.0.202
2026-02-09 19:07:22 +01:00
Keyman Build Agent
1257c249b8 auto: increment master version to 19.0.202
Test-bot: skip
Build-bot: skip
2026-02-09 12:01:38 -06:00
Eberhard Beilharz
7941b3d4a1
fix(linux): check for existing file before trying to install
Under some circumstances it's possible that the user manages to select
a directory instead of a kmp file, or manually enters a non-existing file.
Is used to throw an error that we caught on Sentry; the user was able to
continue to use the app. This change now checks for a valid file before
trying to install the kmp file.

Fixes: #15572
Fixes: KEYMAN-LINUX-99
2026-02-09 16:04:24 +01:00
Eberhard Beilharz
96bae4296f
Merge pull request #15568 from keymanapp/chore/linux/xz
chore(linux): use xz compression for source tarballs 🗜️

Using the xz compression instead of gzip greatly reduces the size of the tarball.

Follows: #15566
2026-02-09 15:13:26 +01:00
Eberhard Beilharz
e776a2cf76
Merge pull request #15566 from keymanapp/fix/linux/15544_sourcepkg
fix(linux): include missing artifacts in source tarball 🗜️

With this change it's possible to build Keyman from the source tarball by running `./build.sh` from the Keyman root directory.

When building Keyman as part of the Ubuntu/Debian packaging, we don't use the toplevel `build.sh` file but instead call the build scripts in the subdirectories. This omits building some components that are currently not needed for running Keyman for Linux. The `dist.sh` script only includes the necessary files in this case, distinguished by the `origdist` parameter. This results in a significantly smaller tarball (2.5MB vs 51MB).

This change also enhances the `generate_tar_ignore_list` function so that it is now possible to add `build` to the exclude list to ignore all `build` subdirectories.

Fixes: #15544
2026-02-09 15:06:34 +01:00
Keyman Server
bdeede1e66
Merge pull request #15570 from keymanapp/auto/version-master-19.0.201
auto: increment master version to 19.0.201
2026-02-06 19:05:19 +01:00
Keyman Build Agent
1bd482790c auto: increment master version to 19.0.201
Test-bot: skip
Build-bot: skip
2026-02-06 12:01:28 -06:00
Eberhard Beilharz
a3ea01451e
chore(linux): use xz compression for source tarballs
Using the xz compression instead of gzip greatly reduces the size of the
tarball.

Follows: #15566
Test-bot: skip
2026-02-06 17:37:34 +01:00
Eberhard Beilharz
9322a8adcb
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-02-06 17:13:35 +01:00
Eberhard Beilharz
f981469298
chore(linux): add unit tests for new functions in package-build.inc.sh
This addresses code review comments. Also improve variable naming and
documentation for these new functions.
2026-02-06 17:02:27 +01:00
Eberhard Beilharz
5fbe9bc955
chore(linux): add assert-true and assert-false to test framework
This change adds the `assert-true` and `assert-false` function to our
bash testing framework, together with unit tests.

Also rename the test file to `testing-framework.inc.tests.sh` to match
the implementation file.
2026-02-06 16:36:02 +01:00
Shawn Schantz
4314afb96d
Merge pull request #15484 from keymanapp/chore/mac/15475-xcode-26
maint(mac): upgrade to Xcode 26.2
2026-02-06 09:48:38 -05:00
Joshua Horton
61c8ac95e4
Merge pull request #15564 from keymanapp/change/web/clean-test-resource-imports
change(web): define, utilize cleaner Web test-resource import paths
2026-02-06 02:15:11 +07:00
Keyman Server
6b81326146
Merge pull request #15567 from keymanapp/auto/version-master-19.0.200
auto: increment master version to 19.0.200
2026-02-05 19:06:18 +01:00
Keyman Build Agent
7444b03e5d auto: increment master version to 19.0.200
Test-bot: skip
Build-bot: skip
2026-02-05 12:02:25 -06:00
Eberhard Beilharz
1b4e254963
fix(linux): include missing artifacts in source tarball
With this change it's possible to build Keyman from the source tarball
by running `./build.sh` from the Keyman root directory.

When building Keyman as part of the Ubuntu/Debian packaging, we don't use
the toplevel `build.sh` file but instead call the build scripts in the
subdirectories. This omits building some components that are currently
not needed for running Keyman for Linux. The `dist.sh` script only
includes the necessary files in this case, distinguished by the `origdist`
parameter. This results in a significantly smaller tarball (2.5MB vs 51MB).

This change also enhances the `generate_tar_ignore_list` function so that
it is now possible to add `build` to the exclude list to ignore all
`build` subdirectories.

Fixes: #15544
Build-bot: skip
Test-bot: skip
2026-02-05 17:56:15 +01:00
Joshua Horton
b3e045a7a8 change(web): define, utilize cleaner Web test-resource import paths
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:11:14 -06:00
Eberhard Beilharz
81eeef0805
Merge pull request #15559 from keymanapp/chore/linux/cherry-pick/deb
chore(linux): update copyright year and standards version 🍒
2026-02-05 14:05:49 +01:00
Eberhard Beilharz
a17c9249c4
Merge pull request #15557 from keymanapp/chore/linux/cherry-pick/changelog
chore(linux): Update debian changelog 🍒
2026-02-05 14:05:30 +01:00
Darcy Wong
986bb2379a
Merge pull request #15510 from keymanapp/feat/android/lang
feat(android): Use current display language for keyboard search🗺️
2026-02-05 14:39:39 +07:00
Darcy Wong
353a0d42bb
Merge pull request #15459 from keymanapp/chore/common/update-langtags-json
maint(common): Update langtags.json to 2026-02-03 release (v1.4)
2026-02-05 09:32:31 +07:00
rc-swag
f990805cea
Merge pull request #15269 from keymanapp/fix/windows/14261/splash-screen-unresponsive
fix(windows): unresponsive splash screen
2026-02-05 09:34:49 +10:00
Marc Durdin
8b8ba767d4
Merge pull request #15552 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/isaacs/brace-expansion-5.0.1
chore(deps): bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /developer/src/server/src/win32/trayicon/addon-src
2026-02-05 02:08:55 +07:00
Keyman Server
52ee309b21
Merge pull request #15560 from keymanapp/auto/version-master-19.0.199
auto: increment master version to 19.0.199
2026-02-04 19:04:09 +01:00
Keyman Build Agent
3a6ecbd391 auto: increment master version to 19.0.199
Test-bot: skip
Build-bot: skip
2026-02-04 12:01:30 -06:00
Eberhard Beilharz
2a9885f1c7
chore(linux): update copyright year and standards version 🍒
This change updates the copyright year in the `debian/copyright` file
as well as the `Standards-Version` to 4.7.3 in `debian/control`.

Cherry-pick-of: #15558
Test-bot: skip
2026-02-04 14:10:38 +01:00
Eberhard Beilharz
7eaf87ce77
chore(linux): Update debian changelog
(cherry picked from commit 06efd544f5)
2026-02-04 13:48:47 +01:00
Keyman Server
7836f181ea
Merge pull request #15555 from keymanapp/auto/cherry-pick-18.0.246-history-to-alpha
auto: cherry-pick 18.0.246 history to alpha
2026-02-04 04:42:29 +01:00
Keyman Build Agent
b19394ca97 auto: cherry-pick 18.0.246 history to alpha
Build-bot: skip
Test-bot: skip
2026-02-03 21:41:46 -06:00
Marc Durdin
730d9dfc66
Merge pull request #15506 from keymanapp/fix/core/15491-15505-bengali-normalization-and-tests
fix(core): normalization segment should end on NFC boundary, not NFD
2026-02-04 09:53:41 +07:00
Marc Durdin
30f3d35978
Merge pull request #15488 from keymanapp/fix/core/15487-bksp
fix(core): handle backspace decomposition
2026-02-04 09:53:31 +07:00