Commit graph

16184 commits

Author SHA1 Message Date
Marc Durdin
5d44d2ecc7 chore(developer): Merge branch 'chore/merge-master-into-feature-ldml' into feat/developer/kmldmlc-meta-tests-and-cleanup 2022-08-31 10:10:03 +10:00
Keyman Server
90b7e38c81
Merge pull request #7160 from keymanapp/auto/version-master-16.0.55
auto: increment master version to 16.0.55
2022-08-31 04:03:16 +10:00
Keyman Build Agent
957c2b04c3 auto: increment master version to 16.0.55 2022-08-30 14:02:40 -04:00
Marc Durdin
8fc7921ed4 chore(developer): cleanup todo comments 2022-08-30 13:57:16 +10:00
Marc Durdin
995d731ccb feat(developer): add unit tests for meta compiler
First, a little bit of refactoring to make it cleaner to do unit test
for each section.

Then add some global error values.

Throw in a helper function or two.

Dust off the edges of the CompilerCallbacks object.

Duct tape together validation of the normalization attribute.

And ... eventually we get a nice clean-like unit test for the meta
compiler, with three pretty little fixtures and as-neat-as-you-like-it
assertions.
2022-08-30 13:52:36 +10:00
Marc Durdin
d27f288c13
Merge pull request #7149 from keymanapp/chore/wasm-on-linux
chore(core): emcc off path for linux
2022-08-29 20:53:15 -05:00
Marc Durdin
db11553c9a refactor(developer): each section compiler is a pure function
Well, almost. There are still callback side-effects for messages. These
may in future be returned as an array as well, eliminating the need for
a message callback.

But restructures each section compiler so that it is self-contained and
responsible only for writing its own section. Also tightens up the types
for the sections constants.

Last, but not least, moves responsibility for writing the output .kmx
out of compiler.ts and into its callers -- removing one dependency from
the compiler. Reading input files still needs to be done in the
compiler, as there may be multiple input files with `<import>` that we
cannot know about until we start parsing xml.
2022-08-30 11:13:11 +10:00
Eberhard Beilharz
aa55fc2571
Merge pull request #7147 from keymanapp/fix/linux/jenkins.sh
fix(linux): Allow downgrades for installing build deps
2022-08-30 00:26:17 +02:00
Eberhard Beilharz
54a314df0e
Merge pull request #7145 from keymanapp/chore/linux/cherry-pick/changelog
chore(linux): Update debian changelog 🍒
2022-08-30 00:23:23 +02:00
Marc Durdin
c0147dc6ea refactor(developer): separate files for kmldmlc sections
@keymanapp-test-bot skip
2022-08-30 07:16:53 +10:00
Marc Durdin
9edabec297 chore(core): emcc off path for linux 2022-08-30 06:20:48 +10:00
Marc Durdin
8dc68edc6c
Merge pull request #7140 from keymanapp/feat/developer/unit-tests-for-kmldmlc
feat(developer): unit test framework for kmldmlc 🙀
2022-08-29 15:16:41 -05:00
Marc Durdin
6625969a60
Merge pull request #7137 from keymanapp/feat/core/hextobin
feat(core): hextobin tool 🙀
2022-08-29 15:16:11 -05:00
Marc Durdin
c85b1da333
Merge pull request #7129 from keymanapp/feat/core/use-ldml-keyboard-compiler-for-tests
feat(core): use kmldmlc to build test keyboards 🙀
2022-08-29 15:15:55 -05:00
Marc Durdin
5da8d2b920
Merge pull request #7138 from keymanapp/chore/labels
chore: update core/ label
2022-08-29 14:49:14 -05:00
Marc Durdin
5dc5b9325c
Merge pull request #7000 from keymanapp/chore/developer/keymanweb-compiler-remove-unused-dependencies
chore(developer): remove unused dependencies from KeymanWeb compiler 🛩
2022-08-29 14:48:46 -05:00
Marc Durdin
895ce930a0
Merge pull request #6993 from keymanapp/chore/core/rename-json-source
chore(core): rename json.hpp to jsonpp.hpp 🛩
2022-08-29 14:48:32 -05:00
Keyman Server
5878cc0554
Merge pull request #7148 from keymanapp/auto/version-master-16.0.54
auto: increment master version to 16.0.54
2022-08-30 04:02:41 +10:00
Keyman Build Agent
f2b672cf90 auto: increment master version to 16.0.54 2022-08-29 14:01:55 -04:00
Steven R. Loomis
a6bd34b61d
Merge pull request #7133 from keymanapp/feat/linux/7102-dockerfile
feat(linux): Dockerfile for linux builder
2022-08-29 12:21:36 -05:00
Eberhard Beilharz
fc3c991293
fix(linux): Allow downgrades for installing build deps
When install the keyman-build-deps_*.deb file it can happen that
we end up with a lower version number than what we previously
built. This change allows downgrades so that the build dependencies
can be installed.
2022-08-29 19:06:33 +02:00
Eberhard Beilharz
72b9fa3d21
chore(linux): Update debian changelog
(cherry picked from commit f2b1277166)
2022-08-29 15:14:33 +02:00
Marc Durdin
a72146e42d feat(developer): unit test framework for kmldmlc 2022-08-29 17:21:05 +10:00
Marc Durdin
07e4f20259 chore(common): chmod +x again 2022-08-29 15:49:23 +10:00
Marc Durdin
66af0d3793 chore(common): cleanup package-lock.json 2022-08-29 15:16:55 +10:00
Marc Durdin
670229937a chore: move hextobin to common 2022-08-29 15:07:43 +10:00
Marc Durdin
18b6dee963 chore: update core/ label 2022-08-29 09:59:07 +10:00
Marc Durdin
10b875da57 chore(core): chmod build.sh 2022-08-29 07:47:49 +10:00
Marc Durdin
3d08348256 feat(core): hextobin tool
The hextobin tool is used to help us construct invalid .kmx files
without having to either hack these into the compiler, or write them
with a hex editor. It feels a little bit of overkill, but this makes it
easy to (a) work with our intended file structures, and (b) review any
changes to these invalid keyboard tests.

