Commit graph

1379 commits

Author SHA1 Message Date
Joshua A. Horton
f7d082981c chore: Merge branch 'master' into chore/feature-esmodule-master-update 2023-03-14 11:51:57 +07:00
Marc Durdin
534bd2a54b
Merge pull request #8416 from keymanapp/chore/common/build-script-performance
chore(common): build script performance improvements
2023-03-14 15:41:32 +11:00
Joshua A. Horton
f5e64a10a5 chore: Merge branch 'chore/common/ldml-ts-and-node-updates' into chore/feature-esmodule-master-update 2023-03-14 09:23:39 +07:00
Joshua A. Horton
2439ba4e97 fix(developer): updates kmc, web/types module resolution, adds missing type import/exports 2023-03-14 08:41:29 +07:00
Joshua A. Horton
0da7ac24be chore(common): updates TS, sets export map for keyman-version 2023-03-14 08:22:26 +07:00
Ramesh Kunnappully
8647610d16
Update copyright period in License.rtf 2023-03-13 23:52:25 +05:30
Marc Durdin
92ed99c4d6 chore(common): build script performance improvements
Improves build script performance by:
* using built-ins wherever possible (e.g. string splitting)
* eliminating redundant code
* using absolute (to $KEYMAN_ROOT) rather than relative paths to avoid realpath
* removing unnecessary `npm run` calls

BEFORE                         | AFTER
-------------------------------|----------------------
time ./core/build.sh --help    |
real    0m2.116s               | real    0m0.874s
user    0m0.578s               | user    0m0.198s
sys     0m0.984s               | sys     0m0.289s
-------------------------------|----------------------
time ./web/build.sh --help     |
real    0m3.523s               | real    0m0.757s
user    0m1.166s               | user    0m0.320s
sys     0m2.273s               | sys     0m0.455s
-------------------------------|----------------------
time ./web/build.sh -d         |
real    1m34.750s              | real    0m59.974s
user    0m9.721s               | user    0m6.284s
sys     0m19.652s              | sys     0m13.202s

@keymanapp-test-bot skip
2023-03-13 07:18:09 +07:00
Steven R. Loomis
712063d752
Merge pull request #8316 from keymanapp/fix/developer-8069/todo-epic-ldml
fix(developer): ldml TODO-LDML cleanup 🙀
2023-02-27 13:16:57 -06:00
Marc Durdin
0b7b22999e
Merge pull request #8326 from keymanapp/feat/developer/2761-kmc-build-project-2.0
feat(developer): Add support for building a folder to kmc 🙀
2023-02-27 19:56:42 +11:00
Marc Durdin
05d5c6f1f6
Merge pull request #8320 from keymanapp/feat/developer/5283-kmc-kpj-support
feat(developer): kmc .kpj support 🙀
2023-02-27 19:56:33 +11:00
Marc Durdin
6c87b49996
Merge pull request #8317 from keymanapp/feat/common/5283-kpj-schema-and-reader
feat(common): add .kpj typescript reader and schema 🙀
2023-02-27 19:56:24 +11:00
Marc Durdin
89f26e1f9b
Merge pull request #8311 from keymanapp/feat/developer/5283-kmc-model-ts-support
feat(developer): kmc compile .model.ts file 🙀
2023-02-27 19:56:13 +11:00
Marc Durdin
d541c3b990
Merge pull request #8310 from keymanapp/feat/developer/5283-kmc-kps-support
feat(developer): kmc compile .kps files 🙀
2023-02-27 19:56:04 +11:00
Marc Durdin
a9b707d4f1
Merge pull request #8302 from keymanapp/feat/developer/5283-kmc-kmn-wrapper
feat(developer): support build of .kmn from kmc 🙀
2023-02-27 19:55:56 +11:00
Marc Durdin
8f02108579
Update developer/src/kmc/src/commands/buildTestData.ts
Co-authored-by: Steven R. Loomis <srl295@gmail.com>
2023-02-27 17:53:25 +11:00
Marc Durdin
be4f036a3c feat(developer): Add support for building a folder to kmc
Relates to #2761.

kmc now supports passing in a folder and building all Keyman source
files found in the folder, even if a .kpj is not present in the folder.

If a .kpj file exists, `KeymanDeveloperProject/Options/Version` will be
checked to determine behaviour. If this field is missing or "1.0", then
the classical behaviour persists.

If the Version field is "2.0", the `Files` key is ignored, and .kmn,
.xml, .model.ts, and .kps files under `sourcePath` are enumerated and
added to the in-memory project for build.

If a .kpj is not present in the folder, a virtual project is constructed
in memory with the following defaults:

* `version`: `2.0`
* `buildPath`: `$PROJECTPATH/build`
* `sourcePath`: `$PROJECTPATH/source`
* `compilerWarningsAsErrors`: `false`
* `warnDeprecatedCode`: `true`
* `checkFilenameConventions`: `true`

It is still considered an error to include both a keyboard and a model
in the same file, but a version 2.0 project will not include the field
determining its type in `Options/ProjectType`; this will instead be
checked during build.

The call to `kmc` can reference a folder or a .kpj file. The .kpj file
must have the same basename as the folder name (e.g.
`khmer_angkor/khmer_angkor.kpj`).

WARNING: this does not add support for 2.0 projects to Keyman Developer;
it is likely that opening a version 2.0 project in Developer will
currently corrupt it.

