Commit graph

4253 commits

Author SHA1 Message Date
Marc Durdin
2076cd9989
Merge branch 'epic/embed-osk-in-kmx' into feat/common/kmx-plus-osk-embed-support 2025-11-18 15:41:05 +01:00
Marc Durdin
a53a1593ec feat(common): add v19 sections to KMX+ in Core and Developer
The disp and layr sections have new v19 layouts, to support the Keyman
OSK requirements for epic/embed-osk-in-kmx. This supports writing the
new versions of these sections in Developer and loading them into Core,
doing transformations where necessary so that Core always works with v19
structures after load.

This does not implement the transformations required to support the OSK
APIs; that will be implemented in a follow-up PR. Nor is support for
writing the OSK data from source .kvks and .keyman-touch-layout
supported; this is just the scaffolding for supporting the structures in
the KMX+ data.

Test-bot: skip
2025-11-18 13:55:01 +01:00
Marc Durdin
34e71c4df2
Apply suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-11-13 13:06:16 +01:00
Marc Durdin
fc0ff90684 refactor(developer): rename layr.lists to layr.forms
The name `form` better represents the semantic meaning of the
structure, and reduces confusion with the `list` section and other uses
of `list` in KMX+.

Test-bot: skip
2025-11-12 11:29:58 +01:00
Keyman Server
b7c93d9e37
Merge branch 'epic/embed-osk-in-kmx' into auto/A19S15-merge-master-into-embed-osk-in-kmx 2025-11-07 14:06:33 +01:00
Marc Durdin
23b5dca1b3 fix(developer): remove package version if FollowKeyboardVersion is set in Package Editor
To reduce confusion when 'Follow Keyboard Version' is set, clear the
cached package version data from UI and .kps source when saving the
package or making changes to it.

Fixes: #11892
Test-bot: skip
2025-11-03 10:54:44 +01:00
Marc Durdin
933ea5bb58 change(developer): remove kmlmc and kmlmp
These were replaced by kmc in v17.0. We kept them as legacy alternatives
in v18.0, but it is time to remove them now to reduce the maintenance of
having multiple entry points to kmc.

Fixes: #13181
Test-bot: skip
2025-10-31 17:08:56 +01:00
Marc Durdin
702a64c281
Merge pull request #15062 from keymanapp/chore/windows/vs2022
chore(windows): upgrade VC++ projects to v143 (VS2022)
2025-10-31 15:38:25 +01:00
Marc Durdin
21c3a630bf chore(windows): upgrade VC++ projects to v143 (VS2022)
Test-bot: skip
Build-bot: skip release:developer,windows
2025-10-31 13:33:30 +01:00
Marc Durdin
aba67ef682
Merge pull request #15061 from keymanapp/chore/developer/kmc-package-nullish-cleanup
chore(developer): fix always-false nullish coalescing
2025-10-31 06:30:48 +01:00
Marc Durdin
344fd4bd3d
Merge pull request #15060 from keymanapp/fix/developer/handle-load-errors-for-touch-layout-builder
fix(developer): handle exceptions loading .keyman-touch-layout files
2025-10-31 06:30:42 +01:00
Marc Durdin
c255e78857
Merge pull request #15058 from keymanapp/chore/developer/11916-extra-debugging-crash-on-exit
chore(developer): add breadcrumbs to trace sporadic crashes on exit
2025-10-31 06:30:27 +01:00
Marc Durdin
9e1fe8e6de chore(windows): upgrade VC++ projects to v143 (VS2022)
Test-bot: skip
Build-bot: skip release:developer,windows
2025-10-30 16:31:45 +01:00
Marc Durdin
8e6ca01175 chore(developer): fix always-false nullish coalescing
Test-bot: skip
Build-bot: skip
2025-10-30 15:24:15 +01:00
Marc Durdin
0b17c632a0 fix(developer): handle exceptions loading .keyman-touch-layout files
If file is unreadable or contains invalid encoding, show a message
instead of crashing.

Build-bot: skip
Test-bot: skip
2025-10-30 15:22:47 +01:00
Marc Durdin
037e199f3c chore(developer): add breadcrumbs to trace sporadic crashes on exit
Relates-to: #11916
Test-bot: skip
2025-10-30 15:01:37 +01:00
Marc Durdin
2ba22bbe51 chore(developer): further debugging for assertion failure
Adds breadcrumbs for debug memo to try and narrow down sequence of
events leading to assertion failure with backspace.

