Commit graph

387 commits

Author SHA1 Message Date
Marc Durdin
2a9f2a3958
Merge pull request #12586 from keymanapp/feat/developer/kmc-copy-github-and-cloud-support
feat(developer): add GitHub and Cloud support to kmc-copy
2024-11-08 05:14:14 +01:00
Marc Durdin
eefbdc413d
Merge pull request #12555 from keymanapp/feat/developer/kmc-copy
feat(developer): kmc-copy
2024-11-08 05:14:02 +01:00
Marc Durdin
b80c124ec8
Merge pull request #11014 from keymanapp/feat/developer/kmc-generate
feat(developer): kmc generate
2024-11-08 05:13:51 +01:00
Marc Durdin
08215e28fa
Merge pull request #12622 from keymanapp/feat/developer/9767-kmc-analyze-extend-mapping
feat(developer): analyze osk-char-use merge with existing mapping file
2024-11-07 05:51:33 +01:00
Marc Durdin
7af4ae42ae
chore: Apply suggestions from code review 2024-11-06 03:06:47 +01:00
Marc Durdin
f717b2ba5c fix(developer): handle merge commits when checking git log date
Relates-to: keymanapp/keyboards#3143
Fixes: #12626
Fixes: KEYMAN-DEVELOPER-2AY
2024-11-06 06:11:38 +07:00
Marc Durdin
c683657969 feat(developer): analyze osk-char-use merge with existing mapping file
A gap in the kmc-analyze module displayMap support was that it was not
possible to extend an existing mapping file, but only to rewrite one.
This caused issues because the mappings could change between runs, if
keyboards changed, meaning fonts would not be backward compatible. This
change guarantees an existing mapping file will have exactly the same
character mappings, and only adds new mappings that are found.

Also adds unit tests and enables for kmc-analyze.

Fixes: #9767
2024-11-05 14:43:29 +07:00
Marc Durdin
d68a64252e feat(developer): add GitHub and Cloud support to kmc-copy
This requires a significant refactor to the compiler interfaces to allow
for asynchronous filesystem and network access. For now, only kmc-copy
uses the asynchronous interfaces, but over time we may try and
consolidate them where other compiler modules find them useful. This
adds a big set of unit test fixtures to avoid network instability in
tests (the fixtures can be regenerated by setting environment variable
`TEST_SAVE_FIXTURES`).
2024-10-28 10:33:42 +07:00
Marc Durdin
6df121a05a feat(developer): kmc-copy cleanup and documentation
* Hides details on --rename and online sources for projects
  until implemented
2024-10-22 10:28:04 +07:00
Marc Durdin
40db1c2051 feat(common): add isDirectory, helper functions for kmc-copy 2024-10-22 10:28:03 +07:00
Marc Durdin
7d17913e18 feat(developer): seed kmc-copy 2024-10-22 10:28:00 +07:00
Marc Durdin
10e4bba100
Merge branch 'master' into feat/developer/kmc-generate 2024-09-26 18:55:20 +02:00
Eberhard Beilharz
0dbae5c199
fix(core): add missing dependency for core
Core depends on `kmc` which in turn depends on `core/include/ldml`. This
change adds the missing dependency to the build script and fixes building
core from a clean `core` subdirectory.

# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2024-09-17 18:28:02 +02:00
Marc Durdin
48d4e65cf0 fix(developer): copy templates into bundle 2024-09-17 17:05:13 +07:00
Marc Durdin
8424cb9349
Merge branch 'master' into feat/developer/kmc-generate 2024-09-12 08:18:37 +02:00
Marc Durdin
4a2e6fd0a5 test(developer): add unit test for generate module 2024-09-10 10:54:22 +07:00
Eberhard Beilharz
c3e587193e
refactor(web): move model/types to web/types
Part-of: #12133
2024-09-09 19:59:01 +02:00
Marc Durdin
d2f99f69cb chore(developer): refactor imports after merge 2024-09-09 06:30:26 +07:00
Marc Durdin
db904119f3 feat(developer): unit tests for kmc-generate
Note: these are more e2e than unit tests. It may be difficult to convert
them into solid unit tests due to the way that kmc-generate works based
on templates.
2024-09-03 06:20:33 +07:00
Marc Durdin
8274d30788 feat(developer): kmc generate cleanup
Cleanup various todo items for kmc generate. Outstanding TODO item is
icon generation for .kmn.
2024-09-03 06:20:28 +07:00
Marc Durdin
2994fe2aea feat(developer): kmc-generate docs and tests started 2024-09-03 06:17:33 +07:00
Marc Durdin
939134a9a3 feat(developer): kmc-generate module
Plenty of todo items left but this is a mostly-functional module for the
kmc generate command for automatically creating keyboard and model
projects.
2024-09-03 06:15:33 +07:00
Marc Durdin
86fd36a713
Merge pull request #12117 from keymanapp/chore/developer/build-ci-linux-mac
chore(developer): start building Developer on linux,mac
2024-08-09 18:57:38 +10:00
Marc Durdin
ec97006893 chore(developer): skip case test for case-sensitive filesystem 2024-08-08 05:17:44 +07:00
Marc Durdin
91ca1820dc fix(developer): update date for last git commit date fixture 2024-08-08 04:37:05 +07:00
Marc Durdin
32b4711659
Merge branch 'master' into refactor/common/9665-move-compiler-interfaces-to-developer 2024-08-07 15:15:45 +10:00
Marc Durdin
ed143fb333
Merge branch 'master' into refactor/common/9665-move-ldml-keyboard-source-file-to-developer 2024-08-07 15:15:04 +10:00
Marc Durdin
7849b7734b
Merge pull request #11531 from keymanapp/refactor/common/9665-move-project-file-type-to-developer
refactor(common): move kpj-related files into developer-utils 🐉
2024-08-07 15:12:31 +10:00
Marc Durdin
e67aed1606 refactor(common): move compiler-interfaces to @keymanapp/developer-utils
This should be the last step in the refactoring.

