Fixes#8615.
The msgproc was never being located as we were missing the UTF8ToString
wrapper for the context.
This also ensures error message codes are emitted in hexadecimal, and
that the return value from the msgproc callback is 1, meaning 'continue
build'.
The build/ folder for most packages was missing due to being listed in
.gitignore.
Also, @keymanapp/ldml-keyboard-constants package was not being published
despite being a dependency of @keymanapp/kmc-keyboard.
Instead of relying on npm's use of .gitignore / .npmignore (which has
seriously wonky behaviours), we list the files that should be included
in package.json.
NPM Wonky behaviours: it seems that .npmignore causes .gitignore in the
same folder to be ignored. But, higher level .gitignore files still
affect the files included in the package, which makes
specification-by-exclusion painful (negating exclusions, etc). We do not
recommend use of .npmignore anywhere for this reason.
Fixes#8586.
All npm publish actions in the repository are now run as part of the
Developer release build, hosted at present by kmc, until we setup a
higher-level build script to do it.
Adds a 'pack' action which mirrors 'publish' for all npm packages.
Removes unnecessary dev dependencies of models-templates and
models-wordbreakers from kmc-model.
Web Release build CI step has been updated to check for presence of
.build-builder.
* Splits compiler interface functions that return bool into
CompilerInterfaces.cpp, and moves `SetError` define to that unit so
it can't be used accidentally elsewhere
* Audit of `AddWarning` calls and only those that are used in bool
functions now `return FALSE` (with new `AddWarningBool`) whereas all
others `return CERR_Break`
Decided to use the name `baseline` for this set of tests. They can be
used by any project in the repo now. Tests will be treated as shared,
and not modified (except in the case of a buggy test).
* Moves .kmn files, add `&NAME` line (don't use meson templating for
these files)
* Generates reference .kmx files using kmcomp for use as a baseline with
kmcmplib (kmc) tests, and for linux tests
* Updates references in core, kmcmplib, and linux builds
* Renames all the .kmn / .kmx to use a standardized, clean name format
(this was needed for building packages in the core tests)
During the configure phase for kmcmplib, we'll now always make a clone
of the keyboards repo so that we can checkout the specific commit we
want without making a mess of the user's environment. This is a little
slower (about 30 seconds to do a full local clone, a couple of minutes
for a remote clone) but a whole lot safer.
This only needs to be done in the `configure` action.
This also simplifies our scripts because we no longer need to pass any
option into meson for the keyboards repo, as we'll always know it is in
tests/keyboards.