Relates-to: #11706
Test-bot: skip
2025-10-30 14:36:25 +01:00
Marc Durdin
19264fdbe2
Merge pull request #15030 from cvosoft/test/add-osk-character-use-format-tests
test(developer): add kmc-analyze tests for AnalyzeOskCharacterUse output formats
2025-10-30 06:04:30 +01:00
Marc Durdin
df212364a2 maint(resources): add repository record for all published packages
While not documented as such, it appears that the repository record is
required with trusted publishing of npm packages.

Test-bot: skip
Build-bot: skip
2025-10-29 14:35:31 +01:00
Christoph Völker
d49c23646a Merge remote-tracking branch 'upstream/master' into test/add-osk-character-use-format-tests 2025-10-29 14:17:10 +01:00
Marc Durdin
f2d4dff1f7
Merge pull request #14993 from keymanapp/feat/developer/add-targetversion-parameter
feat(developer): add targetVersion support to kmc and kmc-kmn 🔱
2025-10-29 11:04:12 +01:00
Marc Durdin
268b87ac9e
Merge pull request #14992 from keymanapp/feat/core/add-kmx-plus-version-header
refactor(core): add support for header.version to Core LDML 🔱
2025-10-29 11:04:02 +01:00
Marc Durdin
12511894ef chore(developer): skip git date test for shallow clones
If the repository is a shallow checkout, then the only commit will be
the most recent one, and the test will fail. We could lookup the date of
the most recent test, but it's a pretty meaningless test, so instead we
will skip the test in this scenario.

For example, this happens on GitHub Actions when we do a shallow
checkout. The only risk we have is if we move all builds to shallow
checkouts and end up always skipping this test, but (a) the code is
unlikely to change, and (b) issuse would be  picked up on local builds
in that situation pretty quickly.
2025-10-29 10:30:27 +01:00
Marc Durdin
dd20ad068e maint(developer): reduce coverage threshold for node 24 for dev-utils
I am not entirely clear why the coverage dropped, but I suspect it's due
to code paths that are not activated in node 24. For now, just dropping
coverage threshold to 40%.
2025-10-29 10:29:33 +01:00
Christoph Völker
e2eb10312f test(kmc-analyze): add supplementary plane tests for stringToUnicodeSequence 2025-10-28 17:46:07 +01:00
Christoph Völker
3d10ac4b87 test(kmc-analyze): add tests for AnalyzeOskCharacterUse output formats 2025-10-28 16:50:04 +01:00
Marc Durdin
b08f18e029
Merge pull request #14991 from keymanapp/feat/developer/add-kmx-plus-version-header
feat(common): add version header to KMX+ Typescript modules 🔱
2025-10-28 14:27:44 +01:00
Marc Durdin
e6a3a31ce9
Merge pull request #14990 from keymanapp/refactor/common/consolidate-kmx-plus-header-struct
refactor(common): consolidate header struct to kmx-plus-file.ts 🔱
2025-10-28 14:27:35 +01:00
Marc Durdin
fe6e8e72a8
Merge pull request #15029 from keymanapp/maint/resources/14963-npm-publish-on-gha
maint(resources): move npm package publishing to GitHub Actions
2025-10-28 07:57:35 +01:00
Christoph Völker
ac6d305b79 format update 2025-10-27 19:10:40 +01:00
Christoph Völker
e06ac524fb test(kmc-analyze): add tests for AnalyzeOskCharacterUse output formats 2025-10-27 17:45:44 +01:00
Marc Durdin
ba411774f6 maint(resources): move NPM package publishing to GitHub Actions
Due to recent changes in NPM package publishing security requirements,
we have to move from TeamCity build to a GitHub Action to publish our
NPM packages, so we can take advantage of trusted publishing. This
change also consolidates and centralizes the npm publishing into
resources/build/ci/npm-publish.sh, which removes a lot of boilerplate
from each of the build.sh scripts, and ensures consistency.

Packages will be `npm pack`ed on PR and test builds, and published in
release builds.

