Commit graph

415 commits

Author SHA1 Message Date
Marc Durdin
342f216291 chore: increment to alpha 19.0 2025-02-11 14:14:15 +07:00
Marc Durdin
bd4633333b feat(developer): improve compiler messages and user interface
* Add unit test to verify the format of message detail strings
  (max line length of 80 chars)
* Add unit test to verify non-null, non-empty message strings
* Tidy up a number of messages (to pass unit tests)
* Add message details for all kmw compiler messages
* Add a clickable link for the TIKE message window for each message
  so that explanations and further message details are more accessible
  to authors (`kmc message` is already available for command-line users)
* Fixes a number of minor issues with the messages window in TIKE,
  mostly relating to when popup menu commands are enabled and how
  messages are selected.

Fixes: #13134
2025-02-07 08:46:46 +07:00
Marc Durdin
2df63dddae
Merge pull request #13075 from keymanapp/fix/developer/13072-make-kmc-log-options-consistent
fix(developer): make kmc log options consistent across all commands
2025-02-05 11:30:10 +07:00
Marc Durdin
9db0d086dc
Merge pull request #13113 from keymanapp/feat/developer/kmc-include-command-line-in-sentry-reports
feat(developer): include command line in kmc sentry reports
2025-02-04 11:43:12 +07:00
Marc Durdin
4a879acd9d chore(developer): minimize PII in sentry cmdline report 2025-02-04 10:12:23 +07:00
Marc Durdin
439c091c9e chore: update docs to reference node 20.0
Relates-to: keyman-keyboards/khmer_angkor#1
2025-02-04 07:58:52 +07:00
Marc Durdin
072c47b853 fix(developer): pass correct generator options from kmc
Also add some resilience to option usage in kmc-generate; more work may
need to be done here in future.

Fixes: #13110
2025-02-03 10:13:36 +07:00
Marc Durdin
05c17e3439 feat(developer): include command line in kmc sentry reports
In order to reproduce kmc errors, it's very helpful to know how it was
instantiated. This change includes the command line call for kmc. This
includes things such as a keyboard filename and may include file paths,
but does not include private personal information or secrets.
2025-02-03 09:53:45 +07:00
Marc Durdin
d2aa22ff75 fix(developer): make kmc log options consistent across all commands
Makes the `--log-format`, `--log-level`, and `--color`/`--no-color`
options available for all commands and DRYs out some of the options
processing for consistency. This has positive impact in particular on
the Generator classes which removes the need for several unit tests as
the interface can now be checked at compile time.

Fixes: #13072
Unblocks: #13073
2025-01-30 09:20:29 +07:00
Marc Durdin
192e932949 feat(developer): support relocation of external files in kmc-copy
Fixes: #13060
2025-01-28 12:24:04 +07:00
Marc Durdin
a689f65188 fix(developer): don't list .js keyboards for multi-keyboard packages in kmc-keyboard-info
Because the build process for multi-keyboard packages does not deploy
.js keyboards to s.keyman.com, it does not make sense to list them, even
if the package may contain .js keyboards for mobile platforms.

Fixes: #12853
2025-01-24 13:07:43 +07:00
Marc Durdin
d4513a1d51 chore(developer): add new severity types to message command 2025-01-22 11:14:33 +07:00
Marc Durdin
a08f1aca6e feat(developer): add 'verbose' and 'debug' log levels to kmc
Adds 'verbose' and 'debug' log levels and corresponding error severity
levels. This means the internal error severity values have changed to
match - 'info' is now 2 instead of 0.

