Merge pull request #6539 from keymanapp/chore/web/version-maintenance

chore(web): move version from package.json to keyman-version package 🎡
This commit is contained in:
Marc Durdin 2022-05-27 08:46:13 +10:00 committed by GitHub
commit 67222ecf49
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 199 additions and 55 deletions

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/input-processor",
"version": "15.0.233",
"description": "The core text and prediction processing engine for KeymanWeb",
"repository": {
"type": "git",

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/keyboard-processor",
"version": "15.0.233",
"description": "Core module for Keyman keyboard support in KeymanWeb.",
"repository": {
"type": "git",

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/recorder-core",
"version": "15.0.233",
"description": "Core classes used to develop KeymanWeb test cases based on keystrokes",
"main": "index.js",
"scripts": {

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/web-sentry-manager",
"version": "15.0.233",
"description": "Common setup for KeymanWeb's Sentry-based error reporting",
"main": "dist/index.js",
"scripts": {

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/web-utils",
"version": "15.0.233",
"description": "Common utility functions used throughout other Keyman packages",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/models-templates",
"version": "15.0.233",
"description": "Backing model implementations (templates) for Keyman's modelling layer",
"keywords": [
"lm",

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/models-types",
"version": "15.0.233",
"description": "Type definitions in used in the modeling (lexical model/predictive text) component of Keyman.",
"types": "./index.d.ts",
"scripts": {

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/models-wordbreakers",
"version": "15.0.233",
"description": "Word breakers bundled in the modeling layer",
"keywords": [
"lexical model",

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/lexical-model-layer",
"version": "15.0.233",
"description": "Keyman/Predictive Text integration layer",
"main": "build/index.js",
"scripts": {

View file

@ -1,6 +1,5 @@
{
"name": "lmlayer-cli",
"version": "0.2.0",
"description": "Command line interface to the predictive text engine.",
"main": "index.js",
"bin": "./index.js",

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/es6-shim",
"version": "15.0.230",
"description": "Keyman/es6-shim",
"main": "build/index.js",
"scripts": {

2
common/web/keyman-version/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
# version.inc.ts is generated during the build
version.inc.ts

View file

@ -0,0 +1,75 @@
#!/bin/bash
#
# Builds the include script for the current Keyman version.
#
# Exit on command failure and when using unset variables:
set -eu
## START STANDARD BUILD SCRIPT INCLUDE
# adjust relative paths as necessary
THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
. "$(dirname "$THIS_SCRIPT")/../../../resources/build/build-utils.sh"
## END STANDARD BUILD SCRIPT INCLUDE
# This script runs from its own folder
cd "$(dirname "$THIS_SCRIPT")"
display_usage ( ) {
echo "Usage: $0 [configure] [clean] [build] [test]"
echo " [--verbose|-v]"
echo " $0 -h|--help"
echo
echo " clean removes build/ folder"
echo " configure runs 'npm ci' on root folder"
echo " build builds wrapped version of package"
echo " [if required will: configure]"
echo " test runs tests (builds as req'd)"
echo " [if required will: build]"
}
################################ Main script ################################
builder_init "clean configure build" "$@"
# TODO: build if out-of-date if test is specified
# TODO: configure if npm has not been run, and build is specified
if builder_has_action configure; then
verify_npm_setup
builder_report configure success
fi
if builder_has_action clean; then
npm run clean
rm -f ./version.inc.ts
builder_report clean success
fi
if builder_has_action build; then
# Generate index.ts
echo "
// Generated by common/web/keyman-version/build.sh
namespace KEYMAN_VERSION {
export const
VERSION = \"$VERSION\",
VERSION_RELEASE =\"$VERSION_RELEASE\",
VERSION_MAJOR = \"$VERSION_MAJOR\",
VERSION_MINOR = \"$VERSION_MINOR\",
VERSION_PATCH = \"$VERSION_PATCH\",
TIER =\"$TIER\",
VERSION_TAG = \"$VERSION_TAG\",
VERSION_WITH_TAG = \"$VERSION_WITH_TAG\",
VERSION_ENVIRONMENT = \"$VERSION_ENVIRONMENT\";
}
" > ./version.inc.ts
# Build
npm run build -- $builder_verbose || die "Could not build worker."
builder_report build success
fi
if builder_has_action test; then
npm test || fail "Tests failed"
builder_report test success
fi

View file

@ -0,0 +1,6 @@
/// <reference path="./version.inc.ts" />
// Add all namespaces defined here to the global scope:
if (typeof module != 'undefined' && typeof module.exports != 'undefined') {
module.exports['KEYMAN_VERSION'] = KEYMAN_VERSION;
}

View file

@ -0,0 +1,17 @@
{
"name": "@keymanapp/keyman-version",
"description": "Keyman global version data",
"main": "./build/index.js",
"exports": "./build/index.js",
"scripts": {
"build": "echo 'Building @keymanapp/keyman-version' && tsc -b",
"clean": "tsc -b --clean",
"postinstall": "gosh ./build.sh build",
"postci": "gosh ./build.sh build"
},
"license": "MIT",
"devDependencies": {
"typescript": "^4.5.4",
"@keymanapp/resources-gosh": "*"
}
}

View file

@ -0,0 +1,18 @@
{
"extends": "../../../tsconfig-base.json",
"compilerOptions": {
"allowJs": false,
"declaration": true,
"module": "none",
"outFile": "build/index.js",
"sourceMap": true,
"lib": ["es6"],
"target": "es5",
"downlevelIteration": true,
},
"include": [
"index.ts",
"version.inc.ts"
]
}

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/lm-message-types",
"version": "15.0.233",
"description": "Type definitions in used in the lm layer (lexical model/predictive text) component of Keyman.",
"types": "./message.d.ts",
"scripts": {

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/lm-worker",
"version": "15.0.233",
"description": "Keyman/Predictive Text worker",
"main": "build/index.js",
"scripts": {

View file

@ -96,8 +96,6 @@ if (( install_dependencies )) ; then
verify_npm_setup
fi
set_npm_version || fail "Setting version failed."
build || fail "Compilation failed."
echo "Typescript compilation successful."
@ -106,6 +104,8 @@ if (( run_tests )); then
fi
if (( should_publish )); then
set_npm_version || fail "Setting version failed."
if [[ $TIER == stable ]]; then
npm_dist_tag=latest
else

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/lexical-model-compiler",
"version": "15.0.233",
"description": "Keyman Developer lexical model compiler",
"keywords": [
"keyboard",
@ -10,7 +9,7 @@
"unicode"
],
"scripts": {
"build": "tsc",
"build": "tsc -b",
"test": "mocha",
"prepublishOnly": "npm run build"
},
@ -34,7 +33,7 @@
"kmlmi": "dist/kmlmi.js"
},
"engines": {
"node": ">=12.0.0"
"node": ">=16.0.0"
},
"dependencies": {
"@keymanapp/models-types": "*",
@ -45,6 +44,7 @@
"devDependencies": {
"@keymanapp/models-templates": "*",
"@keymanapp/models-wordbreakers": "*",
"@keymanapp/keyman-version": "*",
"@types/chai": "^4.1.7",
"@types/mocha": "^5.2.7",
"@types/node": "^10.14.6",

View file

@ -12,10 +12,12 @@ import { SysExits } from './util/sysexits';
let inputFilename: string;
/// <reference types="@keymanapp/keyman-version" />
/* Arguments */
program
.description('Compiles Keyman lexical models')
.version(require('../package.json').version)
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
.arguments('<infile>')
.action(infile => inputFilename = infile)
.option('-o, --outFile <filename>', 'where to save the resultant file');

View file

@ -15,7 +15,7 @@ let inputFilename: string;
/* Arguments */
program
.description('Merges Keyman lexical model model_info files. Intended for use within the keymanapp/lexical-models repository.')
.version(require('../package.json').version)
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
.arguments('<infile>')
.action(infile => inputFilename = infile)
.option('-o, --outFile <filename>', 'where to save the resultant file')

View file

@ -13,7 +13,7 @@ let inputFilename: string;
/* Arguments */
program
.description('Compiles Keyman lexical model packages')
.version(require('../package.json').version)
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
.arguments('<infile>')
.action(infile => inputFilename = infile)
.option('-o, --outFile <filename>', 'where to save the resultant file');

View file

@ -49,7 +49,7 @@ export class ModelDefinitions {
version: string;
applyCasing?: CasingFunction;
} = {
version: process.env.npm_package_version
version: KEYMAN_VERSION.VERSION_WITH_TAG
};
/**

View file

@ -1,6 +1,8 @@
{
"extends": "../../tsconfig-base.json",
"compilerOptions": {
"module": "commonjs",
//"module": "commonjs",
"target": "es2017",
"moduleResolution": "node",
"sourceMap": true,
@ -16,5 +18,11 @@
},
"include": [
"source/**/*.ts"
],
"references": [
{ "path": "../../common/web/keyman-version" },
{ "path": "../../common/models/types" },
{ "path": "../../common/models/templates" },
{ "path": "../../common/models/wordbreakers" },
]
}

View file

@ -95,9 +95,12 @@ type npm >/dev/null ||\
if (( install_dependencies )) ; then
verify_npm_setup
npm install --production=false
pushd "$KEYMAN_ROOT" > /dev/null
npm ci --production=false
popd > /dev/null
# See https://github.com/bubenshchykov/ngrok/issues/254, https://github.com/bubenshchykov/ngrok/pull/255
rm -f node_modules/ngrok/bin/ngrok.exe
# TODO: this is horrible; is there a way we can avoid this?
rm -f "$KEYMAN_ROOT"/node_modules/ngrok/bin/ngrok.exe
fi
set_npm_version || fail "Setting version failed."

View file

@ -1,16 +1,14 @@
{
"name": "@keymanapp/developer-server",
"version": "15.0.233",
"description": "Keyman Developer backend server",
"main": "dist/index.js",
"scripts": {
"build": "tsc",
"build": "tsc -b",
"postbuild": "npx gosh ./postbuild.sh",
"prod": "node .",
"test": "mocha",
"watch": "npm run postbuild && tsc-watch --onSuccess \"node .\" --onFailure \"node .\""
},
"author": "",
"license": "MIT",
"dependencies": {
"@sentry/node": "^6.16.1",
@ -27,6 +25,7 @@
},
"devDependencies": {
"@keymanapp/resources-gosh": "*",
"@keymanapp/keyman-version": "*",
"@types/chai": "^4.3.0",
"@types/express": "^4.17.13",
"@types/mocha": "^9.1.0",

View file

@ -1,3 +1,3 @@
const pjson = require('../package.json');
import { extractVersionData } from './version-data';
export const environment = extractVersionData(pjson.version);
// TODO: environment should be just KEYMAN_VERSION
export const environment = extractVersionData(KEYMAN_VERSION.VERSION_WITH_TAG);

View file

@ -1,4 +1,6 @@
{
"extends": "../../tsconfig-base.json",
"compilerOptions": {
"module": "commonjs",
"target": "es2017",
@ -16,5 +18,8 @@
},
"include": [
"src/**/*.ts"
],
"references": [
{ "path": "../../common/web/keyman-version" }
]
}

61
package-lock.json generated
View file

@ -30,7 +30,6 @@
},
"common/core/web/input-processor": {
"name": "@keymanapp/input-processor",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/keyboard-processor": "*",
@ -53,7 +52,6 @@
},
"common/core/web/keyboard-processor": {
"name": "@keymanapp/keyboard-processor",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/models-types": "*",
@ -72,7 +70,6 @@
},
"common/core/web/tools/recorder": {
"name": "@keymanapp/recorder-core",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/keyboard-processor": "*",
@ -87,7 +84,6 @@
},
"common/core/web/tools/sentry-manager": {
"name": "@keymanapp/web-sentry-manager",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/web-environment": "*",
@ -99,7 +95,6 @@
},
"common/core/web/utils": {
"name": "@keymanapp/web-utils",
"version": "15.0.233",
"license": "MIT",
"devDependencies": {
"@keymanapp/resources-gosh": "*",
@ -116,7 +111,6 @@
},
"common/models/templates": {
"name": "@keymanapp/models-templates",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/models-wordbreakers": "*"
@ -153,7 +147,6 @@
},
"common/models/types": {
"name": "@keymanapp/models-types",
"version": "15.0.233",
"license": "MIT",
"devDependencies": {
"typescript": "^4.5.4"
@ -161,7 +154,6 @@
},
"common/models/wordbreakers": {
"name": "@keymanapp/models-wordbreakers",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@types/node": "^14.0.3"
@ -183,7 +175,6 @@
},
"common/predictive-text": {
"name": "@keymanapp/lexical-model-layer",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/models-templates": "*",
@ -228,16 +219,31 @@
},
"common/web/es6-shim": {
"name": "@keymanapp/es6-shim",
"version": "15.0.230",
"license": "MIT",
"dependencies": {
"es6-shim": "^0.35.5"
},
"devDependencies": {}
},
"common/web/keyman-version": {
"name": "@keymanapp/keyman-version",
"hasInstallScript": true,
"license": "MIT",
"devDependencies": {
"@keymanapp/resources-gosh": "*",
"@types/node": "^14.0.4",
"ts-node": "^9.1.1",
"typescript": "^4.5.4"
}
},
"common/web/keyman-version/node_modules/@types/node": {
"version": "14.18.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.13.tgz",
"integrity": "sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==",
"dev": true
},
"common/web/lm-message-types": {
"name": "@keymanapp/lm-message-types",
"version": "15.0.233",
"license": "MIT",
"devDependencies": {
"typescript": "^4.5.4"
@ -245,7 +251,6 @@
},
"common/web/lm-worker": {
"name": "@keymanapp/lm-worker",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/models-templates": "*",
@ -290,7 +295,6 @@
},
"developer/js": {
"name": "@keymanapp/lexical-model-compiler",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/models-types": "*",
@ -304,6 +308,7 @@
"kmlmp": "dist/kmlmp.js"
},
"devDependencies": {
"@keymanapp/keyman-version": "*",
"@keymanapp/models-templates": "*",
"@keymanapp/models-wordbreakers": "*",
"@types/chai": "^4.1.7",
@ -317,7 +322,7 @@
"ts-node": "^9.1.1"
},
"engines": {
"node": ">=12.0.0"
"node": ">=16.0.0"
}
},
"developer/js/node_modules/@types/mocha": {
@ -396,7 +401,6 @@
},
"developer/server": {
"name": "@keymanapp/developer-server",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@sentry/node": "^6.16.1",
@ -408,6 +412,7 @@
"ws": "^8.3.0"
},
"devDependencies": {
"@keymanapp/keyman-version": "*",
"@keymanapp/resources-gosh": "*",
"@types/chai": "^4.3.0",
"@types/express": "^4.17.13",
@ -759,6 +764,10 @@
"resolved": "common/core/web/keyboard-processor",
"link": true
},
"node_modules/@keymanapp/keyman-version": {
"resolved": "common/web/keyman-version",
"link": true
},
"node_modules/@keymanapp/lexical-model-compiler": {
"resolved": "developer/js",
"link": true
@ -6151,7 +6160,6 @@
},
"resources/gosh": {
"name": "@keymanapp/resources-gosh",
"version": "15.0.233",
"license": "MIT",
"bin": {
"gosh": "gosh.js"
@ -6159,7 +6167,6 @@
},
"resources/web-environment": {
"name": "@keymanapp/web-environment",
"version": "15.0.233",
"license": "MIT",
"devDependencies": {
"@keymanapp/resources-gosh": "*"
@ -6167,7 +6174,6 @@
},
"web": {
"name": "keyman",
"version": "15.0.233",
"license": "MIT",
"dependencies": {
"@keymanapp/input-processor": "*",
@ -6233,6 +6239,7 @@
"@keymanapp/developer-server": {
"version": "file:developer/server",
"requires": {
"@keymanapp/keyman-version": "*",
"@keymanapp/resources-gosh": "*",
"@sentry/node": "^6.16.1",
"@types/chai": "^4.3.0",
@ -6492,9 +6499,27 @@
"typescript": "^4.5.4"
}
},
"@keymanapp/keyman-version": {
"version": "file:common/web/keyman-version",
"requires": {
"@keymanapp/resources-gosh": "*",
"@types/node": "^14.0.4",
"ts-node": "^9.1.1",
"typescript": "^4.5.4"
},
"dependencies": {
"@types/node": {
"version": "14.18.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.13.tgz",
"integrity": "sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==",
"dev": true
}
}
},
"@keymanapp/lexical-model-compiler": {
"version": "file:developer/js",
"requires": {
"@keymanapp/keyman-version": "*",
"@keymanapp/models-templates": "*",
"@keymanapp/models-types": "*",
"@keymanapp/models-wordbreakers": "*",

View file

@ -34,6 +34,5 @@
"clean:dist": "rm -rf dist",
"clean:lib": "rm -rf lib",
"types": "tsc --noEmit"
},
"version": "1.1.3"
}
}

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/resources-gosh",
"version": "15.0.233",
"description": "Good Ol' Shell",
"author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
"contributors": [

View file

@ -1,6 +1,5 @@
{
"name": "@keymanapp/web-environment",
"version": "15.0.233",
"description": "A compilation utility for passing select environment variables into our TS builds",
"author": "Joshua Horton <joshua_horton@sil.org> (https://github.com/jahorton)",
"homepage": "https://github.com/keymanapp/keyman",

View file

@ -18,6 +18,7 @@
"@keymanapp/models-wordbreakers": ["./common/models/wordbreakers"],
"@keymanapp/utils": ["./common/core/web/utils"],
"@keymanapp/lm-message-types": ["./common/web/lm-message-types"],
"@keymanapp/keyman-version": ["./common/web/keyman-version"],
}
}
}

View file

@ -28,6 +28,7 @@
{ "path": "./web/tools/recorder/tsconfig.json" },
{ "path": "./web/tools/sourcemap-root/tsconfig.json" },
{ "path": "./common/web/lm-message-types/" },
{ "path": "./common/web/lm-worker/" }
{ "path": "./common/web/lm-worker/" },
{ "path": "./common/web/keyman-version/" },
]
}

View file

@ -1,6 +1,5 @@
{
"name": "keyman",
"version": "15.0.233",
"description": "Facilitates text input in any language.",
"repository": {
"type": "git",

View file

@ -1,6 +1,5 @@
{
"name": "regression-tests",
"version": "1.0.0",
"description": "Automated regression test suite for KeymanWeb",
"main": "index.js",
"scripts": {