Commit graph

353 commits

Author SHA1 Message Date
Sabine
2b5782d177 feat(developer): tidy up and new test for ExtraWarning 2026-04-09 13:52:22 +02:00
Sabine
e7b56f9908 feat(developer): rework read function 2026-03-20 11:58:07 +01:00
Sabine
8633cb50f2 feat(developer): rework createKmnModifier(), checkIfCapsIsUsed() and adapt tests; edit test of of readme.md/keylayout-xml.ts
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-03-16 19:50:04 +01:00
SabineSIL
2faf0a78e3
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-03-16 14:23:32 +01:00
Sabine
7acda32841 feat(developer): dummy change to start TC
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-13 20:25:55 +01:00
Sabine
cc05ea4d1b feat(developer): add description of interfaces 2026-03-13 19:12:09 +01:00
Sabine
0d3b8541ce feat(developer): mostly naming, whitespace changes 2026-03-13 09:17:43 +01:00
Keyman Server
23ab9f95d9
Merge branch 'epic/kmc-convert' into auto/A19S24-merge-master-into-kmc-convert 2026-03-13 07:45:54 +01:00
Marc Durdin
00b0a98715
Merge pull request #15649 from keymanapp/dependabot/npm_and_yarn/fast-xml-parser-5.3.8
chore(deps): bump fast-xml-parser from 5.3.4 to 5.3.8
2026-03-09 11:55:08 +07:00
Marc Durdin
deec23cfde
Merge pull request #15672 from keymanapp/fix/developer/11706-debug-memo-get-anchor-with-tom-interface
fix(developer): retrieve debug memo anchor without side effects
2026-03-06 21:01:26 +07:00
dependabot[bot]
25c3490ecd
chore(deps): bump fast-xml-parser from 5.3.4 to 5.3.8
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.3.4 to 5.3.8.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.4...v5.3.8)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 13:58:59 +00:00
Marc Durdin
724a8ea0f5 maint(developer): cleanup additional TestCompilerCallbacks references
Address a review comment from #15665 and cleanup additional references
that I missed the first time around, along with the `fs.readFileSync`
`Uint8Array` cast.

Follows: #15665
Test-bot: skip
2026-03-05 13:15:43 +01:00
Marc Durdin
59f02a6a55 fix(developer): retrieve debug memo anchor without side effects
Use RichEdit's `ITextDocument` interface to retrieve the selection
anchor/caret information, and avoid the side-effects that can arise with
the hacky `EM_GETSEL` / `EM_SETSEL` pattern we used previously.

Changing the selection with `EM_SETSEL` in order to find the anchor
point causes notification messages to be generated that can arrive at an
unexpected time in some text selection scenarios, which ended up with us
having a saved selection in the debugger pointing to the wrong text
range.

The name `Anchor` was a misnomer, because it was actually returning the
caret position, not the anchor for the selection, which is the far side
of the selection from the anchor!

Fixes: #11706
Fixes: KEYMAN-DEVELOPER-18A
2026-03-04 14:01:42 +01:00
Marc Durdin
529a49431e maint(developer): make TestCompilerCallbacks usage more consistent and simplify
Simplify usage of `TestCompilerCallbacks` by making it responsible for
the `beforeEach` and `afterEach` incantations itself. There are a couple
of more complex usages of `TestCompilerCallbacks` which have been
excluded from this change on purpose.

Renamed `testCallbacks` to `callbacks` in the one place where it was
different.

Hoist @types/node and @types/mocha because inconsistent versions of
@types/mocha were causing compiler errors with this change.

Also added a cast to `fs.readFileSync` to `Uint8Array` to eliminate
compiler warnings/errors in test files.

