Commit graph

1056 commits

Author SHA1 Message Date
Marc Durdin
1609a4de92
Merge pull request #6309 from keymanapp/fix/developer/6144-code-to-id
fix(developer): rename Code to ID in Touch Layout Editor ✂
2022-03-02 11:25:27 +11:00
Marc Durdin
16592da996 fix(developer): rename Code to ID in Touch Layout Editor 2022-03-02 06:34:57 +11:00
Marc Durdin
482b6122a1 fix(developer): move ngrok to Server/bin/
Fixes #6303.

Moves ngrok.exe to %appdata%/Keyman/Keyman Developer/Server/bin/
2022-02-28 20:48:36 +11:00
Marc Durdin
ee14b17b12
Merge pull request #6145 from keymanapp/fix/developer/5992-package-fileversion-from-keyboard-fileversion
fix(developer): compile package fileVersion from keyboard FileVersion
2022-02-13 10:48:25 +11:00
Marc Durdin
74295681e6 fix(developer): support KM_KBP_IT_CAPSLOCK
Keyman Developer Debugger would crash due to receiving an unknown action
type. This turned out to be the new KM_KBP_IT_CAPSLOCK.

Crash report: https://sentry.io/share/issue/50c09af4a0ab424784d9d2189b492bd5/
2022-02-10 10:44:50 +11:00
Marc Durdin
389f89d233
Merge branch 'master' into fix/developer/remove-engine-msm 2022-01-31 06:43:02 +11:00
Marc Durdin
cfe778e940 fix(developer): uninstall actions would never run
The uninstall actions never ran because the working directory given was
invalid. Also fixed: the success/failure message is presented by the
caller rather than down in the depths of the call.
2022-01-31 06:40:49 +11:00
Marc Durdin
b428a8ab97 chore(developer): Merge branch 'master' into feat/developer/node-based-debugger-server 2022-01-28 16:07:19 +11:00
Marc Durdin
64fbded896 chore: address review comments 2022-01-28 15:48:10 +11:00
Marc Durdin
a8a0c9e1dc fix(developer): remove kmcomapi references 2022-01-27 08:16:57 +11:00
Marc Durdin
7a7a33216e
Merge pull request #6141 from keymanapp/fix/developer/handle-core-failure-to-load
fix(developer): handle Core failure to load
2022-01-27 06:40:59 +11:00
Marc Durdin
af6f01f25d fix(developer): prevent crash on build dblclicked file
Fixes #6149.
2022-01-24 16:35:49 +11:00
Marc Durdin
f1f4d7bd80 fix(developer): compile package fileVersion from keyboard FileVersion
Relates to #5992 (part 1 of 2 - part 2 updates the kmn min version in
the compiler).

Updates package fileVersion property to be minimum keyboard version, to
avoid issues with app crashing if functionality is not supported.

As far as I can tell, only Keyman for Windows currently checks the
package fileVersion.

This could be quite nasty, except that the online keyboard repository
build process also extracts the min Keyman version from the keyboard
.kmx and .js, and records it in the .keyboard_info, preventing older
versions of Keyman from seeing unsupported keyboards in the cloud
repository.

