Commit graph

45 commits

Author SHA1 Message Date
Marc Durdin
7d8e3978a1 fix(developer): ngrok upgrade
The existing ngrok package is no longer maintained, so this commit
switches to @ngrok/ngrok. However, this means a number of deployment
changes, as the new module uses a node binary module rather than a
standalone executable, and the path to the module is assumed to be on
the Node search path.

The new module also requires VC++ redistributable, so installation of
that has been added to the Server Options dialog.

Use of ngrok with Keyman Developer Server should be in theory possible
with non-Windows platforms with this change, if the user installs the
appropriate @ngrok binary package (e.g. @ngrok/ngrok-darwin-universal)
globally before starting the server.

Fixes: #15625
Build-bot: skip release:developer
2026-02-26 10:07:06 +01:00
Marc Durdin
756a0e2b58 fix(developer): avoid race in page.onload vs kmw.init in Server
Also adds `server:run` action for build.sh, and adds check for scenario
where an ad blocker/privacy extension blocks sentry javascript loading.

Fixes: #11363
Fixes: KEYMAN-DEVELOPER-30X
2025-11-03 09:52:33 +01:00
Marc Durdin
2726050601 maint(common): rename and move node-related script functions into node.inc.sh
Consolidates the node-related script functions into node.inc.sh, as part
of cleaning up the build scripts and making them easier to maintain into
the future.

Fixes: #14447
2025-08-02 13:34:29 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Marc Durdin
65158a0526 maint(common): rename shellHelperFunctions.sh to utils.inc.sh
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.

Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
2025-08-02 06:58:40 +10:00
Marc Durdin
2a48f54b70 fix(developer): remove ngrok binary at build time
While ngrok.exe was already removed, ngrok (mac? linux?) was still
present in node_modules.

Fixes: #13846
2025-05-07 10:55:29 +08:00
Marc Durdin
357d196181 chore(developer): use JQ variable in script 2025-01-20 14:11:42 +07:00
Marc Durdin
f407d9823d fix(developer): include developer-utils deps in server build
Fixes: #12950
2025-01-20 13:06:01 +07:00
Marc Durdin
c1d3fea8ea chore(developer): add eventemitter3 copy to Server build 2024-08-12 20:17:51 +08:00
Marc Durdin
062ae33579 refactor(developer): add eventemitter3 and ldml-keyboard-constants deps to Server
Fixes: #12077
2024-08-12 17:23:48 +07:00
Marc Durdin
f4659e6233 chore(developer): add @keymanapp/common-types to Server publish action 2024-08-12 09:57:17 +07:00
Marc Durdin
49a41c1ab1 chore(developer): build addins before server 2024-08-12 06:08:55 +07:00
Marc Durdin
7260ca23c2 chore(developer): copy only specific addon files during server build 2024-08-12 06:08:54 +07:00
Marc Durdin
f9b386e157 chore(developer): only copy specific files for server addons 2024-08-12 06:08:53 +07:00
Joshua A. Horton
2340048a27 fix(developer): run compiled version of dev-server's unit test 2024-06-10 14:39:08 +07:00
Marc Durdin
fa57d5c674 chore(developer): final work on build.sh for developer
Now builds from a clean repo:

  developer/src/build.sh configure build test publish

* Splits kmbrowserhost into kmdbrowserhost for Developer; this means
  that Developer Browser Host now inherits the Developer settings rather
  than the Keyman for Windows settings, and simplifies distribution and
  management. The only difference between the two is in the startup code
  so this seems like a good split.

* Cleanup of various build scripts and dependencies.
2024-05-20 06:34:53 +07:00
Marc Durdin
41df6d1cd7 chore(developer): refactor remaining build scripts
This finishes the changes for all build infrastructure for Keyman
Developer to use build.sh.
2024-05-20 06:34:50 +07:00
Marc Durdin
86c62ff36c chore(developer): transition remaining projects to build.sh
Relates to #11317.

All projects now have a build.sh. Still need to work on inst/, remove
old Makefiles, and update CI.
2024-05-20 06:33:51 +07:00
Marc Durdin
cd8121ef65 chore(common): builder scripts now use /resources/build/builder.inc.sh
Note: there is a bit of potential confusion about the difference between
/resources/builder.inc.sh (the full implementation for builder scripts),
and /resources/build/builder.inc.sh (the source script that builder
scripts should always use).

This allows us to make assumptions that will always be true for builder
scripts that may not be true for other scripts, such as setting base
folder.
2024-05-02 15:54:31 +07:00
Marc Durdin
0f390d47cc chore(common): maintenance on build scripts - cd
Fixes #11324.

