Commit graph

1735 commits

Author SHA1 Message Date
Marc Durdin
1be22862cf
Merge pull request #8783 from keymanapp/feat/developer/verify-at-least-one-language-in-package
feat(developer): verify at least one language in package
2023-05-16 17:21:01 +10:00
Marc Durdin
888786e0f4
Merge pull request #8778 from keymanapp/feat/developer/verify-package-lang-tags
feat(developer): verify bcp47 tags are valid and minimal in kmc-package
2023-05-16 17:20:46 +10:00
Marc Durdin
bd0db9c7da
Merge pull request #8769 from keymanapp/feat/developer/verify-keyboard-versions
feat(developer): verify keyboard versions in kmc-package
2023-05-16 17:20:26 +10:00
Marc Durdin
b2e293892d
Update developer/src/kmc-package/test/fixtures/invalid/keyboardcontentfilenotfound.kps 2023-05-16 13:21:31 +10:00
Marc Durdin
c31118cd6d chore(developer): rename fixture 2023-05-15 20:17:22 +07:00
Marc Durdin
663e4195ff
chore: Apply suggestions from code review 2023-05-15 23:16:36 +10:00
Steven R. Loomis
e795287b93 feat(developer): kmc-kmn: merge conflict updates 🙀
for: #7234
2023-05-12 08:44:50 -05:00
Steven R. Loomis
1937552f39 Merge remote-tracking branch 'upstream/master' into feat/developer-234-uset-wasm-epic-ldml 2023-05-12 08:44:19 -05:00
Steven R. Loomis
02a3b41222
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-05-12 08:37:32 -05:00
Marc Durdin
8446775dd5 feat(developer): verify at least one language in package
Adds `ERROR_MustHaveAtLeastOneLanguage` and corresponding unit test.
2023-05-12 14:42:07 +07:00
Marc Durdin
2528731b58 chore(developer): fixup missing rename 2023-05-12 14:15:24 +07:00
Marc Durdin
187a25240a chore(developer): fixup missing rename 2023-05-12 14:14:32 +07:00
Marc Durdin
27aa806282 chore(developer): Merge branch 'master' into chore/developer/disambiguate-compilers 2023-05-12 14:09:50 +07:00
Marc Durdin
b3436b8aff chore(developer): fix kmc-ldml unit tests 2023-05-12 13:31:56 +07:00
Marc Durdin
e4ad95550e feat(developer): verify bcp47 tags are valid and minimal in kmc-package
Adds checks for bcp47 tag metadata for keyboards and lexical models --
both validity and minimality. Adds `ERROR_LanguageTagIsNotValid` and
`WARN_LanguageTagIsNotMinimal` messages and corresponding unit tests.

This was implemented by extending the existing duplicate id check, so
renamed that function accordingly.
2023-05-12 13:21:13 +07:00
Marc Durdin
3ee1132200
Merge pull request #8757 from keymanapp/feat/developer/validate-package-name
feat(developer): validate package name in compiler
2023-05-12 13:22:58 +10:00
Marc Durdin
34ba77ff2b
Merge pull request #8755 from keymanapp/feat/developer/validate-content-file-names-in-packages
feat(developer): validate content file names in packages
2023-05-12 13:22:50 +10:00
Marc Durdin
25f3a42bd5
Merge pull request #8751 from keymanapp/feat/developer/validate-package-filename
feat(developer): add validation of package filenames
2023-05-12 12:25:33 +10:00
Marc Durdin
090170ce8d
Merge pull request #8740 from keymanapp/feat/developer/package-validation-in-kmc-package
feat(developer): add package validation
2023-05-12 12:25:26 +10:00
Marc Durdin
7982bd955c
Merge pull request #8729 from keymanapp/chore/developer/move-package-formats-to-common-types
chore(developer): move package formats to common/web/types
2023-05-12 12:25:19 +10:00
Marc Durdin
d3e4762b52 chore(developer): Info_KeyboardFileHasNoKeyboardVersion
Downgrades `Warn_KeyboardFileHasNoKeyboardVersion` to
`Info_KeyboardFileHasNoKeyboardVersion`, because this is not an error,
or even something wrong necessarily; it's just something it's good to be
aware of. Updates unit test for kmc to cater for the extra message.
2023-05-12 09:07:46 +07:00
Marc Durdin
53c51b79e6 feat(developer): add tests for keyboard and package version matching
Adds `WARN_KeyboardVersionsDoNotMatch` and
`WARN_KeyboardVersionsDoNotMatchPackageVersion`.

Adds unit tests. Several other 'invalid' packages needed corrections
after adding this validation. Note that one unit test was deleted
because it could never be satisfied after adding this validation step.
2023-05-12 08:26:54 +07:00
Marc Durdin
3c3a363478 feat(developer): verify keyboard versions in kmc-package
Refactor the `extractKeyboardVersionFromKmx` function into a new class
and add extra version checking. This caused a bit of a cascade of test
failures due to some of the 'invalid' fixtures actually being invalid
in multiple ways, so the fixtures have been corrected to only be wrong
in a single way -- the way they are supposed to be broken. This means
additional fixture files in the 'invalid' folder.

Now updates keyboard version metadata for all keyboards in the package.

Upgrades `WARN_FollowKeyboardVersionButNoKeyboards` to
`ERROR_FollowKeyboardVersionButNoKeyboards`, as this leads to invalid
package metadata on build.

Renames `ERROR_KeyboardFileNotFound` to
`ERROR_KeyboardContentFileNotFound` to better reflect that no `<File>`
in the package is found to match a given `<Keyboard>` entry.

Adds `ERROR_KeyboardFileNotFound` when a referenced .kmx does not exist.

