Commit graph

2740 commits

Author SHA1 Message Date
Steven R. Loomis
87c18fdb42 feat(developer): scancode hint to warning 🙀
For: #9403

- fix a bad comment
- Warn_UnsupportedCustomForm (formerly hint)
2023-09-25 16:13:17 -05:00
Marc Durdin
94be7bb60c chore(developer): validate emitted .keyboard_info and fix keys
Fixes #9620.

.keyboard_info keys emitted from kmc-keyboard-info had the wrong format
for the example.keys object, which I discovered when I applied the
validation to the kmc-keyboard-info output.
2023-09-25 15:53:20 +07:00
Marc Durdin
a093507a4c chore(developer): remove .keyboard_info sources
Fixes #9551.

Removes various .keyboard_info files from test fixtures and also removes
generation of .keyboard_info source files from kmconvert, alongside now-
redundant tests (cvt.dpr).
2023-09-25 12:19:26 +07:00
Marc Durdin
fd9b131307 chore(developer): remove Package Installer UI from TIKE 2023-09-25 10:27:59 +07:00
Marc Durdin
5a6758d12e chore(developer): move package version unit tests into Typescript 2023-09-25 08:44:11 +07:00
Marc Durdin
7dc8743cd3 chore(windows): remove buildpkg 2023-09-25 06:00:39 +07:00
Steven R. Loomis
f56e4ffa85 feat(common): ldml scancodes 🙀
For: #9403

- unit test the set and row count for codes
- fix errors!
2023-09-22 17:56:35 -05:00
Steven R. Loomis
44f061f293 feat(common): ldml scancodes 🙀
For: #9403

- improve how forms are read in the XML structure
- warnings when custom (non-default-import) scancodes are loaded
- error, as usual, when an unknown form is present
2023-09-22 17:33:20 -05:00
Marc Durdin
e1087ed781 chore(developer): fix commander global options 2023-09-22 11:20:48 +07:00
Marc Durdin
c95b0dd421 chore(developer): normalize case on input filenames in kmc
Fixes #9611.
2023-09-22 09:54:22 +07:00
Marc Durdin
a9fb7a189f chore(developer): add missing parameter to ldml-test-data 2023-09-22 09:27:37 +07:00
Marc Durdin
db6a836e31 chore(developer): remove extra parameter 2023-09-21 17:44:08 +07:00
Marc Durdin
a1a7b39481 feat(developer): Windows package installer compiler
Replaces kmcomp's package installer build infrastructure. While this is
mostly legacy, package installers are still used in adhoc distribution
scenarios, so we need to continue to support with the new kmc.

The package installer is a Windows self-extracting zip archive. The user
is expected to find setup-redist.exe and keymandesktop.msi themselves,
from the Keyman Developer release files. They are not included with
Keyman Developer, but are available as standalone downloads from
https://downloads.keyman.com/windows/.

`kmc build` has been updated to include two subcommands:
* `kmc build ldml-test-data`
* `kmc build windows-package-installer`

Both of these subcommands are a little long, but the use cases for them
are fairly narrow, so I believe this is okay. `kmc build-test-data` has
been removed, as `kmc build ldml-test-data` replaces it.
2023-09-21 17:35:16 +07:00
Steven R. Loomis
60295cef70 chore(core): ldml update keyboard -> keyboard3 🙀
For: #9604

- DOCTYPE fixes (typos) to make the red squiggles go away
2023-09-20 18:56:29 -05:00
Steven R. Loomis
8be00cb482 chore(resources): code changes for keyboard to keyboard3 🙀 2023-09-18 19:00:32 -05:00
Marc Durdin
454448bc63 chore: use kmc instead of kmcomp to build test keyboards 2023-09-16 15:24:46 +07:00
Steven R. Loomis
27508571c9 fix(developer): ldml drop \u1234 🙀
- fix 1..6 char Unicode escapes with an unrolled loop

