Error KM07002: Key "U_2600_FE0F" on "phone", layer "EMOJI_1" has a multi-part identifier which requires version 15.0 or newer

Hello,

I am trying to compile my keyboard but am getting the error message, error KM07002: Key "U_2600_FE0F" on "phone", layer "EMOJI_1" has a multi-part identifier which requires version 15.0 or newer.

I searched around but couldn’t find any information about error KM07002.

I am using Keyman 17.0.305-beta, well past version 15.0. How can I compile my keyboard? Are multi-part identifiers supported?

Here is my current project:

Thanks so much.

You need to change the .kmn file to have:

store(&VERSION) '15.0'

in order to alert the compiler that you are using the “U_” identifier with more than one code point.

@Marc recently added some auto-generated documentation for each error code. Here’s the one for KM07002:
https://help.keyman.com/developer/17.0/reference/messages/km07002

Thanks David and Darcy!

I went ahead and changed store(&VERSION) to 17.0 (since I am using beta) and it complied perfectly!

Generally speaking, should I keep the store(&VERSION) value the same as the Keyman Developer version number that I am using?

Thanks!

I think you’ll want to reduce it to 15 (or at least 16) if you end up submitting the keyboard to the Keyman repository, since the build system is currently still using v16 and would refuse to compile your keyboard since it claims it needs version 17.

The general rule is to use the lowest version number possible.

Ok, thanks! I make use of flicking, so we’ll see how the timing goes. I might need to comment out that feature for a while if I want to get into the repository before 17 is released.

You can follow the example from sil_euro_latin that has flicks defined in the keyman-touch-layout file

and `store(&version) ‘15.0’ in the kmn file

The Keyman 16.0 compiler in the keyboards repo builds the keyboard. The flick gestures just aren’t available unless the mobile app is 17.0.

Thanks Darcy! That’s helpful to know. Even easier than I thought.

We use the setting of store(&VERSION) to determine the minimum version of Keyman that the keyboard will be recommended to.

If there are a number of keys only available via flicking, that might be a good reason to target version 17.0 with store(&VERSION) - flicks aren’t available for earlier versions. If there are other ways to produce the flicks’ keys, yeah, go with 15.0.

Generally, you don’t need to specify &version, except if the compiler cannot easily determine the minimum supported version early enough in the compile process. This is one of those unfortunate cases.

Like the others, I recommend store(&version) '15.0' unless flicks are necessary in order to use your keyboard.

1 Like