Commit graph

21487 commits

Author SHA1 Message Date
Marc Durdin
ccfefa279f chore: make const for date format 2023-09-12 09:26:03 +01:00
Marc Durdin
e9e7d5b85f chore(developer): optional lastCommitDate 2023-08-17 13:32:40 +07:00
Marc Durdin
6624b8b344 feat(developer): use git's last commit date for keyboard_info 2023-08-17 13:25:29 +07:00
Marc Durdin
b87667ac76 chore(developer): cleanup kmc-keyboard-info interface
Moves responsibility for loading .kps into kmc-keyboard-info, away from
the caller, and removes other fields with kmc-keyboard-info can
calculate by itself.

Have not moved project parsing into kmc-keyboard-info, because that's a
bigger job, as currently that is mostly happening within kmc itself. A
project for a future version I think.
2023-08-17 11:12:15 +07:00
Marc Durdin
0e382ba642 chore(developer): fixup call to KeyboardInfoCompiler 2023-08-17 10:26:01 +07:00
Marc Durdin
72efe0cd5c feat(developer): markdown conversion for description in package editor 2023-08-17 10:17:52 +07:00
Marc Durdin
47e05a7b05 feat(developer): build .keyboard_info without source .keyboard_info
Also fixes a file reference issue in kmpJson.options, where paths were
stripped too early in the process.

Removes a now-irrelevant unit test for keyboard_info.

TODO: markdown to html during the keyboard_info build.
2023-08-16 16:01:14 +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
0305cd0c58
Merge branch 'feat/developer/extra-package-metadata' into feat/developer/package-keyboard-web-fonts 2023-08-15 18:35:01 +10:00
Marc Durdin
826a1e2da0
Merge branch 'feat/developer/keyboard-info-dedup' into feat/developer/extra-package-metadata 2023-08-15 18:34:54 +10:00
Marc Durdin
194fd1a8bf chore: update unit test - will be removed later 2023-08-15 15:34:38 +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
bf1d5b0f7a chore(developer): fix casing 2023-08-14 10:06:32 +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
Marc Durdin
25717d1d1c chore: fix unit test 2023-08-11 14:06:22 +07:00
Marc Durdin
aa9788ad46 chore(common): remove deprecated fields from keyboard_info
Removes the following fields:
* legacyId
* documentationFilename
* documentationFileSize
* links
* related[].note

None of these fields are needed any longer; see #9351 for steps to
remove data.

Eliminates difference between keyboard_info source and distribution,
renaming to keyboard_info.schema.json, and updating the required members
of the json accordingly.

Will have corresponding commits in keyman.com, api.keyman.com,
help.keyman.com, and keyboards repositories.
2023-08-11 10:34:38 +07:00
Steven R. Loomis
06f2c6432d
Merge pull request #9405 from keymanapp/feat/core/9119-marker-core-epic-ldml 2023-08-10 19:06:05 -05:00
Steven R. Loomis
2bf22c440d feat(core): marker fixes per review comments 🙀
- simplify and improve context processing

For: #9119

Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2023-08-10 13:30:29 -05:00
Steven R. Loomis
66ee68d2b3
Apply suggestions from code review
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2023-08-10 09:36:16 -05:00
Keyman Server
c6c2581481
Merge pull request #9447 from keymanapp/auto/version-master-17.0.159
auto: increment master version to 17.0.159
2023-08-10 01:06:42 +07:00
Keyman Build Agent
442900a52b auto: increment master version to 17.0.159 2023-08-09 14:06:08 -04:00
Steven R. Loomis
c23303ee23
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-08-09 12:52:28 -05:00
Steven R. Loomis
f0c81687f6 feat(core): marker fixes per review comments 🙀
- move prepend_marker() to inline
- clear the string in context_to_string()

