diff --git a/.github/workflows/deb-packaging.yml b/.github/workflows/deb-packaging.yml index 09d386dabd..80161dfeda 100644 --- a/.github/workflows/deb-packaging.yml +++ b/.github/workflows/deb-packaging.yml @@ -62,7 +62,7 @@ jobs: shell: bash run: | THIS_SCRIPT="$GITHUB_WORKSPACE/.github/workflows/deb-packaging.yml" - . "resources/build/build-utils.sh" + . "${THIS_SCRIPT%/*}/../../resources/build/build-utils.sh" echo "VERSION=$VERSION" >> $GITHUB_OUTPUT - name: Set prerelease tag as output parameter diff --git a/HISTORY.md b/HISTORY.md index 2a671fbef4..aea57b9ea8 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,9 @@ # Keyman Version History +## 17.0.66 alpha 2023-03-13 + +* refactor(android): Use builder scripts (#7407) + ## 17.0.65 alpha 2023-03-12 * refactor(core): consolidate wasm defs (#8409) diff --git a/VERSION.md b/VERSION.md index 56b1303489..710b4d8ff4 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -17.0.66 \ No newline at end of file +17.0.67 \ No newline at end of file diff --git a/common/predictive-text/build.sh b/common/predictive-text/build.sh index 755bb22688..56680781f8 100755 --- a/common/predictive-text/build.sh +++ b/common/predictive-text/build.sh @@ -25,10 +25,8 @@ cd "$(dirname "$THIS_SCRIPT")" # "@../models/types" \ # is just a .d.ts, so there's nothing to actually BUILD. builder_describe "Builds the lm-layer module" \ - "@../web/keyman-version" \ - "@../models/templates" \ - "@../models/wordbreakers" \ - "@../web/lm-worker" \ + "@/common/web/keyman-version" \ + "@/common/web/lm-worker" \ "clean" \ "configure" \ "build" \ @@ -37,7 +35,7 @@ builder_describe "Builds the lm-layer module" \ builder_describe_outputs \ configure /node_modules \ - build build/lib/web/index.mjs # is built by the final step. + build /common/predictive-text/build/lib/web/index.mjs # is built by the final step. builder_parse "$@" diff --git a/common/web/input-processor/build.sh b/common/web/input-processor/build.sh index 8d551e8fea..a22048df52 100755 --- a/common/web/input-processor/build.sh +++ b/common/web/input-processor/build.sh @@ -17,9 +17,9 @@ cd "$(dirname "$THIS_SCRIPT")" ################################ Main script ################################ builder_describe "Builds the standalone, headless form of Keyman Engine for Web's input-processor module" \ - "@../keyman-version" \ - "@../keyboard-processor" \ - "@../../predictive-text" \ + "@/common/web/keyman-version" \ + "@/common/web/keyboard-processor" \ + "@/common/predictive-text" \ "@/developer/src/kmc-model test" \ "clean" \ "configure" \ @@ -31,7 +31,7 @@ builder_describe "Builds the standalone, headless form of Keyman Engine for Web' builder_describe_outputs \ configure /node_modules \ - build build/lib/index.mjs \ + build /common/web/input-processor/build/lib/index.mjs \ builder_parse "$@" @@ -52,11 +52,11 @@ fi ### BUILD ACTIONS if builder_start_action build; then - npm run tsc -- -b ./tsconfig.json + tsc -b ./tsconfig.json node build-bundler.js # Declaration bundling. - npm run tsc -- --emitDeclarationOnly --outFile ./build/lib/index.d.ts + tsc --emitDeclarationOnly --outFile ./build/lib/index.d.ts builder_finish_action success build fi @@ -69,7 +69,7 @@ if builder_start_action test; then FLAGS="--reporter mocha-teamcity-reporter" fi - npm run mocha -- --recursive $FLAGS ./tests/cases/ + mocha --recursive $FLAGS ./tests/cases/ builder_finish_action success test fi \ No newline at end of file diff --git a/common/web/keyboard-processor/build.sh b/common/web/keyboard-processor/build.sh index 891e937c50..fc7bf1f1a6 100755 --- a/common/web/keyboard-processor/build.sh +++ b/common/web/keyboard-processor/build.sh @@ -19,9 +19,9 @@ cd "$THIS_SCRIPT_PATH" builder_describe \ "Compiles the web-oriented utility function module." \ - "@../recorder test" \ - "@../keyman-version" \ - "@../utils" \ + "@/common/web/recorder test" \ + "@/common/web/keyman-version" \ + "@/common/web/utils" \ configure \ clean \ build \ @@ -30,7 +30,7 @@ builder_describe \ builder_describe_outputs \ configure /node_modules \ - build build/lib/index.mjs + build /common/web/keyboard-processor/build/lib/index.mjs builder_parse "$@" @@ -46,13 +46,13 @@ if builder_start_action clean; then fi if builder_start_action build; then - npm run tsc -- --build "$THIS_SCRIPT_PATH/tsconfig.json" + tsc --build "$THIS_SCRIPT_PATH/tsconfig.json" node ./build-bundler.js # Declaration bundling. - npm run tsc -- --emitDeclarationOnly --outFile ./build/lib/index.d.ts - npm run tsc -- --emitDeclarationOnly --outFile ./build/lib/dom-keyboard-loader.d.ts -p src/keyboards/loaders/tsconfig.dom.json - npm run tsc -- --emitDeclarationOnly --outFile ./build/lib/node-keyboard-loader.d.ts -p src/keyboards/loaders/tsconfig.node.json + tsc --emitDeclarationOnly --outFile ./build/lib/index.d.ts + tsc --emitDeclarationOnly --outFile ./build/lib/dom-keyboard-loader.d.ts -p src/keyboards/loaders/tsconfig.dom.json + tsc --emitDeclarationOnly --outFile ./build/lib/node-keyboard-loader.d.ts -p src/keyboards/loaders/tsconfig.node.json builder_finish_action success build fi @@ -68,8 +68,8 @@ if builder_start_action test; then KARMA_CONFIG=CI.conf.cjs fi - npm run mocha -- --recursive $MOCHA_FLAGS ./tests/node/ - npm run karma -- start ./tests/dom/$KARMA_CONFIG + mocha --recursive $MOCHA_FLAGS ./tests/node/ + karma start ./tests/dom/$KARMA_CONFIG builder_finish_action success test fi \ No newline at end of file diff --git a/common/web/keyman-version/build.sh b/common/web/keyman-version/build.sh index 5955d41aea..977ea53ef0 100755 --- a/common/web/keyman-version/build.sh +++ b/common/web/keyman-version/build.sh @@ -28,7 +28,7 @@ builder_describe "Build the include script for current Keyman version" \ builder_describe_outputs \ configure "/node_modules" \ - build "build/version.inc.js" + build "/common/web/keyman-version/build/version.inc.js" builder_parse "$@" @@ -70,7 +70,7 @@ export class KEYMAN_VERSION { export default KEYMAN_VERSION; " > ./version.inc.ts - npm run tsc -- -b $builder_verbose + tsc -b $builder_verbose # kmlmc (the lexical model compiler) relies on a Node-based import, but after some of the earlier # ES-modularization work, our main output's an ES module. Fortunately, esbuild can provide an easy stopgap. diff --git a/common/web/lm-worker/build.sh b/common/web/lm-worker/build.sh index d7372da95c..d679e4a31a 100755 --- a/common/web/lm-worker/build.sh +++ b/common/web/lm-worker/build.sh @@ -26,16 +26,14 @@ WORKER_OUTPUT_FILENAME=build/lib/worker-main.js ################################ Main script ################################ builder_describe \ - "Compiles the WebWorker module of Keyman's predictive-text engine as used for predictive text and autocorrective applications." \ - "@../keyman-version" \ - "@../../tools/sourcemap-path-remapper" \ - configure clean build test \ - "--ci Runs unit tests with CI reporting" \ - "--debug Includes full sources in the worker's sourcemap" + "Compiles the Language Modeling Layer for common use in predictive text and autocorrective applications." \ + "@/common/web/keyman-version" \ + "@/common/tools/sourcemap-path-remapper" \ + configure clean build test builder_describe_outputs \ configure /node_modules \ - build build/lib/worker-main.wrapped.min.js + build /common/web/lm-worker/build/lib/worker-main.wrapped.min.js builder_parse "$@" @@ -54,7 +52,7 @@ fi if builder_start_action build; then # Build worker with tsc first - npm run build -- $builder_verbose || builder_die "Could not build worker." + tsc -b $builder_verbose || builder_die "Could not build worker." echo "Bundling worker modules" @@ -80,7 +78,7 @@ if builder_start_action test; then MOCHA_FLAGS="$MOCHA_FLAGS --reporter mocha-teamcity-reporter" fi - npm run mocha -- --recursive $MOCHA_FLAGS ./src/test/cases/ + mocha --recursive $MOCHA_FLAGS ./src/test/cases/ builder_finish_action success test fi diff --git a/common/web/recorder/build.sh b/common/web/recorder/build.sh index d12610ab49..73951544b0 100755 --- a/common/web/recorder/build.sh +++ b/common/web/recorder/build.sh @@ -19,14 +19,14 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" builder_describe \ "Compiles the web-oriented utility function module." \ - "@../keyman-version" \ + "@/common/web/keyman-version" \ configure \ clean \ build builder_describe_outputs \ configure "/node_modules" \ - build "build/obj/index.js" + build "/common/web/recorder/build/obj/index.js" builder_parse "$@" @@ -36,11 +36,11 @@ if builder_start_action configure; then fi if builder_start_action clean; then - npm run tsc -- -b --clean "$THIS_SCRIPT_PATH/tsconfig.json" + tsc --build --clean "$THIS_SCRIPT_PATH/tsconfig.json" builder_finish_action success clean fi if builder_start_action build; then - npm run tsc -- --build "$THIS_SCRIPT_PATH/tsconfig.json" + tsc --build "$THIS_SCRIPT_PATH/tsconfig.json" builder_finish_action success build fi \ No newline at end of file diff --git a/common/web/sentry-manager/src/build.sh b/common/web/sentry-manager/src/build.sh index fe5c6bd434..7f3775702d 100755 --- a/common/web/sentry-manager/src/build.sh +++ b/common/web/sentry-manager/src/build.sh @@ -47,7 +47,7 @@ if [ $FETCH_DEPS = true ]; then "$KEYMAN_ROOT/common/web/keyman-version/build.sh" || builder_die "Could not build keyman-version" fi -npm run tsc -- --build "$THIS_SCRIPT_PATH/tsconfig.json" +tsc --build "$THIS_SCRIPT_PATH/tsconfig.json" if [ $? -ne 0 ]; then builder_die "Compilation of package for Sentry integration with KeymanWeb failed." fi \ No newline at end of file diff --git a/common/web/types/build.sh b/common/web/types/build.sh index dc376f4a0d..3c7e69b216 100755 --- a/common/web/types/build.sh +++ b/common/web/types/build.sh @@ -17,7 +17,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" cd "$THIS_SCRIPT_PATH" builder_describe "Build Keyman common file types module" \ - "@../keyman-version" \ + "@/common/web/keyman-version" \ "configure" \ "build" \ "clean" \ @@ -26,7 +26,7 @@ builder_describe "Build Keyman common file types module" \ "--dry-run,-n don't actually publish, just dry run" builder_describe_outputs \ configure /node_modules \ - build build/src/main.js + build /common/web/types/build/src/main.js builder_parse "$@" diff --git a/common/web/utils/build.sh b/common/web/utils/build.sh index 47857d58ed..3e6769d9aa 100755 --- a/common/web/utils/build.sh +++ b/common/web/utils/build.sh @@ -18,13 +18,13 @@ cd "$THIS_SCRIPT_PATH" builder_describe \ "Compiles the web-oriented utility function module." \ - "@../keyman-version" \ + "@/common/web/keyman-version" \ configure clean build test \ "--ci For use with action ${BUILDER_TERM_START}test${BUILDER_TERM_END} - emits CI-friendly test reports" builder_describe_outputs \ configure "/node_modules" \ - build "build/lib/index.mjs" + build "/common/web/utils/build/lib/index.mjs" builder_parse "$@" @@ -43,11 +43,11 @@ if builder_start_action build; then if builder_is_dep_build; then builder_echo "skipping tsc -b; will be completed by $builder_dep_parent" else - npm run tsc -- --build "$THIS_SCRIPT_PATH/tsconfig.json" + tsc --build "$THIS_SCRIPT_PATH/tsconfig.json" node build-bundler.js # So... tsc does declaration-bundling on its own pretty well, at least for local development. - npm run tsc -- --emitDeclarationOnly --outFile ./build/lib/index.d.ts + tsc --emitDeclarationOnly --outFile ./build/lib/index.d.ts fi builder_finish_action success build fi @@ -61,7 +61,7 @@ if builder_start_action test; then FLAGS="$FLAGS --reporter mocha-teamcity-reporter" fi - npm run mocha -- --recursive $FLAGS ./src/test/ + mocha --recursive $FLAGS ./src/test/ builder_finish_action success test fi \ No newline at end of file diff --git a/core/build.sh b/core/build.sh index 23ad94d283..caaeafb929 100755 --- a/core/build.sh +++ b/core/build.sh @@ -106,20 +106,20 @@ builder_describe_internal_dependency \ build:mac build:mac-arm64 builder_describe_outputs \ - configure:x86 build/x86/$CONFIGURATION/build.ninja \ - configure:x64 build/x64/$CONFIGURATION/build.ninja \ - configure:mac build/mac/$CONFIGURATION/ \ - configure:mac-x86_64 build/mac-x86_64/$CONFIGURATION/build.ninja \ - configure:mac-arm64 build/mac-arm64/$CONFIGURATION/build.ninja \ - configure:arch build/arch/$CONFIGURATION/build.ninja \ - configure:wasm build/wasm/$CONFIGURATION/build.ninja \ - build:x86 build/x86/$CONFIGURATION/src/libkmnkbp0.a \ - build:x64 build/x64/$CONFIGURATION/src/libkmnkbp0.a \ - build:mac build/mac/$CONFIGURATION/libkmnkbp0.a \ - build:mac-x86_64 build/mac-x86_64/$CONFIGURATION/src/libkmnkbp0.a \ - build:mac-arm64 build/mac-arm64/$CONFIGURATION/src/libkmnkbp0.a \ - build:arch build/arch/$CONFIGURATION/src/libkmnkbp0.a \ - build:wasm build/wasm/$CONFIGURATION/src/libkmnkbp0.a + configure:x86 /core/build/x86/$CONFIGURATION/build.ninja \ + configure:x64 /core/build/x64/$CONFIGURATION/build.ninja \ + configure:mac /core/build/mac/$CONFIGURATION/ \ + configure:mac-x86_64 /core/build/mac-x86_64/$CONFIGURATION/build.ninja \ + configure:mac-arm64 /core/build/mac-arm64/$CONFIGURATION/build.ninja \ + configure:arch /core/build/arch/$CONFIGURATION/build.ninja \ + configure:wasm /core/build/wasm/$CONFIGURATION/build.ninja \ + build:x86 /core/build/x86/$CONFIGURATION/src/libkmnkbp0.a \ + build:x64 /core/build/x64/$CONFIGURATION/src/libkmnkbp0.a \ + build:mac /core/build/mac/$CONFIGURATION/libkmnkbp0.a \ + build:mac-x86_64 /core/build/mac-x86_64/$CONFIGURATION/src/libkmnkbp0.a \ + build:mac-arm64 /core/build/mac-arm64/$CONFIGURATION/src/libkmnkbp0.a \ + build:arch /core/build/arch/$CONFIGURATION/src/libkmnkbp0.a \ + build:wasm /core/build/wasm/$CONFIGURATION/src/libkmnkbp0.a # Iterate through all possible targets; note that targets that cannot be built # on the current platform have already been excluded through the archtargets diff --git a/core/commands.inc.sh b/core/commands.inc.sh index 4a696c8555..f3eda70e6d 100644 --- a/core/commands.inc.sh +++ b/core/commands.inc.sh @@ -168,7 +168,6 @@ cleanup_visual_studio_path() { _new_path="$_new_path:$p" fi done - echo PATH="${_new_path:1}" unset VSINSTALLDIR } diff --git a/developer/src/inst/License.rtf b/developer/src/inst/License.rtf index 43a045c99f..472971f09a 100644 Binary files a/developer/src/inst/License.rtf and b/developer/src/inst/License.rtf differ diff --git a/developer/src/kmc-keyboard/build.sh b/developer/src/kmc-keyboard/build.sh index 04280fa49b..e6ac49b35d 100755 --- a/developer/src/kmc-keyboard/build.sh +++ b/developer/src/kmc-keyboard/build.sh @@ -28,7 +28,7 @@ builder_describe "Build Keyman kmc Keyboard Compiler module" \ "--dry-run,-n don't actually publish, just dry run" builder_describe_outputs \ configure /node_modules \ - build build/src/main.js + build /developer/src/kmc-keyboard/build/src/main.js builder_parse "$@" diff --git a/developer/src/kmc-model-info/build.sh b/developer/src/kmc-model-info/build.sh index 1a877cb854..da212a417b 100755 --- a/developer/src/kmc-model-info/build.sh +++ b/developer/src/kmc-model-info/build.sh @@ -17,7 +17,7 @@ cd "$THIS_SCRIPT_PATH" . "$KEYMAN_ROOT/resources/shellHelperFunctions.sh" builder_describe "Build Keyman kmc Lexical Model model-info Compiler module" \ - "@../kmc-package" \ + "@/developer/src/kmc-package" \ "configure" \ "build" \ "clean" \ @@ -26,7 +26,7 @@ builder_describe "Build Keyman kmc Lexical Model model-info Compiler module" \ "--dry-run,-n don't actually publish, just dry run" builder_describe_outputs \ configure /node_modules \ - build build/src/model-info-compiler.js + build /developer/src/kmc-model-info/build/src/model-info-compiler.js builder_parse "$@" diff --git a/developer/src/kmc-model/build.sh b/developer/src/kmc-model/build.sh index 51aef36cea..2582c10451 100755 --- a/developer/src/kmc-model/build.sh +++ b/developer/src/kmc-model/build.sh @@ -28,7 +28,7 @@ builder_describe "Build Keyman kmc Lexical Model Compiler module" \ "--dry-run,-n don't actually publish, just dry run" builder_describe_outputs \ configure /node_modules \ - build build/src/main.js + build /developer/src/kmc-model/build/src/main.js builder_parse "$@" diff --git a/developer/src/kmc-package/build.sh b/developer/src/kmc-package/build.sh index ae69a60c6b..c17363729c 100755 --- a/developer/src/kmc-package/build.sh +++ b/developer/src/kmc-package/build.sh @@ -26,7 +26,7 @@ builder_describe "Build Keyman kmc Package Compiler module" \ "--dry-run,-n don't actually publish, just dry run" builder_describe_outputs \ configure /node_modules \ - build build/src/kmp-compiler.js + build /developer/src/kmc-package/build/src/kmp-compiler.js builder_parse "$@" #------------------------------------------------------------------------------------------------------------------- diff --git a/developer/src/kmc/build.sh b/developer/src/kmc/build.sh index f85302f25e..fd14e00e4c 100755 --- a/developer/src/kmc/build.sh +++ b/developer/src/kmc/build.sh @@ -19,10 +19,10 @@ cd "$THIS_SCRIPT_PATH" builder_describe "Build Keyman Keyboard Compiler kmc" \ "@/common/web/keyman-version" \ "@/common/web/types" \ - "@../kmc-keyboard" \ - "@../kmc-model" \ - "@../kmc-model-info" \ - "@../kmc-package" \ + "@/developer/src/kmc-keyboard" \ + "@/developer/src/kmc-model" \ + "@/developer/src/kmc-model-info" \ + "@/developer/src/kmc-package" \ "configure runs 'npm ci' on root folder" \ "build (default) builds kmc to build/" \ "clean cleans build/ folder" \ @@ -33,7 +33,7 @@ builder_describe "Build Keyman Keyboard Compiler kmc" \ "--dry-run,-n don't actually publish, just dry run" builder_describe_outputs \ configure /node_modules \ - build build/src/kmc.js + build /developer/src/kmc/build/src/kmc.js builder_parse "$@" diff --git a/resources/build/build-utils-ci.test.sh b/resources/build/build-utils-ci.test.sh index acde714a83..662ea581da 100755 --- a/resources/build/build-utils-ci.test.sh +++ b/resources/build/build-utils-ci.test.sh @@ -8,7 +8,7 @@ set -eu ## START STANDARD BUILD SCRIPT INCLUDE # adjust relative paths as necessary THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" -. "${THIS_SCRIPT%/*}/build-utils.sh" +. "${THIS_SCRIPT%/*}/../../resources/build/build-utils.sh" # END STANDARD BUILD SCRIPT INCLUDE . "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh" @@ -16,42 +16,42 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" # Tests -echo "${COLOR_BLUE}## Testing: builder_pull_get_details with \$TEAMCITY_PR_NUMBER not set${COLOR_RESET}" +builder_echo "${COLOR_BLUE}## Testing: builder_pull_get_details with \$TEAMCITY_PR_NUMBER not set${COLOR_RESET}" if ! builder_pull_get_details; then - echo "PASS: builder_pull_get_details should get no details if \$TEAMCITY_PR_NUMBER is not set" + builder_echo "PASS: builder_pull_get_details should get no details if \$TEAMCITY_PR_NUMBER is not set" else builder_die "FAIL: builder_pull_get_details should get no details if \$TEAMCITY_PR_NUMBER is not set" fi -echo "${COLOR_BLUE}## Testing: builder_pull_get_details with \$TEAMCITY_PR_NUMBER=master${COLOR_RESET}" +builder_echo "${COLOR_BLUE}## Testing: builder_pull_get_details with \$TEAMCITY_PR_NUMBER=master${COLOR_RESET}" TEAMCITY_PR_NUMBER=master if ! builder_pull_get_details; then - echo "PASS: builder_pull_get_details should get no details if \$TEAMCITY_PR_NUMBER=master" + builder_echo "PASS: builder_pull_get_details should get no details if \$TEAMCITY_PR_NUMBER=master" else builder_die "FAIL: builder_pull_get_details should get no details if \$TEAMCITY_PR_NUMBER=master" fi -echo "${COLOR_BLUE}## Testing: builder_pull_get_details with \$TEAMCITY_PR_NUMBER=$TEAMCITY_PR_NUMBER${COLOR_RESET}" +builder_echo "${COLOR_BLUE}## Testing: builder_pull_get_details with \$TEAMCITY_PR_NUMBER=$TEAMCITY_PR_NUMBER${COLOR_RESET}" TEAMCITY_PR_NUMBER=7248 if ! builder_pull_get_details; then builder_die "FAIL: builder_pull_get_details was unable to read and parse PR details for #$TEAMCITY_PR_NUMBER from GitHub" fi # print metadata from PR -echo " pull number: $builder_pull_number" -echo " title: $builder_pull_title" -echo " labels: ${builder_pull_labels[*]}" +builder_echo " pull number: $builder_pull_number" +builder_echo " title: $builder_pull_title" +builder_echo " labels: ${builder_pull_labels[*]}" -echo "PASS: builder_pull_get_details with \$TEAMCITY_PR_NUMBER=$TEAMCITY_PR_NUMBER" +builder_echo "PASS: builder_pull_get_details with \$TEAMCITY_PR_NUMBER=$TEAMCITY_PR_NUMBER" -echo "${COLOR_BLUE}## Testing: builder_pull_has_label epic-ldml${COLOR_RESET}" +builder_echo "${COLOR_BLUE}## Testing: builder_pull_has_label epic-ldml${COLOR_RESET}" if ! builder_pull_has_label epic-ldml; then builder_die "FAIL: builder_pull_has_label epic-ldml" fi -echo "PASS: builder_pull_has_label epic-ldml" +builder_echo "PASS: builder_pull_has_label epic-ldml" -echo "All tests passed." +builder_echo "All tests passed." diff --git a/resources/build/build-utils.md b/resources/build/build-utils.md index fb77e638ad..5c3897e36b 100644 --- a/resources/build/build-utils.md +++ b/resources/build/build-utils.md @@ -86,10 +86,15 @@ This somewhat unwieldy incantation handles all our build environments. The intent is to get a good solid consistent path for the script so that we can safely include the build script, no matter what `pwd` is when the script is run. + The only modification permissible in this block is the `` text which will be a series of `../` paths taking us to the repository root from the location of the script itself. +It is essential to make the include relative to the repo root, even for scripts +under the resources/ folder. Doing this gives us significant performance +benefits. + Inclusion of other scripts should be kept outside this standard build script include section, as we may programatically update (a.ka. global search-and-replace) this section in the future as required. @@ -113,6 +118,15 @@ following line here: cd "$THIS_SCRIPT_PATH" ``` +## Standard environment + +`build-utils.sh` will prepend `$KEYMAN_ROOT/node_modules/.bin` to the `PATH` +variable to ensure that we run the correct versions of npm package commands, so +there is no need to hard-code path references or add script wrappers to +package.json (`npm run