Fixes: #12975
2025-01-22 08:58:13 +07:00
Marc Durdin
439ea0e4d1 chore(developer): remove '--rename' option from kmc-copy
An in-place rename is dangerous and destructive, so we won't support it.
2025-01-22 08:12:54 +07:00
Marc Durdin
edc8d00caf chore(developer): stub out icon support in kmc-generate
As icon generation turns out to be challenging due to limitations or
native dependencies in node.js libraries for image generation, icon
options are now stubbed out to avoid confusion.
2025-01-22 07:14:07 +07:00
Marc Durdin
6f6316e79b fix(developer): use 1.0.0 as default for ldml keyboards in kmc-generate
Fixes: #12961
2025-01-21 13:58:37 +07:00
Marc Durdin
2dec427bd4 fix(developer): use correct terms in kmc-generate lexical model help
Fixes: #12959
2025-01-21 13:55:48 +07:00
Marc Durdin
31e3e9e02a chore(developer): redirect stderr in command-line-tests 2025-01-13 16:27:49 +07:00
Marc Durdin
dad1df3194 fix(developer): ensure license parameter is required and add tests
Some additional items arose from this:

* Adds a command-line-tests unit test which does some basic sanity tests
  on `kmc`.
* Cleans up some of the error reporting infrastructure in `kmc` to
  ensure that thrown errors are handled better.
* Removes redundant subshell from `builder_run_action`.

Fixes: #12846
2025-01-13 15:10:31 +07:00
Marc Durdin
7be5c62e3b
Merge pull request #12773 from keymanapp/chore/developer/12746-kmc-copy-full-gh-url-to-master
change(developer): use full github url in kmc copy parameters 🍒
2024-12-06 08:01:34 +01:00
Marc Durdin
33b4fa3e89 change(developer): use full github url in kmc copy parameters
Fixes: #12746
Cherry-pick-of: #12754
2024-12-05 09:23:08 +07:00
Steven R. Loomis
f4f0355109 feat(developer): local imports directory fixes
- use path.join instead of path.resolve
- rename importsPath to cldrImportsPath
- remove k_015_importlocal from core, as it duplicated tests in common and developer

Fixes: #10649
2024-12-02 15:40:54 -06:00
Steven R. Loomis
75d172a6cb
Merge branch 'feat/developer/7394-verify-normalization-epic-ldml' into feat/developer/10649-local-imports 2024-12-02 11:37:29 -06:00
Marc Durdin
cd8825d504
Merge pull request #12736 from keymanapp/refactor/developer/unify_test_action
refactor(developer): unify test action
2024-12-01 00:14:11 +01:00
Steven R. Loomis
e99f6ac46a feat(developer): support local imports in kmc
- basic changes to support local imports

Fixes: #10649
2024-11-29 13:56:41 -06:00
Eberhard Beilharz
66404f9503
chore(developer): rename test files
This change rename the test files for Developer according to the
discussion at the Keyman conference in November 2024.
2024-11-28 14:32:09 +01:00
Marc Durdin
70a32f00d7 refactor(developer): unify test action 2024-11-28 15:16:25 +07:00
Eberhard Beilharz
21736d8817
refactor(developer): output number of tests when running on TC
This change adds the mocha-teamcity-reporter which outputs the running
tests in a special format that TeamCity can interpret. This allows TC
to show which tests run as well as the number of tests run.

Also refactor some of the build scripts to use functions.

Note that we had to explicitly add `--check-coverage=false` (which is the
default) to get successful builds when we run on TC.
2024-11-27 11:41:06 +01:00
Marc Durdin
2a9f2a3958
Merge pull request #12586 from keymanapp/feat/developer/kmc-copy-github-and-cloud-support
feat(developer): add GitHub and Cloud support to kmc-copy
2024-11-08 05:14:14 +01:00
Marc Durdin
eefbdc413d
Merge pull request #12555 from keymanapp/feat/developer/kmc-copy
feat(developer): kmc-copy
2024-11-08 05:14:02 +01:00
Marc Durdin
b80c124ec8
Merge pull request #11014 from keymanapp/feat/developer/kmc-generate
feat(developer): kmc generate
2024-11-08 05:13:51 +01:00
Marc Durdin
08215e28fa
Merge pull request #12622 from keymanapp/feat/developer/9767-kmc-analyze-extend-mapping
feat(developer): analyze osk-char-use merge with existing mapping file
2024-11-07 05:51:33 +01:00
Marc Durdin
7af4ae42ae
chore: Apply suggestions from code review 2024-11-06 03:06:47 +01:00
Marc Durdin
f717b2ba5c fix(developer): handle merge commits when checking git log date
Relates-to: keymanapp/keyboards#3143
Fixes: #12626
Fixes: KEYMAN-DEVELOPER-2AY
2024-11-06 06:11:38 +07:00
Marc Durdin
c683657969 feat(developer): analyze osk-char-use merge with existing mapping file
A gap in the kmc-analyze module displayMap support was that it was not
possible to extend an existing mapping file, but only to rewrite one.
This caused issues because the mappings could change between runs, if
keyboards changed, meaning fonts would not be backward compatible. This
change guarantees an existing mapping file will have exactly the same
character mappings, and only adds new mappings that are found.