Fixes: #15654
Test-bot: skip
2026-03-03 16:44:06 +01:00
Marc Durdin
3e41d7094f chore(developer): cleanup kps file reader per review comments
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-03-02 14:38:45 +01:00
Marc Durdin
9fca089dc8 fix(developer): handle .kps file that has no <Package> element
Fixes: #15621
Fixes: KEYMAN-DEVELOPER-37D
Test-bot: skip
2026-02-24 16:48:03 +01:00
Sabine
6819c7c76b feat(developer): small changes: copyright;consolidate imports;typos 2026-02-24 13:58:53 +01:00
Sabine
0033e2cdac feat(developer):
consolidate imports
use prefix '@__' instead of   '@_'
remove fixupEmptyStringToEmptyObject_keylayout and use fixupEmptyStringToEmptyObject instead
2026-02-17 23:15:19 +01:00
SabineSIL
7c4ea1bb5e
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2026-02-16 17:47:38 +01:00
Sabine
9c9f13cc11 feat(developer): remove empty file, whitespace, comment; add/remove empty lines 2026-02-16 16:43:35 +01:00
Keyman Server
1ab4c695f2
Merge branch 'epic/kmc-convert' into auto/A19S22-merge-master-into-kmc-convert 2026-02-13 04:59:03 +01:00
dependabot[bot]
13a59f124f
chore(deps): bump fast-xml-parser from 5.2.2 to 5.3.4
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.2.2 to 5.3.4.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.2.2...v5.3.4)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-30 20:48:02 +00:00
SabineSIL
06694173fa
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2026-01-08 11:38:36 +01:00
Marc Durdin
80a5785408 chore: Merge branch 'epic/kmc-convert' into auto/A19S15-merge-master-into-kmc-convert 2025-11-07 14:17:47 +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
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
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
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
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
Keyman Server
1bb84db746
Merge branch 'epic/kmc-convert' into chore/A19S12-merge-master-into-kmc-convert 2025-09-27 06:38:45 +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
SabineSIL
8def93726f
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2025-08-28 21:09:43 +02:00
Marc Durdin
fb12662429
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-08-28 10:47:04 +02:00
SabineSIL
fb766023a0
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2025-08-19 08:49:50 +02:00
Keyman Server
a2b3215578
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-08-11 08:24:54 -07: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
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
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Marc Durdin
65158a0526 maint(common): rename shellHelperFunctions.sh to utils.inc.sh
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.

Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
2025-08-02 06:58:40 +10:00
Sabine
7e1aa09475 feat(developer): changed copyright, imports, duplicate validationError, comments 2025-07-14 15:32:38 +02:00
Sabine
1a522bf8a4 feat(developer): add header comment for keylayot-xml.ts 2025-07-09 15:03:13 +02:00
Sabine
761403c782 feat(developer): remove unnecessary code 2025-07-09 08:00:55 +02:00
Sabine
9ecbd58aa7 feat(developer): add keylayout-xml.ts 2025-07-08 16:54:28 +02:00
Sabine
461717808d feat(developer): version with broken schema.bundler 2025-07-08 15:37:27 +02:00
Sabine
faaf5c9abc feat(developer): validation finished 2025-07-07 11:42:00 +02:00
Sabine
cebbda981f Merge branch 'feat/developer/kmc-convert' into feat/developer/kmc-convert-validateKeylayout
# Conflicts:
#	developer/src/common/web/utils/src/xml-utils.ts
#	developer/src/kmc-convert/src/converter-messages.ts
#	developer/src/kmc-convert/src/keylayout-to-kmn/keylayout-file-reader.ts
#	developer/src/kmc-convert/src/keylayout-to-kmn/keylayout-to-kmn-converter.ts
#	developer/src/kmc-convert/src/keylayout-to-kmn/kmn-file-writer.ts
2025-07-03 11:54:41 +02:00
Sabine
9937ce1ac4 feat(developer): add keylayout to xml-utils 2025-07-02 17:13:50 +02:00
Steven R. Loomis
0a35181bed chore(developer): rename x: to compileContext:
Fixes: #14117
2025-06-26 15:58:43 -05:00
Steven R. Loomis
28ba904b37 chore(developer): rename ObjectWithMetadata to ObjectWithCompileContext
Fixes: #14117
2025-06-26 15:56:52 -05:00