WARNING: it is not anticipated that kmcomp.exe will be updated to
support version 2.0 projects -- rather kmcomp.exe will be removed before
release of v17, and replaced with kmc.
2023-02-27 13:11:22 +07:00
Marc Durdin
9af10cdf1d chore(developer): add kpj schema for tests 2023-02-27 08:02:35 +07:00
Marc Durdin
b04489a47b feat(developer): kmc .kpj support
Adds support for building .kpj projects. Required minor tweak to kmcomp
to allow it to build both .kmx and .js from .kmn command line.
Currently, calls kmcomp.exe to build .kmn files, until we support a
cross-platform kmc-kmn C++ project.
2023-02-27 06:14:06 +07:00
Marc Durdin
ec26e73932 chore(developer): skip copying schemas that may not be needed 2023-02-25 15:38:29 +07:00
Marc Durdin
647803ef28 feat(common): add .kpj typescript reader and schema 2023-02-25 11:17:39 +07:00
Steven R. Loomis
77a76a2f54 fix(developer): ldml TODO-LDML cleanup 🙀
- add check for missing flicks
- remove a tray #include

chore(common): ldml TODO-LDML cleanup 🙀  #8069
2023-02-24 18:55:28 -06:00
Marc Durdin
12a6e404af feat(developer): kmc compile .model.ts file
Adds basic support for compiling .model.ts files using kmc-model to kmc.
2023-02-24 16:18:46 +07:00
Marc Durdin
f6a3364c56 chore(developer): no top-level await 2023-02-24 16:18:27 +07:00
Marc Durdin
adfe3fac63 feat(developer): kmc compile .kps files
Adds basic support for compiling .kps files using kmc-package to kmc.
2023-02-24 14:29:48 +07:00
Marc Durdin
113918daef chore(developer): use BuildCommandOptions type 2023-02-24 13:57:36 +07:00
Marc Durdin
1be3ab37cc feat(developer): support build of .kmn from kmc
Uses existing kmcomp.exe to build .kmn files. Requires kmc to be in a
subfolder of the Keyman Developer binary folder.
2023-02-24 13:57:35 +07:00
Marc Durdin
91c6cb9f49 chore(developer): use --out-file for build-test-data 2023-02-24 13:54:29 +07:00
Marc Durdin
083be28ac4 chore(developer): fixup mkdir 2023-02-24 13:54:28 +07:00
Marc Durdin
a30fdffd95 feat(developer): kmc build command 2023-02-24 13:54:27 +07:00
Marc Durdin
ca77d0728f chore(developer): remove extraneous commander ref 2023-02-24 13:54:26 +07:00
Marc Durdin
c7c52af3e2 chore(developer): update to commander 10.0.0 2023-02-24 13:54:25 +07:00
Marc Durdin
38603e8421
Merge pull request #8279 from keymanapp/chore/core/cleanup-meson-build
chore(core): cleanup meson build
2023-02-23 13:28:02 +11:00
Marc Durdin
a2ceb98948 chore: rewrite extra standard build script prolog 2023-02-23 08:09:41 +07:00
Marc Durdin
9eb472579c chore: Merge branch 'feature-ldml' into chore/merge-master-to-feature-ldml-A17S7-2 2023-02-23 08:05:31 +07:00
Marc Durdin
b968bcfdfd
Merge branch 'feature-ldml' into chore/core/cleanup-meson-build 2023-02-23 08:49:56 +11:00
Marc Durdin
a0ecb30a9c
Merge pull request #8265 from keymanapp/feat/developer/epic-ldml/7238-touch-layout-compiler
feat(developer): touch layout compiler for LDML 🙀
2023-02-23 08:47:46 +11:00
Marc Durdin
def625525f
Merge pull request #8286 from keymanapp/chore/A17S7-master-to-feature-ldml
chore: merge master into feature-ldml A17S7 🙀
2023-02-23 08:47:27 +11:00
Marc Durdin
4777aaf58e chore: address review comments and null bug 2023-02-22 12:05:51 +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
c4054c8b21 chore(developer): update path ref for hextobin 2023-02-22 09:22:56 +07:00
Marc Durdin
e645b8665f chore: Merge branch 'feature-ldml' into chore/A17S7-master-to-feature-ldml
* core/build.sh -- accept feature-ldml changes (remove call to get_builder_OS)
* developer/src/kmlmc/build.sh -- delete file
*	linux/debian/rules -- accept master changes, fixup call to core/build.sh
*	linux/ibus-keyman/tests/Makefile.am -- accept master changes, fixup call to core/build.sh
*	linux/scripts/build.sh -- accept master changes, fixup call to core/build.sh
*	linux/scripts/reconf.sh -- accept master changes
2023-02-22 08:00:08 +07:00
Marc Durdin
20cc47714e chore(core): specify --no-tests in all dependent builds 2023-02-21 12:22:00 +07:00
Steven R. Loomis
e1e5eea469 feat(core): ldml rename key2 to keys 🙀
- So in summary, since before #7532 basically keys was restructured, and the old 'keys' was moved into 'keys.kmap'.

#8069
2023-02-20 17:40:34 -06:00
Steven R. Loomis
018d109560
Merge pull request #8222 from keymanapp/feat/core/7535-process-test-data-epic-ldml
feat(core): ldml: implement xml test cases 🙀
2023-02-20 16:35:03 -06:00
Marc Durdin
2457adea89
Merge pull request #8263 from keymanapp/chore/developer/disable-escape-compiler
chore(developer): ignore Esc key when compiling
2023-02-20 21:04:43 +11:00
Marc Durdin
1de9aa8009 chore(developer): update bundled node to 18.14.1 LTS
@keymanapp-test-bot skip

Fixes #8235.
2023-02-20 12:51:20 +07:00
Marc Durdin
deac408486 feat(developer): touch layout compiler key and layer identifiers 2023-02-20 12:39:16 +07:00
Marc Durdin
88a2351281 chore: rename comments 2023-02-20 10:40:02 +07:00
Marc Durdin
88df443ba1 feat(developer): touch layout compiler [unfinished] 2023-02-20 10:18:01 +07:00