* Always `cd "$THIS_SCRIPT_PATH"`
* Remove unnecessary `cd` from all build.sh
* Remove unnecessary `set -eu` from all build.sh (and `# set -x`)
* Replace old build-utils.sh incantation in a few build.sh scripts
2024-05-02 15:54:29 +07:00
Marc Durdin
ea038c6db8 chore(developer): developer-utils embed 2023-11-06 10:46:48 +07:00
Marc Durdin
716cb526b7 fix(developer): Sentry in Server should honour reporting settings
Fixes #9939.

Uses refactored KeymanSentry.ts in developer-utils and updates the
loader in Server to run from that.

The changes to tray.ts and friends are required to deal with a top-level
await issue with the shutdown call.

The top-level await issue is described in detail at
https://marc.durdin.net/2023/11/dynamic-import-on-node-js-with-circular-dependencies-leads-to-interesting-failure-modes/

tl;dr: shutdown needed to do a proper Sentry shutdown. The shutdown code
was in index.ts. This led to a circular dependency and caused a silent
and abrupt exit code 13 in Node.js. Moved shutdown code into shutdown.ts
to resolve this.
2023-11-06 08:18:24 +07:00
Marc Durdin
a314ba46a6 fix(developer): server node addin paths 2023-10-05 14:42:33 +07:00
Marc Durdin
75a0977cdb chore(developer): fix server tests 2023-10-04 14:17:59 +07:00
Marc Durdin
e7ac526c69 chore(developer): fixup Makefile for server 2023-10-04 11:50:03 +07:00
Marc Durdin
8e23b11dfc chore(developer): convert Server to ES Modules
Fixes #9672.

Also rewrote build.sh as a builder script in order to simplify some of
the build changes.

Makes /web a dependency of Keyman Developer Server, which is a
significant improvement, but we need to consider if we want to use web's
debug build as we did in the past.
2023-10-04 09:38:48 +07:00
Joshua Horton
f4ba29926d
chore(developer): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-06-08 11:57:35 +07:00
Joshua A. Horton
47f47a05c9 fix(developer): forgot a path component 2023-06-01 12:18:15 +07:00
Joshua A. Horton
0d814c65aa chore(developer): attempt #1 to fix dev build, KMW integration 2023-06-01 11:36:29 +07:00
Marc Durdin
ce864ea923 chore: update standard script prolog to use builtin instead of dirname 2023-02-22 11:04:15 +07:00
Marc Durdin
463c7ff907 chore: remove greadlink from standard script prolog 2023-02-22 10:43:06 +07:00
Marc Durdin
4d53a277f3 chore: use builder_die, remove fail 2023-02-20 09:15:38 +07:00
Joshua A. Horton
c5f90d931c chore(web): Merge branch 'chore/web/top-level-build-script-rework' into change/web/reorg-source-src-reorg 2022-11-30 15:38:57 +07:00
Joshua A. Horton
4a96cdb0cb chore(web): cleanup per PR review 2022-11-30 15:35:18 +07:00
Joshua A. Horton
1d8595d48e fix(developer): developer build path partial reversion 2022-10-25 15:44:26 +07:00
Joshua A. Horton
23b516182f change(web): build/<product> -> build/app/<product> 2022-10-25 09:12:43 +07:00
Joshua A. Horton
d36b912c6f fix(developer): KMW copy path lacking a path piece 2022-10-25 08:42:42 +07:00
Joshua A. Horton
242cb1312c fix(developer): fixes developer-server's Web build call 2022-10-24 10:06:18 +07:00
Joshua A. Horton
0d643a88f7 fix(developer): KMW build product copying 2022-10-24 10:05:08 +07:00
Marc Durdin
e38cc79efc feat(developer): build kmcomp-$version.zip during release build
Replaces the script building kmcomp-$version.zip in TeamCity. Will be
used for more automated keyboard testing shortly.

Means kmcomp-$version.zip will be available as an artifact in all test
builds.

@keymanapp-test-bot skip
2022-07-09 15:45:44 +10:00
Marc Durdin
2fc74ce8e0 fix(developer): dist path for server
Fixes #6859.

The production path needed to have all files under the build/dist/
folder, not just the build/ folder. Broken in the refactor in #6630.
2022-06-29 06:17:12 +10:00
Marc Durdin
6466b1d68d chore(developer): +x for scripts 2022-06-25 09:32:57 +10:00
Marc Durdin
4f36c3c2df chore(developer): Merge branch 'master' into chore/developer/js-to-lmc 2022-06-25 05:48:57 +10:00
Marc Durdin
3edfb314df chore(developer): fixup server paths and build 2022-05-23 12:39:30 +10:00
Marc Durdin
6c3d5277bf chore(developer): move server with no changes 2022-05-23 12:15:34 +10:00
Renamed from developer/server/build.sh (Browse further)