spiegel-keyman/developer/src
Marc Durdin e56472d9b2 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
Cherry-pick-of: #11805
2024-06-18 07:38:04 +10:00
..
common fix(developer): treat js files with unrecognized encodings as non-keyboard files 2024-06-06 06:53:00 +07:00
ext fix(developer): partial Revert in test and json validator 2023-05-01 21:36:45 -05:00
images fix(developer): remove ancient samples 2022-11-01 17:04:38 +11:00
inst chore(developer): ignore missing folder when cleaning 2024-04-19 10:08:52 +07:00
kmanalyze fix(core): fix for incorrect earlier fix 2022-09-22 17:26:39 -05:00
kmc fix(developer): check HISTORY.md to get last modified date for keyboard_info and model_info 2024-06-18 07:38:04 +10:00
kmc-analyze Merge pull request #10918 from keymanapp/chore/developer/consolidate-help-links 2024-03-05 16:07:01 +07:00
kmc-keyboard-info fix(developer): support Windows and Unicode names in .ttf 2024-05-31 15:39:50 +07:00
kmc-kmn fix(developer): handle unsupported return statement in match and nomatch in web compiler 2024-05-27 09:41:29 +07:00
kmc-ldml fix(developer): escape plus and asterisk sign 2024-04-19 16:37:16 -05:00
kmc-model chore(developer/compilers): comment typo fix 2024-03-27 12:45:06 +07:00
kmc-model-info Merge pull request #10922 from keymanapp/docs/developer/kmc-model-info-docs 2024-03-07 18:13:11 +07:00
kmc-package fix(developer): handle missing data in .kps <Keyboard> 2024-05-27 15:05:47 +07:00
kmcmplib fix(developer): handle buffer boundaries in four cases 2024-04-02 14:51:33 +07:00
kmconvert fix(developer): handle missing OSK when importing a Windows keyboard into a touch-only project 2024-06-06 12:50:54 +07:00
kmdecomp chore: copy files back 2022-11-29 10:19:07 +07:00
samples fix(windows): lower case filenames for projects 2022-11-28 19:29:48 +07:00
server fix(developer): test existence of ngrok.exe before atttempting to start 2024-05-27 08:24:29 +07:00
setup fix(windows): IDE introduce project file deployment path 2024-04-05 08:41:32 +10:00
test chore(developer): remove obsolete files 2023-12-01 12:00:56 +07:00
tike Merge pull request #11766 from keymanapp/fix/developer/cherry-pick/11646-add-platform-no-more-platforms-builder 2024-06-15 07:08:24 +10:00
tools fix(common): upgrade sentry-cli to 2.31.0 2024-04-03 10:48:35 +07:00
.eslintrc.cjs chore(developer): add eslint devDependency for kmc 2023-04-25 13:44:56 +07:00
.gitignore chore(developer): temporary copy of osk xml when building installer 2024-04-19 06:39:23 +07:00
Defines.mak feat(developer): fixup and prepare build scripts and docs for kmc 2022-09-19 06:36:06 +10:00
developer.groupproj feat(developer): remove kmcomp 2023-09-09 17:47:15 +02:00
developer.sln feat(developer): remove kmcmpdll 2023-09-02 12:25:29 +04:00
Header.mak chore(developer): additional moves of developer scripts 2022-05-22 07:59:54 +10:00
history.md chore(developer): move source files to /developer/src 2022-05-18 10:34:48 +10:00
Makefile chore(developer): only build api on build target 2024-02-26 13:26:38 +07:00
README.md Merge pull request #9571 from keymanapp/feat/developer/remove-kmcmpdll 2023-10-03 15:35:19 +02:00
Target.mak chore(developer): move .mak to src 2022-05-19 09:26:00 +10:00

Keyman Developer

This is the current home for Keyman Developer.

Cross-dependencies

We do not have 100% clean separation between Keyman Developer and Keyman for Windows. Shared units are intended to live in common, however the following projects will need to be updated in the future.

  • kmbrowserhost in Windows is included as part of Keyman Developer.

Folders

src/common

Units shared among Keyman Developer projects, Delphi

src/ext

3rd party code and components, mostly Delphi

src/inst - keymandeveloper.msi

Building and signing of the installation archive keymandeveloper.msi.

src/inst/node

Contains a minimal distribution of node.js intended just for running kmc. If more dependencies are required, then the developer will be expected to install node.js themselves; this gets users going without requiring a large installer or a full node.js install.

src/kmanalyze - kmanalyze.exe

A keyboard source analysis and automated regression test tool. Testing for logical errors of a keyboard.

src/kmconvert - kmconvert.exe & kmconvert.x64.exe

KMConvert converts keyboard layouts between different formats. KMConvert will generate a full Keyman template project from the imported layout or data, in a new folder named with the ID of the keyboard. It will not overwrite an existing folder. Also used to generate new projects from templates.

src/kmdecomp - kmdecomp.exe

Unsupported utility decompiles a Keyman .kmx keyboard. It will produce a .kmn source file and optionally a .ico or .bmp image. see kmdecomp/kmdecomp.md for details.

src/kmc

node-based next generation compiler, hosts kmc, (and legacy kmlmc, kmlmp)

src/kmc-analyze - Analysis tools

File analysis tools for Keyman files.

src/kmc-keyboard-info - Keyboard Info Compiler

Builds .keyboard_info files for use on the Keyman Cloud keyboard repository at https://github.com/keymanapp/keyboards. Command line access through kmc.

src/kmc-kmn - Keyboard Compiler

Builds .kmx files from .kmn. Command line access through kmc.

src/kmc-ldml - LDML Keyboard Compiler

Next Generation keyboard compiler - LDML keyboards. Command line access through kmc.

src/kmc-model - Lexical Model Compiler

The Lexical Model Compiler, runs on nodeJS on all supported desktop platforms. Command line access through kmc.

src/kmc-model-info - Model Info Compiler

Builds .model_info files for use on the Keyman Cloud lexical model repository at https://github.com/keymanapp/lexical-models. Command line access through kmc.

src/kmc-package - Package Compiler

Compiles .kps packages into .kmp files. Works with both lexical model packages and keyboard packages. Command line access through kmc.

src/samples

Contains sample keyboards and sample developer projects. See readme.txt for details.

src/server

Keyman Developer Server. Node-based, cross platform host app for Keyman Developer. Used currently for web-based test and deployment. In future, will be the foundation for a web-based Keyman Developer project.

src/setup - setup.exe

Installation program for Keyman Developer for Windows. Bundles with keymandeveloper.msi to generate single deployable installer executable.

src/tike - "Tavultesoft Integrated Keyboard Editor"

This is the designer side of the Developer. Used for designing, developing, testing and packing keyboards for distribution.

src/tools

Various build-time tools for Keyman Developer.