Skip to content

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

Draft
SabineSIL wants to merge 299 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 299 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 6, 2025 18: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")
  • iOS
    • Keyman for iOS (simulator image) - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for iOS (simulator image) - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for iOS (simulator image) (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for iOS (simulator image) (old PRs) - 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
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: Todo

Development

Successfully merging this pull request may close these issues.

2 participants