Commit graph

3326 commits

Author SHA1 Message Date
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
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
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
121fb80d92
Merge pull request #14746 from keymanapp/fix/developer/14604-disallow-space-in-group-name
fix(developer): restrict invalid characters in identifiers in kmcmplib
2025-09-15 14:49:03 +02:00
Marc Durdin
bd3d268bcc fix(developer): address review comments, adding comments and renaming variables 2025-09-12 17:01:21 +02:00
Marc Durdin
c14ca3f409 chore(developer): remove sil_yi from set of keyboard repo tests
sil_yi was impacted by the changes in #14746, as it had the group name
'Unicode Group', which is now illegal, so the compiler fails to build
the keyboard at the referenced commit. Easiest workaround currently is
to remove it from the set of compared keyboards.
2025-09-12 14:35:47 +02:00
Marc Durdin
5facfd9fcf chore(developer): rename constructor parameter to avoid shadow 2025-09-12 14:20:55 +02:00
Marc Durdin
08c36db05f fix(developer): add default destructor for CompilerMessage and Validation classes 2025-09-12 14:14:43 +02:00
Marc Durdin
7fcdfb8f65 fix(developer): restrict invalid characters in identifiers in kmcmplib
The compiler has always been very ambiguous on which characters were
accepted in group and store names, even to the point of accepting
things like comma in a store name, which would then make it impossible
to reference in an `index` statement!

This commit clarifies the allowable characters in an identifier. While
it would have been possible to use UAX#31 for this, that would have
extended the requirements for this change substantially, and may have
caused us more trouble with legacy keyboards. Given kmcmplib is
end-of-life (see epic/ng-compiler), I have chosen a lower friction
approach. There are certainly other characters that could be excluded,
but in general I have chosen to exclude only those that will definitely
be problematic.

The set of allowable characters for deadkeys has actually been expanded
in this release to match the store and group name rules.

It is expected that there may be some impacted keyboards, but addressing
this change will be relatively straightforward, so I consider this to be
an acceptable back-compatibility trade-off, see
https://github.com/keymanapp/keyman/wiki/Principles-of-Keyman-Code-Changes#4-source-backward-compatibility-keyboard-model-and-package-source-file-formats-should-be-backward-compatible

Fixes: #14604
Test-bot: skip
Build-bot: skip build:developer
2025-09-12 10:52:31 +02:00
Marc Durdin
2b4a22c1cd chore(developer): use icons.res to verify that configure is done
Build-bot: skip
Test-bot: skip
2025-09-11 13:58:30 +02:00
Marc Durdin
377b1056ec maint(resources): rename KEYMAN_VERSION_FOR_PR_FILENAME
Address review comment from #14703.

Test-bot: skip
Build-bot: skip
Relates-to: #14703
Relates-to: #10521
2025-09-10 11:17:41 +02:00
Marc Durdin
87cb03d740
Merge branch 'maint/windows/10521-use-versioned-filenames-for-pr-artifacts' into maint/android/10521-use-versioned-filenames-for-pr-artifacts 2025-09-08 15:02:03 +02:00
Marc Durdin
634fef64d4 maint(android): use versioned filenames for PR artifacts
Relates-to: #10521
Test-bot: skip
Build-bot: skip release:android,developer,windows
2025-09-08 12:31:11 +02:00
Marc Durdin
9ce0aed2ed maint(developer): use versioned filenames for PR artifacts
Relates-to: #10521
Test-bot: skip
Build-bot: skip release:developer
2025-09-08 11:22:37 +02:00
Marc Durdin
db90fa21a7 maint(developer): use versioned filenames for PR artifacts
Relates-to: #10521
Test-bot: skip
Build-bot: skip release:developer
2025-09-08 09:44:53 +02:00
Eberhard Beilharz
e615139348
Merge pull request #14669 from keymanapp/chore/windows/desktop 2025-09-03 11:53:46 +02:00
Marc Durdin
69a538b691
Merge pull request #14668 from keymanapp/docs/license
docs(common): update license date and owner
2025-09-03 06:37:04 +02:00
Marc Durdin
76ed9b55dd
Merge pull request #14659 from keymanapp/fix/developer/new-lm-project-validation-message
fix(developer): add clear messages about validation failures to New LM Project Parameters form
2025-09-03 04:39:36 +02:00
Marc Durdin
f420f15567 docs(common): update license date and owner
Fixes: #14665
Test-bot: skip
Build-bot: skip
2025-09-02 16:13:36 +02:00
Eberhard Beilharz
f166f11d14
docs(common): update docs Keyman Desktop → Keyman for Windows
Also change path to engine help pages. This requires a corresponding
change in help.keyman.com.

Test-bot: skip
2025-09-02 14:29:53 +02:00
Marc Durdin
c263a2bd2a
Merge pull request #14658 from keymanapp/fix/developer/new-ldml-keyboard-project-validation-message
fix(developer): add clear messages about validation failures to New LDML Project Parameters form
2025-09-02 11:29:39 +02:00
Marc Durdin
c557124006
Merge pull request #14657 from keymanapp/fix/developer/14169-new-keyboard-project-validation-message
fix(developer): add clear messages about validation failures to New Project Parameters form
2025-09-02 11:29:30 +02:00
Marc Durdin
8150f36b09
Merge pull request #14651 from keymanapp/fix/developer/13903-offset-compiler-error-line
fix(developer): remove incorrect offset for compiler error line
2025-09-02 11:29:12 +02:00
Marc Durdin
5df9e70a31 fix(developer): add clear messages about validation failures to New LM Project Parameters form
Apply new FormValidation to New Lexical Model Project Parameters form.

Follows: #14658
2025-09-01 17:07:36 +02:00
Marc Durdin
21cae0d7de fix(developer): add clear messages about validation failures to New LDML Project Parameters form
Apply new FormValidation to New LDML Project Parameters form.

Follows: #14657
2025-09-01 15:21:24 +02:00
Marc Durdin
9c656808bf chore(developer): tweak wordwrap on validation fields 2025-09-01 14:25:18 +02:00
Marc Durdin
d61bcf23da fix(developer): add clear messages about validation failures to New Project Parameters form
Add a new FormValidation class to help make a consistent declarative
field validation pattern for Keyman Developer forms, and apply that
initially to the New Keyboard Project Parameters dialog. This pattern
replaces the earlier EnableControls pattern; ideally we will replace
validation in other forms with similar validation requirements with this
over time.

Fixes: #14169
2025-09-01 13:40:40 +02:00
Marc Durdin
c36c3eb943 change(developer): update SIL logo
Fixes: #14116
Test-bot: skip
2025-09-01 08:13:43 +02:00
Marc Durdin
2ec7ad4dd4
Merge pull request #14650 from keymanapp/fix/developer/14348-handle-failure-to-create-dest-path-in-new-keyboard-project
fix(developer): handle failure to create destination path when generating new project
2025-08-31 06:37:03 +02:00
Marc Durdin
d73b31fae5 chore(developer): update tests to match 2025-08-30 07:10:36 +02:00
Marc Durdin
c4a45e2739 fix(developer): remove incorrect offset for compiler error line
Fixes: #13903
2025-08-30 06:43:40 +02:00
Marc Durdin
f8ce6c0ed1 fix(developer): handle failure to create destination path when generating new project
Add better error handling for situation where destination path cannot be
created, for all project types. Also report back the Windows error
message which hopefully clarifies why the directory could not be
created.

Fixes: #14348
Fixes: KEYMAN-DEVELOPER-1P1
Fixes: KEYMAN-DEVELOPER-2SN
Test-bot: skip
2025-08-30 06:15:11 +02:00
Marc Durdin
7a3e50596d fix(developer): handle missing model id in package with compiler error
If a `<LexicalModel>` element is found with a missing or empty `<ID>`
element, the compiler will now report `ERROR_MissingModelId` instead of
crashing. The corresponding check for missing `<ID>` for `<Keyboard>`
element has been updated to match this, and now reports a clearer error
message of `ERROR_MissingKeyboardId` rather than depending on the
side-effect of looking up the keyboard in the `<File>` elements.

Fixes: #13783
Fixes: KEYMAN-DEVELOPER-2X7
Test-bot: skip
2025-08-30 05:46:53 +02:00
Marc Durdin
00b98f2286 fix(windows): emit nunit report path correctly and update TeamCity links
* Windows and Developer sources
* Fixes the report path to be fully qualified
* Adds the TeamCity report logger to remaining DUnitX automated tests

Fixes: #14197
Build-bot: skip build:windows,developer
Test-bot: skip
2025-08-20 07:21:03 +02:00
Marc Durdin
f3fb3ac87b maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh
Removes a number of unused functions from the file, renames remaining
functions to match our builder script prefix patterns, removes unused
imports from various build scripts (e.g. Android).

Fixes: #14453
2025-08-05 12:54:56 +10:00
Marc Durdin
acefdf281a maint(common): move typescript script functions into typescript.inc.sh
Fixes: #14448
Build-bot: build
Test-bot: skip
2025-08-03 07:01:57 +10:00
Marc Durdin
3530fece47
Merge branch 'maint/common/14065-consolidate-builder-scripts' into maint/common/14447-node.inc.sh 2025-08-02 11:02:21 +07:00
Marc Durdin
ebe7a137ea maint(common): fixup jedi build.sh builder-basic.inc.sh include
Fixes: #14065
2025-08-02 14:01:53 +10:00
Marc Durdin
2726050601 maint(common): rename and move node-related script functions into node.inc.sh
Consolidates the node-related script functions into node.inc.sh, as part
of cleaning up the build scripts and making them easier to maintain into
the future.

Fixes: #14447
2025-08-02 13:34:29 +10:00