Commit graph

5162 commits

Author SHA1 Message Date
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
Joshua A. Horton
f23b6e10de chore(web): more reversion of early gestureModel spec shifts 2023-09-20 10:39:27 +07:00
Joshua A. Horton
56a9f0ad94 fix(web): empty arrays are not falsy 2023-09-20 10:37:35 +07:00
Joshua A. Horton
4b2ae47a7a chore(web): revert early gesture-model tweaks 2023-09-20 10:31:38 +07:00
Joshua A. Horton
8b4e291c7b chore(web): minor cleanup 2023-09-20 10:28:34 +07:00
Joshua A. Horton
5212dcaef7 chore(web): minor cleanup + removal of queuedPromisePrioritizer 2023-09-20 10:01:50 +07:00
Joshua A. Horton
4fbe7286d8 fix(web): misc fixes and auto-test fixes 2023-09-20 09:58:29 +07:00
Steven R. Loomis
8be00cb482 chore(resources): code changes for keyboard to keyboard3 🙀 2023-09-18 19:00:32 -05:00
Marc Durdin
7f3d7ce17d chore: fixup targets for build_index 2023-09-16 15:46:37 +07:00
Marc Durdin
f140b5e18d chore: convert keyboards build.sh to builder script 2023-09-16 15:41:07 +07:00
Marc Durdin
454448bc63 chore: use kmc instead of kmcomp to build test keyboards 2023-09-16 15:24:46 +07:00
Marc Durdin
c4a84fc9e9
Merge pull request #9566 from keymanapp/chore/merge-master-into-feature-gestures
chore: merge master into feature-gestures 🐵
2023-09-15 17:06:20 +02: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
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
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
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
Joshua A. Horton
be196744fd feat(web): adds numerous GestureSource unit tests 2023-08-30 10:19:31 +07:00
Joshua A. Horton
3aee911ea7 fix(web): patches up existing unit-tests 2023-08-30 10:18:26 +07:00
Joshua A. Horton
504eb53565 feat(web): adds support for pushed alt-configurations during gesture-source lifetime 2023-08-30 10:14:29 +07:00
Joshua A. Horton
6bf0cebcd6 fix(web): fixes unit tests post-abstraction 2023-08-30 10:14:06 +07:00
Joshua A. Horton
b9e9179863 refactor(web): abstracts the matcher-selector / gestureMatcher interface 2023-08-30 10:11:38 +07: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
Joshua A. Horton
d488f22fd9 feat(web): browser-KMW support for default subkeys 2023-08-21 10:42:06 +07:00
Steven R. Loomis
b6855e121f feat(core): ldml: support <display id=...> in the 'disp' section 🙀
- "recent" addition to CLDR DTD

Fixes: #8717
2023-08-18 17:02:35 -05:00
Steven R. Loomis
e20123cbf8 fix(common): don't crash on illegal unicodesets 🙀
- UnicodeSetItem was ignoring the error value from sizeUnicodeSet() and calling parseUnicodeSet with an invalid size
- it *is* an error, but should be handled properly.
- an error is already recorded in the callback

The symptom was an internal error where there should have been an error callback.

  2) vars
       should fail to compile: sections/vars/fail-uset-props1.xml:
     Error: Internal Error: uset returned error -1 for [:Adlm:]
      at new UnicodeSetItem
      at VarsCompiler.addUnicodeSet

For: #7377
2023-08-18 17:02:35 -05:00
Steven R. Loomis
0ea1211b72 fix(common): marker test 🙀
- common test lacked update from #9448

#9119
2023-08-17 14:48:50 -05:00
Marc Durdin
3af9f6d610 chore(developer): fixup license vs graphic file error 2023-08-17 11:22:28 +07:00
Marc Durdin
e751a250a4 chore(common): fixup test for SkipMetadataFiles 2023-08-17 11:18:30 +07:00
Marc Durdin
a7f8123e56 feat(developer): support building .keyboard_info without source version
Relates to #9351.

Adds support for building a .keyboard_info file without having source
.keyboard_info file:

* Constructs a default source .keyboard_info in memory
* Hints if license is missing
* If LICENSE.md is present, verifies it matches the MIT license text
* Adds project option to turn on or off metadata generation. This will
  default to False for version 1.0 projects, and to True for version 2.0
  projects. This means that the keyboard repository will need a PR to
  enable metadata generation for existing projects in the repository,
  but this is important to avoid breaking builds for existing projects
  that are not in the repository.
* Turns on additional c8 coverage for kmc projects
2023-08-16 12:47:37 +07:00
Marc Durdin
395b76df05 chore(developer): cleanup keyboard_info schema
* Removes font size
* Restricts font source to array
* Removes example
* Add examples
* Loosen structure of KeyboardExample
2023-08-16 09:26:39 +07:00
Marc Durdin
158bc28e85 feat(developer): add LicenseFile as property of package
Adds license file to .kps, kmp.json, kmc-package, package editor, and
new project templates. The intent is for LICENSE.md to be the file used,
and for any keyboards on keymanapp/keyboards, it should always be a
standard MIT license.
2023-08-16 09:13:38 +07:00
Marc Durdin
1cce7ed8e8 chore(developer): remove fonts sidetrack 2023-08-16 05:42:45 +07:00
Marc Durdin
fea10f0eeb feat(developer): add web font references to package
While a package supports a .ttf or .otf font for the OSK and Display
fonts for use within the Keyman apps, on websites it also supports .woff
and .woff2. This change makes it possible to specify a set of fonts for
a package which will be provided through api.keyman.com to websites.

This means that .woff and .woff2 fonts may also be included in the
package and may not be used on target devices at this time, it further
opens the pathway to deploying .kmp packages to web in the future.

The deployment stage of keymanapp/keyboards will require a new phase to
copy web fonts from packages to s.keyman.com.
2023-08-15 15:13:24 +07:00
Marc Durdin
8a9243eba5 chore(developer): tweak Relationship values 2023-08-14 14:31:17 +07:00
Marc Durdin
38c3415eed feat(developer): add relatedPackages metadata
Adds relatedPackages support to:
* .kps schema
* .kps file format for Typescript
* kmp.json file format for Typescript
* kmc-package compiler
* Package Editor
2023-08-14 14:18:01 +07:00
Marc Durdin
d838df1c00 feat(developer): add editor of Package Description and Examples 2023-08-14 12:12:08 +07:00
Marc Durdin
4d71048daf chore(developer): fix casing 2023-08-14 10:06:17 +07:00
Marc Durdin
675f6bc91e feat(developer): description, font and example metadata in packages
Adds info.description, options.fonts, keyboard.examples metadata to
.kps and kmp.json files, updates schemas, and Typescript compiler.
2023-08-14 09:23:20 +07:00
Joshua A. Horton
a0acb0879f feat(web): auto-test for selection of simple tap (diff key) over multitap 2023-08-11 16:10:06 +07:00
Joshua A. Horton
f11ae5c570 feat(web): multitap selection test 2023-08-11 16:10:05 +07:00
Joshua A. Horton
1c18334817 feat(web): gesture-selection auto-test for subkey menu pattern 2023-08-11 16:10:05 +07:00
Joshua A. Horton
978965fd5e feat(web): further gesture-selection work - single source / first stage now vetted 2023-08-11 16:10:04 +07:00
Joshua A. Horton
d03cd7f155 feat(web): the bulk of gesture-staging implementation 2023-08-11 16:10:03 +07:00
Joshua A. Horton
80e96210ce refactor(web): multi-source mocked simulation 2023-08-11 12:54:21 +07:00