RTL (Arabic) Kerning Classes interchanged from Glyphsapp 2 to 3?

When opening a Glyphs version 2 file in Version 3.0.2(3058 ) with Arabic Language included, it seems like all Kerning Classes are interchanged from left to right…

v2:

v3:

Yes, RTL and LTR kerning are stored separately now. And the old kerning s not compatible with the new way anymore. Each kerning is only visible in Window > Kerning if the current tab is set to the respective writing direction.

To convert ‘Glyphs 2 old-style mixed kerning’ to ‘Glyphs 3 direction-aware kerning’, use the mekkablue script Kerning > Convert RTL Kerning from Glyphs 2 to 3:

Unfortunately, the script throws an error:

:capital_abcd: Master: Hair
Traceback (most recent call last):
File “Convert RTL Kerning from Glyphs 2 to 3.py”, line 40
RTLmasterKerning = thisFont.kerningRTL[master.id]
File “objc/_convenience_mapping.pyc”, line 19, in _getitem__objectForKey
File “objc/_convenience.pyc”, line 118, in container_unwrap
KeyError: ‘01215059-ECF2-40D0-BCEB-9C2CA828514C’

You might need to update to the latest cutting edge version. Activate it in Preferences > Updates.

Still an error with 3.0.3 (3090) and Mekkablue Scripts new install

:one: Convert RTL kerning from Glyphs 2 → 3:

:capital_abcd: Master: Hair
Traceback (most recent call last):
File “Convert RTL Kerning from Glyphs 2 to 3.py”, line 40
RTLmasterKerning = thisFont.kerningRTL[master.id]
File “_convenience_mapping.py”, line 18, in _getitem__objectForKey
return container_unwrap(res, KeyError, key)
File “_convenience.py”, line 113, in container_unwrap
raise exc_type(*exc_args)
KeyError: ‘01215059-ECF2-40D0-BCEB-9C2CA828514C’

Can you update the scripts. I think I fixed the script.

One step further. A new error message:

:one: Convert RTL kerning from Glyphs 2 → 3:

:capital_abcd: Master: Hair
:white_check_mark: @_AR_knit_re @uni0647 -20
:white_check_mark: @AR_uni0645_re @uni0647 -40
Traceback (most recent call last):
File “Convert RTL Kerning from Glyphs 2 to 3.py”, line 95
copyFrom2to3(masterKerning, RTLMasterKerning)
File “Convert RTL Kerning from Glyphs 2 to 3.py”, line 64, in copyFrom2to3
if GSGlyphsInfo.isRTLScript
(key2Scripts[firstName]):
KeyError: ‘@MMK_L__AR_uniFEF0_re

Could you send me that file?

Can you run “Clean Up” for each master in Kerning panels gear button?

Now the script runs. But the result ist not correct. E.g. the combination uni0647 - uni0647 ist still LTR not RTL.

Are there any chances, that this issue will be fixed?

Sorry that it took so long. I just fixed it.