- for feat(core): ldml drop \u1234 format 🙀  #9515
2023-09-15 15:27:47 -04:00
Steven R. Loomis
213dd7d2ad fix(developer): ldml drop \u1234 🙀
- for now, convert \u{1234} to \u1234 before going into
UnicodeSet.

- for feat(core): ldml drop \u1234 format 🙀  #9515
2023-09-15 14:42:37 -04:00
Steven R. Loomis
28012d1f7d chore(developer): ldml fix for update 🙀
- hardware types isn't a fixed set anymore
- un-mothball the pertinent error type

Related to #9403, exposed during #9515 CLDR update
2023-09-15 14:42:03 -04:00
Marc Durdin
0cd3bd6dea
Merge pull request #9563 from keymanapp/chore/merge-master-into-package-metadata
chore: merge master into package-metadata 🎺
2023-09-15 17:06:16 +02:00
Marc Durdin
ccfefa279f chore: make const for date format 2023-09-12 09:26:03 +01:00
Marc Durdin
b8cf546d38
chore: Update developer/src/kmc/src/util/baseOptions.ts 2023-09-12 17:18:02 +10:00
Marc Durdin
a0bdb617a0
chore(developer): Apply suggestions from code review
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2023-09-12 17:15:35 +10:00
Marc Durdin
ae07e5174c fix(developer): only include mobile touch platform in basic project
Fixes #9546.

Previously, a new project would include both mobile and tablet platform
in the touch layout file. However, the majority of devs want to work
with just one, so this removes the tablet platform. Adding a new
platform is a single click within the editor, which duplicates the
current platform as a starting point.
2023-09-09 17:51:40 +02:00
Marc Durdin
3a2540b077 feat(developer): remove kmcomp
Removes kmcomp.dpr, related source, compilekeymanweb.pas, and related
unit tests.

Cleans up a couple of bits and pieces around kmc in order to help tests
to pass, and updates some tests that had legacy code in them
(particularly missing &TARGETS stores).
2023-09-09 17:47:15 +02:00
Marc Durdin
4c07b6c49c feat(developer): remove kmcmpdll 2023-09-02 12:25:29 +04:00
Marc Durdin
ec134f61e6 chore(developer): update tests for new compiler 2023-09-02 10:51:30 +04:00
Marc Durdin
a14abd7b0d chore(developer): add kmcwrapper to unit tests 2023-09-02 07:54:07 +04:00
Marc Durdin
ea4af39b13 chore(developer): kmcomp to build with kmcwrapper 2023-09-02 07:11:18 +04:00
Marc Durdin
44d57e8041 feat(developer): compile kmn files with kmc in tike 2023-09-01 20:40:16 +04:00
Marc Durdin
41f370ede6 chore(developer): remove duplicate outFile parameter
Consolidates the outFile parameter that was duplicated in kmc-kmn.
2023-09-01 20:23:43 +04:00
Marc Durdin
c91b271e67 feat(developer): use kmc to compile packages in TIKE
Also removes unused FSilent flag (was always False).
2023-09-01 19:44:38 +04:00
Marc Durdin
fb165a3f95 feat(developer): use kmc instead of kmlmc in TIKE
First step of integration of kmc into TIKE, establishing base classes
and replacing the lexical model compiler wrapper with them.
2023-09-01 18:16:25 +04:00
Marc Durdin
d2f4e5f2c7 feat(developer): add --log-format to kmc
Adds logFormat of tsv vs formatted for kmc, in order to allow for
"porcelain" style log formatting when we interop with TIKE.
2023-09-01 18:00:13 +04:00
Marc Durdin
0d96437cb8 chore: workaround npm/cli#3466 when bundling internal deps
Works around npm/cli#3466 when bundling internal dependencies using the
bundleDependencies package.json property.

This change works in tandem with the npm pack/publish process -- when we
run `developer/src/kmc/build.sh publish` (or `pack`), we end up with
`npm version` stomping on all our package.json files, so the repo is
dirty after this. We need a copy of the top-level package.json before
this stomping happens, in order to get a simple map of the location of
each of our internal dependencies, from the `dependencies` property (it
would be possible to figure this out with a lot more parsing of
our package.json files, but this is simpler).

