Commit graph

477 commits

Author SHA1 Message Date
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
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
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
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
Steven R. Loomis
8e2eb498e3 feat(developer): update for line numbers
- reduce whitespace churn

Fixes: #10622
2025-05-09 11:41:23 -05:00
Steven R. Loomis
ad0ea8678b feat(developer): update for line numbers
- added new DelegatingCompilerCallbacks class
- added ResolvingCompilerCallbacks which does event resolution
- added the XML file name metadata to *every object* after XML parse.

Fixes: #10622
2025-05-08 17:29:30 -05:00
Eberhard Beilharz
4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02:00
Steven R. Loomis
937573869b Merge remote-tracking branch 'upstream/master' into feat/developer/10622-xml-parse-line-numbers-epic-ldml 2025-05-05 09:28:15 -05:00
Joshua Horton
d92ef04049 change(developer): clean up developer/src/kmc linter issues 2025-04-30 09:15:34 +07:00
Marc Durdin
6ab557914b
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-04-24 19:07:51 +07:00
Steven R. Loomis
e003612ea0 feat(developer): update for line numbers
- remove resolver complexity in callback subclasses
- call LDMLKeyboardXMLSourceFileReader.eventResolver.resolve() statically from ldml-compiler-messages

Fixes: #10622
2025-04-10 17:22:51 -05:00
Steven R. Loomis
64bcfc66e9 Merge remote-tracking branch 'upstream/master' into feat/developer/10622-xml-parse-line-numbers-epic-ldml 2025-04-10 17:02:05 -05:00
Marc Durdin
838aea52ed refactor(developer): consolidate project loader
Consolidates project loading code from kmc and kmc-copy, in preparation
for kmc-test epic. This leaves open a change we need to make to
CompilerCallbacks, to consolidate the fsAsync and net callbacks into
CompilerCallbacks as a first-class part of CompilerCallbacks. We will
then need to start to move all the fs and net callback interactions to
the async model across all kmc modules, at some point.
2025-04-03 11:37:54 +07:00
Marc Durdin
cf16c37869 refactor(developer): move sentry and developer options into console apps
Move the sentry dependency out of developer-utils and into the console
apps kmc and server, in process of making sure that developer-utils has
no node dependencies.

Also copy the options.ts module into kmc and server, for the same
reason.

This first step duplicates two units, options.ts and KeymanSentry.ts. We
do need to refactor this again later to avoid this duplication (maybe
via yet another internal package?)
2025-04-03 09:56:46 +07:00
Marc Durdin
70838ff1ac refactor(developer): rename to developer-utils-messages.ts
Renames common-messages.ts to developer-utils-messages.ts. This was
split from /common/web/types, but the messages module retained the old
name, which was confusing (two modules with same name).
2025-04-03 09:26:27 +07:00
Marc Durdin
4eb03c862e
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-03-31 12:13:38 +07:00
Steven R. Loomis
8aa9219410 Merge remote-tracking branch 'upstream/master' into feat/developer/10622-xml-parse-line-numbers-epic-ldml 2025-03-27 16:02:45 -05:00
Marc Durdin
86102c405e
Merge pull request #13191 from keymanapp/dependabot/npm_and_yarn/esbuild-0.25.0
chore(deps-dev): bump esbuild from 0.18.20 to 0.25.0
2025-03-24 11:22:00 +07:00
Marc Durdin
7b33aed94d chore(developer): reduce kmc coverage to 45%
This was due to platform-specific checks in NodeCompilerCallbacks,
around filename case and drive letters in paths (search terms:
HINT_FilenameHasDifferingCase, verifyFilenameConsistency):

- Linux: 59.01%
- macOS: 60.46%
- Windows: 63.08%

Mitigation: reduce threshold to 45%. More tests will be needed for
kmc-convert before epic merge.
2025-03-15 15:09:18 +07:00
Marc Durdin
19fadd5085
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-03-14 10:57:34 +07:00
Marc Durdin
1a0b830c0b
Merge branch 'master' into chore/b18s3-merge-beta-to-master 2025-03-14 08:54:50 +07:00
Marc Durdin
3ad7e78c25
Merge pull request #13457 from keymanapp/fix/developer/13446-improve-message-about-missing-file
fix(developer): add folder text to Error_FileDoesNotExist message
2025-03-12 08:55:02 +07:00
Marc Durdin
13d5ee8741 fix(developer): add folder text to Error_FileDoesNotExist message
Fixes: #13446
2025-03-10 05:19:09 +07:00
Marc Durdin
1b26d4ff96 docs(developer): fix typos in readme and add link 2025-03-04 13:59:41 +01:00
Steven R. Loomis
2dca879aae
Merge branch 'master' into feat/developer/10622-xml-parse-line-numbers-epic-ldml 2025-03-03 17:15:48 -08:00
Steven R. Loomis
d7cb7b63a3 feat(developer): add an EventResolver
- it's a hook to the hook to allow the LDML compiler to resolve error message line numbers
- TODO still not extra performant, but maybe the right separation of concerns

Fixes: #10622
2025-03-03 13:14:41 -06:00
Steven R. Loomis
3e73a3f081 feat(developer): add CompilerEvent.offset
- per review, keep this as a separate field.

Fixes: #10622
2025-03-03 12:36:42 -06:00
Marc Durdin
f61a104acf
Merge branch 'master' into chore/merge-beta-into-master-B18S2 2025-03-01 15:45:19 +07:00
Steven R. Loomis
d38025b4a1 feat(developer): API for resolving line numbers for messages
- Only read the xml file once

Fixes: #10622
2025-02-28 10:32:05 -06:00
Steven R. Loomis
c4ca359d18 feat(developer): API for resolving line numbers for messages
- add 'column' to CompilerEvent
- Add a LdmlCompilerMessages.col() function to set the column number
- add a LdmlCompilerMessages.resolveLineNumber() to map offsets to line number

Fixes: #10622
2025-02-28 09:27:25 -06:00