Ref: https://docs.npmjs.com/trusted-publishers
Ref: https://github.blog/changelog/2025-09-29-strengthening-npm-security-important-changes-to-authentication-and-token-management/
Fixes: #14963
Test-bot: skip
Build-bot: release:developer
2025-10-27 16:31:55 +01:00
Marc Durdin
4a685ba8aa
Merge pull request #15021 from cvosoft/test/add-osk-character-use-warnings
test(developer): add coverage tests for warning messages in kmc-analyze/AnalyzeOskCharacterUse
2025-10-27 16:00:41 +01:00
Christoph Völker
368766acdc test(kmc-analyze): fix import paths and order 2025-10-27 14:05:13 +01:00
Christoph Völker
469149e72d test(kmc-analyze): add message coverage tests for AnalyzeOskCharacterUse 2025-10-27 08:36:56 +01:00
Christoph Völker
07c13e81ac test(kmc-analyze): add message coverage tests for AnalyzeOskCharacterUse 2025-10-25 07:38:28 +02:00
Marc Durdin
55d6efe482 fix(developer): prevent ANSI keyboards crashing debugger
Note: #11909 has some additional future cleanup we could do, but these
code paths are not currently accessible, so in the interest of moving
forward, am leaving them for now.

Fixes: #11909
Test-bot: skip
2025-10-24 14:45:17 +02:00
Christoph Völker
cbaae084f7 test(kmc-analyze): add warnings coverage tests for AnalyzeOskCharacterUse 2025-10-24 13:31:15 +02:00
Keyman Server
87420e15c1
Merge branch 'epic/embed-osk-in-kmx' into chore/A19S14-merge-master-into-embed-osk-in-kmx 2025-10-24 11:14:03 +02:00
Marc Durdin
da364f978d
Merge pull request #14038 from cvosoft/test-warn-previousmap
test(developer): add test to kmc-analyze for Warn_PreviousMapFileCouldNotBeLoaded
2025-10-24 11:07:22 +02:00
Marc Durdin
a7a8cb0b72
Merge pull request #15002 from keymanapp/fix/developer/14411-handle-missing-begin-unicode
fix(developer): handle missing `begin Unicode` in KMW compiler
2025-10-24 09:19:10 +02:00
Christoph Völker
15ea1f321e test(developer): use unitTestEndPoints for loadPreviousMap and clean up test 2025-10-24 08:09:14 +02:00
Christoph Völker
d57274b26d test(developer): add unit test for Warn_PreviousMapFileCouldNotBeLoaded and raise coverage threshold to 75% 2025-10-23 21:03:52 +02:00
Marc Durdin
c6a96fc457 fix(developer): handle missing begin Unicode in KMW compiler
This probably arose with the move to kmcmplib in WASM, and as it was
never unit tested, we missed it. A simple signed vs unsigned issue.

Fixes: #14411
Test-bot: skip
2025-10-23 15:08:12 +02:00
Marc Durdin
a6f476e557 fix(developer): do not treat backslash as a string escape in syntax highlighting
Adjust two incorrect rules that caused backslash to be treated as an
escape in strings in syntax highlighting in .kmn language.

Fixes: #14988
Test-bot: skip
Build-bot: skip
2025-10-23 11:55:17 +02:00
Marc Durdin
e3fbe510e7
Merge branch 'feat/core/add-kmx-plus-version-header' into feat/developer/add-targetversion-parameter 2025-10-22 15:08:38 +02:00
Marc Durdin
648cd2b6af
Merge branch 'feat/developer/add-kmx-plus-version-header' into feat/core/add-kmx-plus-version-header 2025-10-22 15:08:29 +02:00
Marc Durdin
0227b277f0
Merge branch 'refactor/common/consolidate-kmx-plus-header-struct' into feat/developer/add-kmx-plus-version-header 2025-10-22 15:08:22 +02:00
Marc Durdin
95a5bcc362
Merge branch 'epic/embed-osk-in-kmx' into refactor/common/consolidate-kmx-plus-header-struct 2025-10-22 15:08:07 +02:00
Marc Durdin
d987f3f000 chore(developer): clean up variable names and filenames
Build-bot: skip
2025-10-22 14:37:12 +02:00