Fixes: #9665
2024-08-02 13:49:59 +07:00
Marc Durdin
cebd4138e6 refactor(developer): update imports 2024-08-02 10:38:38 +07:00
Marc Durdin
b48ac789eb chore(developer): update git commit date test due to non-merge commit 2024-08-01 11:01:28 +07:00
Marc Durdin
d8986be12f refactor(common): merge master into branch 2024-08-01 07:07:07 +07:00
Marc Durdin
d1e351a1ac
Revert "chore(developer): remove redundant references from tsconfig.json" 2024-08-01 08:57:27 +10:00
Marc Durdin
1cff1a5084 chore(developer): remove redundant references from tsconfig.json
With the full move to ES Modules, we no longer need to include
`references` in tsconfig.json, as we can rely on package.json and
build.sh dependency management. Note however that `tsc -b` may not work
to build dependencies -- they need to be built using `build.sh`, which
calculates which dependencies need building.

kmc-keyboard-info was missing a dependency link to kmc-package in
build.sh, correcting this at the same time.

Relates-to: #12027
2024-07-27 05:44:22 +07:00
Marc Durdin
1afa4beb01 fix(developer): remove paths from tsconfig.json
Fixes: #12027
2024-07-26 06:59:45 +07:00
Marc Durdin
cfa85d1cc8 chore(developer): rename kmc-ldml export LdmlKeyboardCompilerMessages to LdmlCompilerMessages
This makes the exported class name more consistent with the other
compiler message classes and removes one more unnecessary alias.
2024-07-22 15:58:39 +07:00
Marc Durdin
1f0d51eec5 feat(developer): add searching for message identifiers to kmc message
Fixes: #10875
2024-07-21 14:50:33 +10:00
Marc Durdin
d23208ac9e chore(developer): add msec in comment 2024-06-18 07:36:35 +10:00
Marc Durdin
e081e0c72e fix(developer): check HISTORY.md to get last modified date for keyboard_info and model_info
This updates the calculation of the lastModifiedDate property of the
.keyboard_info and .model_info file. It now looks for the most recent
commit to HISTORY.md, and then falls back to the project folder for
.keyboard_info and .model_info.

getLastGitCommitDate now also returns UTC date (it was giving TZ=0
which is affected by daylight saving), and works for a file rather than
just for a folder, and a corresponding unit test has been added.

The date strings returned will now always include '.000' msec suffix. I
have manually verified that the import into the api.keyman.com database
copes with this, and that this change still conforms to the expected
schema for .keyboard_info and .model_info files.

Last, but important, it turned out that the unit tests for kmc were not
running. This has been resolved in kmc/build.sh.

Fixes: #11793
2024-06-18 07:03:08 +10:00
Marc Durdin
72aa772e20 test(developer): add fixture for getLastGitCommitDate unit test 2024-06-18 06:44:20 +10:00
Joshua A. Horton
ace4eb25c4 chore(common): Merge branch 'master' into change/common/update-esbuild 2024-06-13 12:47:55 +07:00
Marc Durdin
9cf09a5140 refactor(common): move kpj-related files into developer-utils
Relates to #9665.
2024-06-12 16:31:52 +07:00
Joshua A. Horton
d07fa7e953 chore(common): eliminate ts-node ref from most subpackages 2024-06-10 10:07:58 +07:00
Joshua A. Horton
e527317d3a fix(common): remove subpackge entries for older TS version 2024-06-10 09:14:03 +07:00
Joshua A. Horton
cb0a60165c change(common): updates esbuild to 0.18.9 2024-06-05 12:09:53 +07:00
Marc Durdin
ee0fc0ce14 chore(developer): cleanup npm publish
Use a new flag `--npm-publish` in conjunction with `publish` action,
so that the default will always be to `npm pack` if the new flag is not
specified. This flag is also guarded in the actual npm publish code to
ensure that it can only run in the appropriate CI alpha/beta/stable
environment, and not in local or test.

This then also removes the separate `pack` action.

Also removes legacy boilerplate from a number of build scripts.
2024-05-20 06:34:57 +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
c8a1c6aa39 chore(developer): use builder.inc.sh instead of build-utils.sh in build scripts
also, remove old Makefiles
2024-05-20 06:34:46 +07:00
Joshua A. Horton
398b9e0ae2 chore(common): drops package-specific 'chai', '@types/chai' versions
chore(web): missed leaving these out of the rebase
2024-05-07 14:35:09 +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