Thus, the only gap is for peer distributed keyboards. So we should fix
this gap but it is less urgent than it might otherwise be.
2022-01-24 10:35:32 +11:00
Marc Durdin
4343834e42 chore(developer): remove mergeref for keymanengine 2022-01-24 08:50:48 +11:00
Marc Durdin
59c64c9ad0 fix(developer): remove keymanengine.msm
As of Keyman Developer 15, we no longer need to install
keymanengine.msm, so it should be able to co-exist with any version of
Keyman for Windows. Remove the .msm to make this so!
2022-01-24 07:32:47 +11:00
Marc Durdin
82a8bd3242 fix(developer): handle Core failure to load
If Core fails to load when starting the debugger, avoid a crash and
report details of the error back to the user.
2022-01-24 07:17:52 +11:00
Marc Durdin
59c1216a85 chore(developer): ensure tests run when building Server 2022-01-24 07:17:01 +11:00
Marc Durdin
9c5b126956 chore(developer): Merge branch 'master' into feat/developer/node-based-debugger-server 2022-01-21 14:45:30 +11:00
Marc Durdin
4dd5904bca fix(developer): refresh web host on compile 2022-01-19 11:00:44 +11:00
Marc Durdin
a3d5a4f9be
Merge pull request #5988 from keymanapp/feat/developer/3620-developer-ide-support
feat(developer): support for Caps Lock layer 🕊
2022-01-17 12:13:53 +11:00
Marc Durdin
0c0bb420b5
Merge pull request #5963 from keymanapp/feat/web/3621-newcontext-group
feat(web): Start of Sentence support - part 1 🕊
2022-01-17 12:04:29 +11:00
rc-swag
4f24d97b85
Merge pull request #6057 from keymanapp/fix/windows/imsample-keyboard
fix(windows): add x64 build fix invalid memory access
2022-01-12 09:00:26 +10:00
Marc Durdin
7b904969cb chore(developer): update icon and fix link 2021-12-23 07:25:07 +11:00
Marc Durdin
bfcdb5ac57 feat(developer): last-use and expire old resources 2021-12-22 14:48:24 +11:00
Marc Durdin
64b4a25cc5 chore(developer): rename WebHost to Server 2021-12-22 09:15:53 +11:00
Marc Durdin
cfbcc36e27 chore: more cleanup and polish 2021-12-22 08:39:15 +11:00
Marc Durdin
2a38c69faa chore(developer): minor web server refactors and cleanup 2021-12-22 07:01:57 +11:00
Marc Durdin
2c01b19f69 chore: cleanup
1. Renamed form UfrmNGrokOptions to UfrmServerOptions
2. Renamed kmdev-server to just plain server
3. Tidied up npm versioning to use VERSION_WITH_TAG

This last point should help avoid confusion as now only CI release
builds will ever generate a package.json with a.b.c, a.b.c-alpha or
a.b.c-beta. Local and test builds will always have the corresponding
-test or -local environment appended. This also helps avoid issues if
we accidentally publish an incorrect version.
2021-12-22 06:25:22 +11:00
Marc Durdin
87f0d80f7b chore: fix bundle.sh call 2021-12-22 05:44:17 +11:00
Marc Durdin
5fccc1161d chore(developer): refactor model compiler bundling into bash script
This made the string processing needed much simpler than
when it was embedded within the Makefile, where horrible
escaping proved necessary.
2021-12-22 04:47:05 +11:00
Marc Durdin
23a29e25b3 fix(developer): tweak script for npm fix 2021-12-21 19:00:21 +11:00
Marc Durdin
a5575e0d8e fix(developer): work around devDependencies bug in npm
Relates to https://github.com/npm/cli/issues/2921

This issue arises after moving from npm 6.x to 7.x or later. As the
build agents are still on 6.x, we have not yet seen this issue there.

As part of the release build for Keyman Developer, we bundle up some
files and do some work in a temp folder to prepare folders for release.
Even though we are only working with `dependencies` (e.g. using `npm
install --production`), packages under `devDependencies` are still
wrongly being checked by NPM. As we have two modules present in
`devDependencies` that are only available when in the repo path, we need
to remove them before attempting to continue. Yuck!

ref: https://github.com/npm/cli/issues/3975#issuecomment-985305678
ref: https://github.com/npm/cli/issues/2921
2021-12-21 17:10:16 +11:00
Marc Durdin
f67a5ed9c6 chore(developer): fixup release build 2021-12-21 17:09:04 +11:00
Marc Durdin
51dc6e45c7 chore(developer): cleanup build and remove old ngrok code 2021-12-21 12:08:42 +11:00
Marc Durdin
44b0335fed feat(developer): Keyman Developer Server
Initial commit for Keyman Developer Server, running on Node.

Supports web debugger only at this point.

Extensive rewrite of web debugger, much of it more modern standards,
significantly improved UX:

1. Drop keyboards, packages, fonts, models onto debug page to load them
2. Websocket for instant reload of recompiled keyboards, packages,
   models.
3. API for interacting with debug server.
4. Cache of recently used items.
5. Integration with ngrok for public access as desired.
6. Tray icon (currently default icon) for control of server.
7. Server can live after TIKE closes, supports multiple TIKE instances.
8. UI of debug host page rewritten with Bootstrap.
9. Packages downloads integrated into main page, and download link for
   Keyman supports all platforms (Linux is just a link to
   instructions...)
