Suggested by @Nnyny. Give more detail on the semantic version format for
keyboard version, as well as details on the limitations to semver
imposed by the Keyman toolchain.
In compiler messages, for a long time we have inconsistently used
'command' instead of 'statement' when referring to kmn statements. The
kmn language documentation uses 'statement' fairly consistently.
If `nul` is used in the output part of a rule, then text or
text-emitting statements cannot also be included in the output of that
rule. This was not enforced in earlier versions of Keyman.
Adds a unit test for the enhanced validation.
Fixes: #13455
Relates-to: keymanapp/keyboards#3379
if a rule is ambiguous i.e. if it is a C0/C1 rule and has an abiguous C2 or C3 rule we comment out the C0/C1 rule and only use the C2 or C3 rule
c WARNING + [CAPS K_EQUAL] > 'ì' (C0/C1)
+ [CAPS K_EQUAL] > dk(A3) (C2 or C3)
This is a major dependency version bump (4.5.0 to 5.0.9) which we would
normally avoid during beta. However, we need the fix
NaturalIntelligence/fast-xml-parser#725 for hex escapes in XML, which is
incorporated in 5.0.9.
I have assessed the other changes to fast-xml-parser and found no
breaking changes for us, but I tightened the types in xml-utils
declarations and found some minor inconsistencies which appear to have
no impact, and which I have corrected:
* wrong type in unused parameter to `tagValueProcessor`
* reference to unused property `options.emptyTag`
While doing this, I consolidated the common options for the parser in
order to verify consistency, but made no changes to the resolved
parsing/building options.
Added a test to ldml keyboard reading, to verify that numeric strings
are treated as strings, given the divergence in the `numberParseOptions`
option, and it shows that numeric strings are treated as strings.
Fixes: #13348
fast-xml-reader has a bug with numeric entities. See:
https://github.com/NaturalIntelligence/fast-xml-parser/issues/725
This commit adds a unit test to verify that non-BMP numeric entities
will be parsed correctly. It will fail until we update the
fast-xml-parser dependency.
Relates-to: #13348
This was due to platform-specific checks in NodeCompilerCallbacks,
around filename case and drive letters in paths (search terms:
HINT_FilenameHasDifferingCase, verifyFilenameConsistency):
- Linux: 59.01%
- macOS: 60.46%
- Windows: 63.08%
Mitigation: reduce threshold to 45%. More tests will be needed for
kmc-convert before epic merge.