Also adds unit tests and enables for kmc-analyze.

Fixes: #9767
2024-11-05 14:43:29 +07:00
Marc Durdin
d68a64252e feat(developer): add GitHub and Cloud support to kmc-copy
This requires a significant refactor to the compiler interfaces to allow
for asynchronous filesystem and network access. For now, only kmc-copy
uses the asynchronous interfaces, but over time we may try and
consolidate them where other compiler modules find them useful. This
adds a big set of unit test fixtures to avoid network instability in
tests (the fixtures can be regenerated by setting environment variable
`TEST_SAVE_FIXTURES`).
2024-10-28 10:33:42 +07:00
Marc Durdin
6df121a05a feat(developer): kmc-copy cleanup and documentation
* Hides details on --rename and online sources for projects
  until implemented
2024-10-22 10:28:04 +07:00
Marc Durdin
40db1c2051 feat(common): add isDirectory, helper functions for kmc-copy 2024-10-22 10:28:03 +07:00
Marc Durdin
7d17913e18 feat(developer): seed kmc-copy 2024-10-22 10:28:00 +07:00
Marc Durdin
10e4bba100
Merge branch 'master' into feat/developer/kmc-generate 2024-09-26 18:55:20 +02:00
Eberhard Beilharz
0dbae5c199
fix(core): add missing dependency for core
Core depends on `kmc` which in turn depends on `core/include/ldml`. This
change adds the missing dependency to the build script and fixes building
core from a clean `core` subdirectory.

# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2024-09-17 18:28:02 +02:00
Marc Durdin
48d4e65cf0 fix(developer): copy templates into bundle 2024-09-17 17:05:13 +07:00
Marc Durdin
8424cb9349
Merge branch 'master' into feat/developer/kmc-generate 2024-09-12 08:18:37 +02:00
Marc Durdin
4a2e6fd0a5 test(developer): add unit test for generate module 2024-09-10 10:54:22 +07:00
Eberhard Beilharz
c3e587193e
refactor(web): move model/types to web/types
Part-of: #12133
2024-09-09 19:59:01 +02:00
Marc Durdin
d2f99f69cb chore(developer): refactor imports after merge 2024-09-09 06:30:26 +07:00
Marc Durdin
db904119f3 feat(developer): unit tests for kmc-generate
Note: these are more e2e than unit tests. It may be difficult to convert
them into solid unit tests due to the way that kmc-generate works based
on templates.
2024-09-03 06:20:33 +07:00
Marc Durdin
8274d30788 feat(developer): kmc generate cleanup
Cleanup various todo items for kmc generate. Outstanding TODO item is
icon generation for .kmn.
2024-09-03 06:20:28 +07:00
Marc Durdin
2994fe2aea feat(developer): kmc-generate docs and tests started 2024-09-03 06:17:33 +07:00
Marc Durdin
939134a9a3 feat(developer): kmc-generate module
Plenty of todo items left but this is a mostly-functional module for the
kmc generate command for automatically creating keyboard and model
projects.
2024-09-03 06:15:33 +07:00