10. Avoids file locking and contention by managing all files internally.
11. Not yet tested, but should run cross-platform.
2021-12-21 09:06:16 +11:00
rc-swag
48f179d14c
fix(windows): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-12-20 10:03:45 +10:00
Marc Durdin
e569f0aba4 chore(developer): Merge branch 'master' into feat/developer/node-based-debugger-server 2021-12-20 10:41:17 +11:00
Ross
1ba0fc2eba fix(windows): fix scaling to protect divide by zero 2021-12-17 15:18:57 +10:00
Marc Durdin
d24d1798c2
Merge pull request #6061 from keymanapp/fix/developer/project-mru-path
fix(developer): project_mru.xml path
2021-12-17 15:18:42 +11:00
Marc Durdin
a08bc04ec2
Merge pull request #6036 from keymanapp/feat/developer/cache-web-debug-objects
feat(developer): cache web debug objects across sessions 🛒
2021-12-17 15:16:52 +11:00
Marc Durdin
1513398666
Merge pull request #6035 from keymanapp/feat/developer/live-reload-kmw
feat(developer): live reload of web debugger 🛒
2021-12-17 15:16:39 +11:00
Marc Durdin
b5e7e87719
Merge pull request #6034 from keymanapp/feat/developer/tidy-up-package-list-in-kmw-test
feat(developer): tidy up package list in web test view 🛒
2021-12-17 15:14:40 +11:00
Marc Durdin
7d9fc8c308
Merge pull request #6033 from keymanapp/feat/developer/remember-kmw-prefs-on-reload
feat(developer): remember test page preferences on reload 🛒
2021-12-17 15:14:32 +11:00
Marc Durdin
f6624f1cd0 fix(developer): project_mru.xml path 2021-12-17 12:43:32 +11:00
Marc Durdin
0a29123f31 feat(developer): ngrok configuration
Adds ngrok configuration dialog and processes for downloading, updating
and setting up ngrok.

It is likely this will change with a refactor of the web debugger into a
standalone node module in the future. This will add support for multi-
instance Keyman Developer and be another step towards a cross-platform
IDE.
2021-12-17 12:17:46 +11:00
Ross
c167d8bdda fix(windows): add x64 build fix invalid memory access
This commit adds x64 build for the imsample.dll.
It also fixes the a invalid memory access error that
occured when UnloadRules was called when a Keyboard
had been created but the rules not yet loadeded.

KeymanIMReloadConfig function returned a invalid
code excution point this was fixed by addeding it
to the imsample.def
2021-12-16 10:52:20 +10:00
Marc Durdin
06c5464b1a feat(developer): web debugger ngrok integration
Initial integration of ngrok into Keyman Developer web debugger
experience, so that the user can access their web debug session from
another device without significant configuration. By default, ngrok is
switched off, but when it is enabled and configured (user must register
an email address online I think), then Keyman Developer will start an
ngrok tunnel in the background and make it the default link in the list
of available addresses.

This also adds an option to hide the list of local addresses, which is
probably clearer for users when ngrok is active. However, as local
addresses will be faster if configured, it may be less sensible to do
this.

If the user has ngrok installed and in use already, then it is
recommended that they simply open a tunnel via the ngrok interface for
the debugger web host, rather than relying on Keyman Developer's
internal integration, as Keyman Deveoper does not do handle multiple
ngrok sessions.

The user may choose to make the ngrok tunnel window visible, which will
be helpful in error scenarios.

If Keyman Developer crashes, the ngrok tunnel may be left running, and
will need to be manually killed.
2021-12-15 19:06:03 +11:00
Marc Durdin
dcff86c2eb fix(developer): use correct cache key 2021-12-13 05:43:33 +01:00
Marc Durdin
32337e0087
Merge pull request #6030 from keymanapp/chore/windows/build-without-delphi
chore(windows): build without delphi ✈
2021-12-11 14:39:47 +11:00
Marc Durdin
ba8c6a165a
Merge pull request #6022 from keymanapp/chore/windows/no-more-mkver
chore(windows): replace mkver with mkver.sh ✈
2021-12-11 14:38:02 +11:00