For: #9119
2023-08-09 12:51:35 -05:00
Steven R. Loomis
f21bd8212d
Merge branch 'master' into feat/core/9119-marker-core-epic-ldml 2023-08-09 11:03:53 -05:00
Marc Durdin
add9a43f9e
Merge pull request #9441 from keymanapp/chore/developer/report-fatal-compiler-errors-to-sentry
chore(developer): improve kmc sentry reporting on fatal build errors
2023-08-09 18:35:53 +10:00
Marc Durdin
0692b8200a chore: address review comments 2023-08-09 15:35:33 +07:00
Marc Durdin
22f7bdc011
Merge pull request #9432 from keymanapp/feat/developer/9430-default-long-press
feat(developer): add 'default' property for longpress keys
2023-08-09 18:32:32 +10:00
Marc Durdin
087c68f4ca
chore: Apply suggestions from code review 2023-08-09 18:32:20 +10:00
Marc Durdin
9e45159e9e
Merge pull request #9431 from keymanapp/chore/stats-script-reverb
chore: stats script parameters
2023-08-09 18:28:51 +10:00
Marc Durdin
efe3c707d8
chore: Apply suggestions from code review 2023-08-09 18:28:41 +10:00
rc-swag
7e8e7be86f
Merge pull request #9353 from keymanapp/feat/windows/5822/notify-core-on-kbd-activation
feat(windows): Use Keyboard Activated event API call to turn off caps lock (if required) 🚏
2023-08-09 14:12:00 +10:00
rc-swag
e79cfc90d2
feat(windows): review comment
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-08-09 12:59:59 +10:00
Marc Durdin
fa19eea873 chore(developer): improve kmc sentry reporting on fatal build errors
kmc already reported unhandled exceptions, but any handled fatal errors
were captured and only reported to the user. It is better to report
these to Sentry as these are still unexpected.

I have refactored all the fatal exception messages in various kmc
modules to use a common mechanism, keeping all the Sentry integration in
kmc, now passing exception data up in the `CompilerEvent.exceptionVar`
property.

* I took the opportunity to rename messages.ts to
  infrastructureMessages.ts

* @types/chai was missing which gave intellisense errors in vscode

* normal exit of kmc now provides an opportunity for error reports to
  Sentry to be finalized

* Added a unit test for fatal errors in kmc

* Added a manual test pathway with `SENTRY_CLIENT_TEST_BUILD_EXCEPTION`
  env var to trip the build fatal error mechanism and verify that it
  looks ok; the following shows test runs demonstrate how fatal build
  errors are reported:

