Commit graph

503 commits

Author SHA1 Message Date
Marc Durdin
7ba8aeac73 chore: Merge branch 'epic/web-core' into auto/B19S1-merge-base-into-web-core 2026-09-12 07:29:25 +02:00
Marc Durdin
e8fa870778 chore(developer): address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-09-01 10:22:56 +02:00
Marc Durdin
a8a1dee6e3 chore: Merge 'epic/web-core' into auto/A19S36-merge-base-into-web-core 2026-08-30 07:05:10 +02:00
Marc Durdin
cf22d460ff feat(developer): support output folder and --continue-on-error
Add support for specifying an output folder instead of filename for the
`--out-file` parameter of kmc. This allows for batch builds, which can
be much faster than invoking kmc for each file separately.

Alongside that, add a `--continue-on-error` parameter that allows for
batch builds to continue even if a single file fails to build. (Note
that if a fatal error is encountered, kmc aborts with exit code 70).
2026-08-28 10:29:28 +02:00
Sabine
0f35f1fc79 feat(developer): changes in kmc convert --help; import of ConverterArtifacts, ConverterToKmnArtifacts, ConverterResult, and ConverterToKmnResult 2026-08-21 16:16:35 +02:00
Marc Durdin
f55218fec6 chore: Merge remote-tracking branch 'origin/epic/web-core' into auto/A19S35-merge-base-into-web-core 2026-08-14 17:19:28 +02:00
Keyman Server
7e8e53dbbc
Merge branch 'epic/kmc-convert' into auto/A19S35-merge-base-into-kmc-convert 2026-08-14 16:19:03 +02:00
Marc Durdin
0624bc900a
Merge pull request #16095 from keymanapp/dependabot/npm_and_yarn/esbuild-0.28.1
chore(deps-dev): bump esbuild from 0.25.0 to 0.28.1
2026-08-13 08:21:33 +02:00
Keyman Server
b842fbd00b
Merge branch 'epic/web-core' into auto/A19S32-merge-base-into-web-core 2026-07-04 13:20:35 +02:00
Keyman Server
52298758cb
Merge branch 'epic/kmc-convert' into auto/A19S32-merge-base-into-kmc-convert 2026-07-04 13:19:46 +02:00
Marc Durdin
267a519943
Merge branch 'epic/web-core' into auto/A19S31-merge-master-into-web-core 2026-06-25 00:06:12 +10:00
Marc Durdin
cfe2e8ef06 fix(developer): consolidate user options in TypeScript code
* Remove Server's 'config.json' redundant user options handling
* Refactor options.ts in Server and kmc to share common cross-platform
  code
* Move option defaults into common code and sync with .pas defaults
* Rename config.ts to standardPaths.ts to better represent the remaining
  purpose of the module.

Fixes: #13458
2026-06-24 06:27:10 +02:00
Keyman Server
784ed88f63
Merge branch 'epic/kmc-convert' into auto/A19S31-merge-master-into-kmc-convert 2026-06-22 17:46:54 +02:00
Marc Durdin
f52f383d93
Merge pull request #16076 from keymanapp/feat/developer/16068-run-project-validation-from-tike
feat(developer): run project validation from IDE
2026-06-15 22:17:10 +10:00
dependabot[bot]
0df88615a2
chore(deps-dev): bump esbuild from 0.25.0 to 0.28.1
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.25.0 to 0.28.1.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2025.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.0...v0.28.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-14 01:04:48 +00:00
Eberhard Beilharz
c1113ac21d
chore(web): address code review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Also change a few places that I missed.
2026-06-08 19:27:12 +02:00
Marc Durdin
1da2600818 feat(developer): run project validation from IDE
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
When option 'SkipMetadataFiles' is not set in the project (inverse of
'Build metadata files for Keyman Cloud' in Project Settings dialog),
then will run the validation step and generate .keyboard_info /
.model_info from the IDE. Also add corresponding log messages (and add
formatting for some others that were missing).

Fixes: #16068
Test-bot: skip
2026-06-08 14:26:39 +02:00
Marc Durdin
b6b10d1a09 chore: Merge branch 'epic/embed-osk-in-kmx' into auto/A19S24-merge-master-into-embed-osk-in-kmx 2026-03-15 07:42:03 +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
5129a482b4 fix(developer): await copier result before reporting success or failure
Without `await`, a 'success' message is always returned, because the
Promise that is returned is not nullish. While the log message was
misleading, the outcome was already correct, because the parent function
`copyProject()` did correctly await the call to `doCopy()`.

Fixes: #15699
Test-bot: skip
2026-03-09 06:24:57 +01: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
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
414092abf6
Merge branch 'epic/embed-osk-in-kmx' into auto/A19S20-merge-master-into-embed-osk-in-kmx 2026-01-16 08:39:08 +01:00
Keyman Server
71b8894bfb
Merge branch 'epic/kmc-convert' into auto/A19S20-merge-master-into-kmc-convert 2026-01-16 08:36:20 +01:00
Marc Durdin
de875ff39c fix(developer): verify project file loaded successfully in analyze
Fixes: #15315
Fixes: KEYMAN-DEVELOPER-338
Test-bot: skip
Build-bot: skip
2025-12-08 08:08:08 +01:00
Marc Durdin
5b2571d214
Merge branch 'epic/kmc-convert' into auto/A19S16-merge-master-into-kmc-convert 2025-11-20 11:10:31 +01:00
Keyman Server
7ad056bf5f
Merge branch 'epic/embed-osk-in-kmx' into auto/A19S16-merge-master-into-embed-osk-in-kmx 2025-11-20 11:08:48 +01:00
Marc Durdin
5dbc438f53 maint(resources): add builder_launch function
Use `builder_launch` to launch other builder scripts rather than calling
directly, so that inheritable state and options are passed through.

Test-bot: skip
2025-11-10 11:46:14 +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
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
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
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
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
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
8d74d2c8a6 feat(developer): add targetVersion support to kmc and kmc-kmn
Make the target version parameter for kmc-ldml into a generic build
parameter, so we can use it for any compiler. Add support and tests
to kmc-kmn, kmcmplib, kmc-ldml, kmc.

Support not yet in place for lexical models, or packages. However,
packages will be picking up the min version from the embedded keyboards.
Lexical models need work on minimum version support before this can be
implemented there.
2025-10-22 05:48:24 +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
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
Marc Durdin
11a558e926 maint(developer): support buildLevel
Relates-to: 14125
Build-bot: build
Test-bot: skip
2025-06-14 15:22:15 +10:00
Keyman Server
76c515213e
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-06-12 17:02:25 -07:00
Marc Durdin
90187885c1 chore(developer): extend unit test timeout for getLastGitCommitDate 2025-06-10 10:22:29 +07:00
Marc Durdin
b9f8e8eb85
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-05-30 08:24:00 +07:00
Marc Durdin
c300c9bbd9 chore(developer): use const instead of let 2025-05-16 08:51:27 +02:00
Marc Durdin
c9b3ae41f4
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-05-16 13:00:18 +07:00
Joshua Horton
155c1a2b12 maint: update mocha
Some of the npm audit warnings left after #13897 require an updated `mocha` version to remedy.  As we only really use `mocha` to do unit-testing, it should be safe to update if all of our existing tests pass with the new version.

Test-bot: skip
2025-05-13 14:02:02 +07:00
Steven R. Loomis
c2b6a65f1b
Merge pull request #13375 from keymanapp/feat/developer/10622-xml-parse-line-numbers-epic-ldml
feat(developer): line numbers for XML parsing and kmc-ldml 🙀
2025-05-12 18:37:23 -05:00