Note: I did do a cursory search for a hex2bin or hextobin that we could
easily use but did not find a good simple cross-platform tool that we
could consume (`xxd -r` would work but AFAICT constrains our format to a
dump which is much harder to work with and read -- I wanted to be able
to annotate with file structures.)

For an example, see ik_000_null_invalid.txt.

This means that building the invalid keyboards for tests requires node,
but that should be fine given we need node to build the valid keyboards
anyway.

I've put hextobin under core/tools but it could just as well live under
common/tools in the future, if we find it useful for other project unit
tests.
2022-08-29 06:21:16 +10:00
Marc Durdin
b31a8755c0
Merge pull request #7127 from keymanapp/feat/developer/ldml-compiler-xml-loader-and-compiler
feat(developer): LDML keyboard XML Loader and Compiler 🙀
2022-08-27 14:59:55 -05:00
Marc Durdin
85034291d0
Merge pull request #7120 from keymanapp/feat/developer/ldml-compiler-kmxplus-builder
feat(developer): Write kmxplus section 🙀
2022-08-27 14:59:44 -05:00
Marc Durdin
9945055c00 chore(core): move and re-enable invalid ldml keyboard tests 2022-08-28 05:10:21 +10:00
Marc Durdin
0057b7d95c chore(core): emcc off path for linux 2022-08-27 14:53:06 +10:00
Marc Durdin
0de4b9eb18 chore(common): add dev dependency for @types/node 2022-08-27 13:22:11 +10:00
Marc Durdin
496ea0641a
chore: add comment for BUILDER_SECT
Co-authored-by: Steven R. Loomis <srl295@gmail.com>
2022-08-27 09:03:29 +10:00
Marc Durdin
bc02ba984a chore(core): skip ldml keyboard tests if node not available 2022-08-27 08:47:34 +10:00
Steven R. Loomis
4816e590cf feat(linux): Dockerfile for linux builder
- add Dockerfile in linux/Dockerfile, referencing linux/debian/control
- add docs in docs/build/linux-ubuntu.md

Fixes: #7102
2022-08-26 17:08:56 -05:00
Marc Durdin
44d7d5ca88 chore(core): always build deps 2022-08-27 06:23:33 +10:00
Keyman Server
4ef75556d4
Merge pull request #7131 from keymanapp/auto/version-master-16.0.53
auto: increment master version to 16.0.53
2022-08-27 04:02:16 +10:00
Keyman Build Agent
e304f054db auto: increment master version to 16.0.53 2022-08-26 14:01:39 -04:00
Eberhard Beilharz
9a35b301cb
Merge pull request #7123 from keymanapp/fix/linux/backspace
fix(linux): Remove wrong `ok_for_single_backspace` method
2022-08-26 15:45:16 +02:00
Marc Durdin
3ff5c4c46e chore(core): fix typo 2022-08-26 15:58:25 +10:00
Marc Durdin
a3b1a96960 chore(core): disable failing tests for now 2022-08-26 15:48:19 +10:00
Marc Durdin
4820f99503 chore(core): also build keyman-version as a prereq 2022-08-26 15:41:44 +10:00
Marc Durdin
b50d03b7d6 chore(developer): chmod build.sh 2022-08-26 15:26:36 +10:00
Marc Durdin
daf6a7970e feat(core): use kmldmlc to build test keyboards
Removes .kmx from repo and builds them from the source .xml files using
kmldmlc (building that if necessary also with a poor fella's dependency
check for now), and generally a lot of cleanup of the meson.build files
for the ldml tests.

Moves keyboards to a subfolder of the ldml unit test folder to keep them
neat and tidy and avoid embedding huge files into ldml.js for test of
WASM.

Note: 000_null_keyboard and 002_null_invalid do build successfully, but
the core ldml keyboardprocessor currently fails on them, because they
are missing keys and vkey sections.
2022-08-26 15:12:38 +10:00
Darcy Wong
dad52102d1
Merge pull request #7119 from keymanapp/fix/android/landscape-max-height
fix(android/engine): Lower the max height for landscape orientation
2022-08-26 08:24:09 +07:00
Marc Durdin
dc172cb981 chore(developer): robustness in ldml keyboard compiler 2022-08-26 09:06:12 +10:00
Marc Durdin
3c120ebae7 feat(developer): LDML keyboard XML Loader and Compiler
Implements basic LDML keyboard xml loader and compiler.
2022-08-26 08:51:15 +10:00
Marc Durdin
3865870114 chore(developer): add padding to loca and vkey 2022-08-26 05:23:11 +10:00