Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(core): split context API from Core primary API 🌱 #10401

Merged

Conversation

mcdurdin
Copy link
Member

Relates to #9999.
Fixes #10384.

The context API endpoints should no longer be considered as part of the standard Core API. The only consumers that have a need to access these APIs are the IMX integration in Engine for Windows, and the Keyman Developer Debugger.

These symbols are currently used by Developer:

  • km_core_context struct
  • km_core_context_type enum
  • km_core_context_item struct
  • KM_CORE_CONTEXT_ITEM_END macro
  • km_core_state_context()
  • km_core_context_set()
  • km_core_context_clear()

These symbols are currently used by Windows IMX:

  • km_core_context struct
  • km_core_context_type enum
  • km_core_context_item struct
  • KM_CORE_CONTEXT_ITEM_END macro
  • km_core_context_items_dispose()
  • km_core_context_item_list_size()
  • km_core_state_get_intermediate_context()

The following functions and symbols are moving to keyman_core_api_context.h:

  • km_core_context struct
  • km_core_context_type enum
  • km_core_context_item struct
  • KM_CORE_CONTEXT_ITEM_END macro
  • km_core_state_context() function
  • km_core_state_get_intermediate_context() function
  • km_core_context_set() function
  • km_core_context_clear() function
  • km_core_context_get() function
  • km_core_context_items_from_utf16() function
  • km_core_context_items_from_utf8() function
  • km_core_context_items_to_utf8() function
  • km_core_context_items_to_utf16() function
  • km_core_context_items_to_utf32() function
  • km_core_context_items_dispose() function
  • km_core_context_length() function
  • km_core_context_append() function
  • km_core_context_shrink() function
  • km_core_context_item_list_size() function

@keymanapp-test-bot skip

@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Jan 16, 2024

User Test Results

Test specification and instructions

User tests are not required

@keymanapp-test-bot keymanapp-test-bot bot changed the title refactor(core): split context API from Core primary API refactor(core): split context API from Core primary API 🌱 Jan 16, 2024
@keymanapp-test-bot keymanapp-test-bot bot added this to the A17S30 milestone Jan 16, 2024
@mcdurdin mcdurdin marked this pull request as ready for review January 16, 2024 05:20
@mcdurdin mcdurdin linked an issue Jan 16, 2024 that may be closed by this pull request
core/include/keyman/keyman_core_api_context.h Outdated Show resolved Hide resolved
core/include/keyman/keyman_core_api_context.h Show resolved Hide resolved
core/include/keyman/keyman_core_api_context.h Outdated Show resolved Hide resolved
@mcdurdin mcdurdin force-pushed the refactor/mac/9999-remove-legacy-context-api-calls branch from 7b44175 to 823b772 Compare January 17, 2024 03:44
Relates to #9999.
Fixes #10384.

The context API endpoints should no longer be considered as part of the
standard Core API. The only consumers that have a need to access these
APIs are the IMX integration in Engine for Windows, and the Keyman
Developer Debugger.

These symbols are currently used by Developer:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_state_context()`
* `km_core_context_set()`
* `km_core_context_clear()`

These symbols are currently used by Windows IMX:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_context_items_dispose()`
* `km_core_context_item_list_size()`
* `km_core_state_get_intermediate_context()`

The following functions and symbols are moving to
keyman_core_api_context.h:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_state_context()` function
* `km_core_state_get_intermediate_context()` function
* `km_core_context_set()` function
* `km_core_context_clear()` function
* `km_core_context_get()` function
* `km_core_context_items_from_utf16()` function
* `km_core_context_items_from_utf8()` function
* `km_core_context_items_to_utf8()` function
* `km_core_context_items_to_utf16()` function
* `km_core_context_items_to_utf32()` function
* `km_core_context_items_dispose()` function
* `km_core_context_length()` function
* `km_core_context_append()` function
* `km_core_context_shrink()` function
* `km_core_context_item_list_size()` function
@mcdurdin mcdurdin force-pushed the refactor/core/9999-split-context-apis branch from e5c2525 to 671973b Compare January 17, 2024 03:44
Base automatically changed from refactor/mac/9999-remove-legacy-context-api-calls to epic/core/9999-normalization January 18, 2024 03:46
@mcdurdin mcdurdin merged commit d1e1baf into epic/core/9999-normalization Jan 18, 2024
4 of 16 checks passed
@mcdurdin mcdurdin deleted the refactor/core/9999-split-context-apis branch January 18, 2024 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

chore(core): Remove KM Core public access to context APIs 🌱
2 participants