```
mcdurdin@THARK MINGW64 /c/Projects/keyman/app/developer/src/kmc (chore/developer/report-fatal-compiler-errors-to-sentry)
$ SENTRY_CLIENT_TEST_BUILD_EXCEPTION=1 node . --error-reporting build
fatal KM05001: Unexpected exception: Error: Test exception from SENTRY_CLIENT_TEST_BUILD_EXCEPTION

Call stack:
Error: Test exception from SENTRY_CLIENT_TEST_BUILD_EXCEPTION
    at build (file:///C:/Projects/keyman/app/developer/src/kmc/build/src/commands/build.js:78:19)
    at Command.<anonymous> (file:///C:/Projects/keyman/app/developer/src/kmc/build/src/commands/build.js:66:24)
    at Command.listener [as _actionHandler] (C:\Projects\keyman\app\node_modules\commander\lib\command.js:482:17)
    at C:\Projects\keyman\app\node_modules\commander\lib\command.js:1283:65
    at Command._chainOrCall (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1177:12)
    at Command._parseCommand (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1283:27)
    at C:\Projects\keyman\app\node_modules\commander\lib\command.js:1081:27
    at Command._chainOrCall (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1177:12)
    at Command._dispatchSubcommand (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1077:23)
    at Command._parseCommand (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1248:19)

    This error has been automatically reported to the Keyman team.
      Identifier:  6f0fca1a26694c22b03f02b2463d39c5
      Application: Keyman Developer
      Reported at: https://sentry.io/organizations/keyman/projects/keyman-developer/events/6f0fca1a26694c22b03f02b2463d39c5/

mcdurdin@THARK MINGW64 /c/Projects/keyman/app/developer/src/kmc (chore/developer/report-fatal-compiler-errors-to-sentry)
$ SENTRY_CLIENT_TEST_BUILD_EXCEPTION=1 node . --no-error-reporting build
fatal KM05001: Unexpected exception: Error: Test exception from SENTRY_CLIENT_TEST_BUILD_EXCEPTION

Call stack:
Error: Test exception from SENTRY_CLIENT_TEST_BUILD_EXCEPTION
    at build (file:///C:/Projects/keyman/app/developer/src/kmc/build/src/commands/build.js:78:19)
    at Command.<anonymous> (file:///C:/Projects/keyman/app/developer/src/kmc/build/src/commands/build.js:66:24)
    at Command.listener [as _actionHandler] (C:\Projects\keyman\app\node_modules\commander\lib\command.js:482:17)
    at C:\Projects\keyman\app\node_modules\commander\lib\command.js:1283:65
    at Command._chainOrCall (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1177:12)
    at Command._parseCommand (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1283:27)
    at C:\Projects\keyman\app\node_modules\commander\lib\command.js:1081:27
    at Command._chainOrCall (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1177:12)
    at Command._dispatchSubcommand (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1077:23)
    at Command._parseCommand (C:\Projects\keyman\app\node_modules\commander\lib\command.js:1248:19)
```
2023-08-09 09:34:44 +07:00
Steven R. Loomis
f1c74529d9
Merge branch 'master' into feat/core/9119-marker-core-epic-ldml 2023-08-08 18:43:52 -05:00
Marc Durdin
0d957937ed
Merge pull request #9435 from keymanapp/chore/linux/launchpad
chore(linux): Disable Mantic builds on Launchpad
2023-08-09 08:40:07 +10:00
Keyman Server
f7ab7dba43
Merge pull request #9437 from keymanapp/auto/version-master-17.0.158
auto: increment master version to 17.0.158
2023-08-09 01:02:51 +07:00
Keyman Build Agent
dadf174273 auto: increment master version to 17.0.158 2023-08-08 14:02:18 -04:00
Eberhard Beilharz
ab7a1a952a chore(linux): Disable Mantic builds on Launchpad
Mantic builds currently fail because there's a newer ibus version in
the official Ubuntu repos that overrides our patched ibus version.
Ubuntu is trying to get ibus 1.5.29-beta to work so there are often
new packages. We wait until that stabilized before we're providing a
new patched ibus version at which point we can enable building for
Ubuntu 23.10 Mantic.

Closes #9428.
2023-08-08 14:02:48 +02:00
Eberhard Beilharz
93731dba8d
Merge pull request #9413 from keymanapp/fix/linux/smallfixes
fix(linux): fix memory leaks and method name
2023-08-08 13:51:25 +02:00
Marc Durdin
c02f5ab419 feat(developer): add 'default' property for longpress keys
Fixes #9430.

Adds a 'default' property to subkeys, only used by longpress-type
subkeys:

* Added property to schema and readers/writers
* Added property to touch layout validator
* Added editor for property to layout builder
2023-08-08 14:20:52 +07:00
Marc Durdin
d4c7486662 chore: stats script parameters 2023-08-08 13:07:16 +07:00
Steven R. Loomis
93b1771570
Merge branch 'master' into feat/core/9119-marker-core-epic-ldml 2023-08-07 16:40:07 -05:00
Keyman Server
574e8505fd
Merge pull request #9429 from keymanapp/auto/version-master-17.0.157
auto: increment master version to 17.0.157
2023-08-08 01:10:08 +07:00
Keyman Build Agent
030e17580a auto: increment master version to 17.0.157 2023-08-07 14:09:30 -04:00