This means, in future, we should avoid publishing our internal
dependencies such as those under common/ to npm, as they serve no
practical purpose there.
2023-09-01 17:48:35 +04:00
Marc Durdin
d7f73f3078 chore: workaround npm/cli#3466 when bundling internal deps
Works around npm/cli#3466 when bundling internal dependencies using the
bundleDependencies package.json property.

This change works in tandem with the npm pack/publish process -- when we
run `developer/src/kmc/build.sh publish` (or `pack`), we end up with
`npm version` stomping on all our package.json files, so the repo is
dirty after this. We need a copy of the top-level package.json before
this stomping happens, in order to get a simple map of the location of
each of our internal dependencies, from the `dependencies` property (it
would be possible to figure this out with a lot more parsing of
our package.json files, but this is simpler).

This means, in future, we should avoid publishing our internal
dependencies such as those under common/ to npm, as they serve no
practical purpose there.
2023-09-01 20:30:43 +08:00
Marc Durdin
508588ef26 chore(developer): developer-utils as private package 2023-09-01 15:58:22 +07:00
Marc Durdin
6590658da4 chore(developer): add developer-utils package to publish 2023-09-01 10:12:12 +07:00
Marc Durdin
ff38c6d32d
Merge pull request #9479 from keymanapp/chore/developer/cleanup-kmc-keyboard-info-interface
chore(developer): cleanup kmc-keyboard-info interface 🎺
2023-09-01 13:06:01 +10:00
Marc Durdin
651af2ffd3
Merge pull request #9476 from keymanapp/feat/developer/keyboard-info-markdown
feat(developer): convert markdown description to html 🎺
2023-09-01 13:05:51 +10:00
Marc Durdin
6e8cc167a9
Merge pull request #9474 from keymanapp/feat/developer/compile-without-source-keyboard-info
feat(developer): support building .keyboard_info without source version 🎺
2023-09-01 13:05:43 +10:00
Marc Durdin
0913770208
Merge pull request #9471 from keymanapp/chore/developer/keyboard-info-font-examples-cleanup
chore(developer): cleanup keyboard_info schema 🎺
2023-09-01 13:05:36 +10:00
Marc Durdin
722f72b47a
Merge pull request #9470 from keymanapp/feat/developer/package-license
feat(developer): add LicenseFile as property of package 🎺
2023-09-01 13:05:29 +10:00
Marc Durdin
920a435fb6
Merge pull request #9463 from keymanapp/feat/developer/package-keyboard-web-fonts
feat(developer): add web font references to package 🎺
2023-09-01 13:05:22 +10:00
Marc Durdin
a0f7d25ead
Merge pull request #9459 from keymanapp/feat/developer/extra-package-metadata
feat(developer): additional metadata in keyboard packages 🎺
2023-09-01 13:05:12 +10:00
Marc Durdin
ee4108598e
Merge pull request #9452 from keymanapp/feat/developer/keyboard-info-dedup
chore(common): remove deprecated fields from keyboard_info 🎺
2023-09-01 13:05:05 +10:00
Marc Durdin
56d64da9a7 chore(developer): npm install and fix import 2023-08-30 16:31:43 +10:00
Marc Durdin
232c918c31 feat(developer): support isRTL and license fields in .model_info
Adds support for calculating isRTL and license fields in .model_info
compiler.

Also:
* establishes @keymanapp/developer-utils shared module
* moves license validation into @keymanapp/developer-utils
* refactors kmc-model-info to a class and general cleanup
2023-08-29 16:37:37 +10:00
Marc Durdin
1531e88f70 feat(developer): eliminate source .model_info and .keyboard_info files
Removes all references to source .keyboard_info and .model_info files in
the kmc compiler and types. Updates the model info compiler to support
building purely from model sources (isRTL, license fields are TODO).
2023-08-29 15:37:31 +10:00
Steven R. Loomis
90800acb6d
Update developer/src/kmc-ldml/src/compiler/messages.ts
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2023-08-21 11:36:35 -05:00