Adds and updates corresponding unit tests.
2023-05-12 07:19:33 +07:00
Steven R. Loomis
6317583528 feat(developer): kmc-kmn: wasm and error message updates 🙀
developer:
- update wasm machinery in kmc-kmn to be more self contained
- improve exception situation in wasm functions

common:
- compilerErrorFormatCode() for formatting the raw code such as for tests
- compilerExceptionToString() for formatting exceptions in messages

for: #7234
2023-05-11 10:37:46 -05:00
Marc Durdin
70279914a8 feat(developer): validate package name in compiler 2023-05-11 15:03:53 +07:00
Marc Durdin
b2be12c258 feat(developer): validate content file names in packages 2023-05-11 14:42:26 +07:00
Marc Durdin
88b31ba49e feat(developer): add validation of package filenames
Adds `WARN_PackageNameDoesNotFollowKeyboardConventions` and
`WARN_PackageNameDoesNotFollowLexicalModelConventions`, refactoring as
required to test filenames, and adds unit tests for same.
2023-05-11 13:23:33 +07:00
Marc Durdin
a77aa8b54c chore(developer): refactor checkForModelsAndKeyboardsInSamePackage into separate func 2023-05-11 12:44:45 +07:00
Steven R. Loomis
3d8e3e2500 Merge remote-tracking branch 'upstream/master' into feat/developer-234-uset-wasm-epic-ldml 2023-05-10 08:34:59 -05:00
Marc Durdin
97b4e35ec6
Merge pull request #8742 from keymanapp/feat/common/builder-run-action
feat(common): add `builder_run_action` shorthand function
2023-05-10 18:58:22 +10:00
Marc Durdin
7cf891b7c0 chore(developer): add validation to kmlmi 2023-05-10 12:56:26 +07:00
Marc Durdin
97837d2021 feat(common): add builder_run_action shorthand function 2023-05-10 12:50:39 +07:00
Marc Durdin
6c17f4851a feat(developer): add validation for keyboards in package
Adds validation for WARN_PackageShouldNotRepeatLanguages for keyboards
plus unit test.
2023-05-10 11:57:40 +07:00
Marc Durdin
dbc64bcbb0 feat(developer): add package validation
Adds a package-validation.ts module, plus adds a call to the validation
step in the compilers.

Rearranges the kmc-package files to match other compilers better.

Removes `default` from exports.

And finally, adds ERROR_PackageCannotContainBothModelsAndKeyboards and
WARN_PackageShouldNotRepeatLanguages messages, plus tests.
2023-05-10 11:50:54 +07:00
Marc Durdin
7d8416dc9e chore(developer): fixup dependencies for kmc-model-info
Removes the ugly cross-dependency on kmc-package, as the metadata file
is now in common-types.
2023-05-10 09:07:23 +07:00
Steven R. Loomis
348e3281bd feat(developer): kmc-kmn: updates to uset api and Compiler 🙀
- use compiler messages
- add some TODOs around free

for: #7234
2023-05-09 18:41:02 -05:00
Steven R. Loomis
009e2a11ae feat(developer): kmc-kmn: updates to uset api and Compiler 🙀
for: #7234

Co-authored-by: Marc Durdin <marc@durdin.net>
2023-05-09 12:19:31 -05:00
Marc Durdin
53ccdbe241 chore(developer): move package formats to common/web/types
Package file interfaces were stored in developer/kmc-package but belong
better now in common/web/types.
2023-05-09 15:48:50 +07:00
Marc Durdin
46267e347f chore(developer): rename Compiler and related classes 2023-05-09 14:28:21 +07:00
Marc Durdin
2f65acf268 chore(developer): additional kmc-ldml ref 2023-05-09 14:24:59 +07:00
Marc Durdin
4838ba1ffe chore: rename kmc-keyboard to kmc-ldml
Part of #8719.
2023-05-09 14:08:45 +07:00
Steven R. Loomis
c6380fbaf9 feat(developer): uset api from wasm! 🙀
For: #7234
2023-05-05 15:05:06 -05:00
Steven R. Loomis
2374c94ceb
Merge pull request #8691 from keymanapp/feat/developer-7377-transform-format-epic-ldml2 2023-05-04 07:49:18 -05:00
Steven R. Loomis
f2261c2243 fix(developer): partial Revert in test and json validator
This partially reverts commit 55405e5cf1.
2023-05-01 21:36:45 -05:00
Steven R. Loomis
a1fea150bf fix(developer): try again to unbreak windows kmcmplib 🙀
- use 'all objects' + icu for the test build
- this wasn't working in windows before

feat(developer): compiler updates for ldml transforms 🙀 #7377
2023-05-01 19:56:22 -05:00
Steven R. Loomis
9fdffdb7e3 fix(developer): try to unbreak windows kmcmplib 🙀
feat(developer): compiler updates for ldml transforms 🙀 #7377
2023-05-01 16:54:09 -05:00
Steven R. Loomis
6f568bbadf feat(developer): uset api in kmcmplib 🙀
- another windows fix

For: #7377
2023-04-28 19:10:22 -05:00
Steven R. Loomis
3996bd0046 feat(developer): fix for kmcmplib 🙀
- fix build issue on windows

For: #7377
2023-04-28 15:58:15 -05:00
Steven R. Loomis
ea4da7fc92 feat(developer): fix for kmcmplib 🙀
- include icu static lib

For: #7377
2023-04-28 14:49:48 -05:00
Steven R. Loomis
13d34065c7 feat(developer): uset api in kmcmplib 🙀
- use a wrapped ICU

For: #7377
2023-04-28 14:25:26 -05:00