Skip to content

feat(developer): kmc-convert: new conversion xkb->kmn 😎#15922

Draft
SabineSIL wants to merge 301 commits into
epic/kmc-convertfrom
feat/developer/kmc-convert-xkb-kmn
Draft

feat(developer): kmc-convert: new conversion xkb->kmn 😎#15922
SabineSIL wants to merge 301 commits into
epic/kmc-convertfrom
feat/developer/kmc-convert-xkb-kmn

Conversation

@SabineSIL
Copy link
Copy Markdown
Contributor

@SabineSIL SabineSIL commented May 7, 2026

The next conversion (kmc-convert: xkb->kmn ):

This is to decice on a possibly new foder structure:

As a starting point we created an additional runable version of kmc-convert: keylayout ->kmn both being identical:

  • a new XkbToKmnConverter has been added and used in Converter/ConverterClassFactory
  • new src files have been created (which are exact copies from src files of the conversions keylayout ->kmn )
  • new test src files have been created (which are exact copies from test src files of the conversions keylayout ->kmn )
  • new test data files have been created (which are exact copies from test data files of the conversions keylayout ->kmn )

For kmc-convert there are 9 conversion modules but we may reuse some files:
there are:

  • 6 for reading ( e.g. keylayout-file-reader.ts, xkb-file-reader.ts,...) ,
  • 9 for converting (e.g. keylayout-to-kmn-converter.ts, xkb-to-kmn-converter.ts,...)
  • 2 for writing . (kmn-file-writer.ts ,ldml-file-writer.ts)

To prevent duplicate files and to obtain a cleaner structure of src, test-src and test-data files we might create a new folder structure which would suit all present and future conversions well.

This PR proposes:

  • creation of 3 src- subfolders read, convert and write to sort src according to function
  • creation of 3 test-src subfolders read, convert and write to sort tests according to function
  • creation of a test-data subfolder for each conversion

@keymanapp-test-bot skip

SabineSIL and others added 30 commits February 13, 2025 13:05
…e of a rule

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)
@SabineSIL SabineSIL requested a review from mcdurdin May 7, 2026 09:07
@SabineSIL SabineSIL self-assigned this May 7, 2026
@SabineSIL SabineSIL added developer/ common/ feat epic A long lived branch, home for a new feature, usually will have child PRs based on it labels May 7, 2026
@SabineSIL SabineSIL added this to Keyman May 7, 2026
@keymanapp-test-bot keymanapp-test-bot Bot added the user-test-missing User tests have not yet been defined for the PR label May 7, 2026
@keymanapp-test-bot
Copy link
Copy Markdown

keymanapp-test-bot Bot commented May 7, 2026

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

  • Android
    • Keyman for Android apk - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Android apk - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Android apk (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • KeyboardHarness apk - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for Android apk (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • KMSample1 apk - build : all tests passed (no artifacts on BuildLevel "build")
    • KMSample2 apk - build : all tests passed (no artifacts on BuildLevel "build")
  • Developer
    • Keyman Developer - build : all tests passed (no artifacts on BuildLevel "build")
    • Compiler Regression Tests - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman Developer (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • iOS
  • Keyboards
    • Test Keyboards - build : all tests passed (no artifacts on BuildLevel "build")
  • macOS
    • Keyman for macOS - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for macOS (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • Web
    • KeymanWeb Test Home - build : all tests passed (no artifacts on BuildLevel "build")
  • Windows
    • Keyman for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (ARM64) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (x64) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (x86) - build : all tests passed (no artifacts on BuildLevel "build")

@github-project-automation github-project-automation Bot moved this to Todo in Keyman May 7, 2026
@keymanapp-test-bot keymanapp-test-bot Bot changed the title feat(developer): kmc-convert: new conversion xkb->kmn ⛄ feat(developer): kmc-convert: new conversion xkb->kmn ⛄ 😎 May 7, 2026
@keymanapp-test-bot keymanapp-test-bot Bot added this to the A19S28 milestone May 7, 2026
@SabineSIL SabineSIL changed the title feat(developer): kmc-convert: new conversion xkb->kmn ⛄ 😎 feat(developer): kmc-convert: new conversion xkb->kmn 😎 May 7, 2026
@keymanapp-test-bot keymanapp-test-bot Bot removed the user-test-missing User tests have not yet been defined for the PR label May 7, 2026
@keyman-server keyman-server modified the milestones: A19S28, A19S29 May 11, 2026
@SabineSIL SabineSIL moved this from Todo to In Progress in Keyman May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

common/web/ common/ developer/compilers/ developer/ epic A long lived branch, home for a new feature, usually will have child PRs based on it epic-kmc-convert feat resources/

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants