Skip to content

chore: web-core preflight#16015

Draft
mcdurdin wants to merge 472 commits into
masterfrom
chore/web-core-preflight
Draft

chore: web-core preflight#16015
mcdurdin wants to merge 472 commits into
masterfrom
chore/web-core-preflight

Conversation

@mcdurdin
Copy link
Copy Markdown
Member

@mcdurdin mcdurdin commented May 27, 2026

Investigative PR; do not merge

Build-bot: skip release:all
Test-bot: skip

ermshiperete and others added 30 commits November 6, 2025 08:06
refactor(web): rename OutputTarget related classes 🎼

Rename the OutputTarget related classes to better communicate what they are doing - they are interfacing with the text and thus roughly correspond to the TextStore on desktop platforms.
refactor(web): extract minimal TextStore interface that LanguageProcessor can use 🎼
This change replaces the default export of ContextManager with a regular
export.

Test-bot: skip
…actor/web/downgrade-web-utils-from-package-to-module
…dules

refactor(web): merge engine modules 🎼
refactor(web): change default export of ContextManager 🎼
sentry-manager is used by Keyman Engine for Android and Keyman Engine
for iOS, but not directly by KeymanWeb, nor does it have any
dependencies on /web. So it does not make sense to keep it under /web.

es-bundling is used by sentry-manager and potentially other /common/web
tools in the future, so moving it under /common/tools makes it more
consistent in the future.

This is part of simplifying the web source tree; these changes do not
make significant build performance differences at this time.

Test-bot: skip
Theses changes come out of code review of #12291.

Follow-up-of: #12291
Test-bot: skip
…ores

refactor(web): remove duplicate element-text-stores folder 🎼
chore(web): apply suggestions from code review 🎼
…ance

* Simplify the build dependency / child tree
* Split building and testing tooling so we don't rebuild components
* Fixup expected outputs to avoid repeated builds of components
* Remove unused dependency references
* Move test.sh targets into build.sh, so that testing doesn't lose
  dependency tracking and cause unnecessary rebuilds. (Note that I have
  not yet deleted test.sh.)
* Make predictive-text a direct child of engine, so that we don't build
  it twice (or even more times)

Test-bot: skip
…refactor/web/downgrade-web-utils-from-package-to-module
After review with @ermshiperete, we decided to remove this. It is
unclear to me why we were ever clearing the context when a beep was
triggered by the keyboard. This is legacy from v2.0 of KeymanWeb, and I
suspect it's an edge case that no one has ever noticed, but I can't see
a reason to keep it.

Test-bot: skip
…tils-from-package-to-module

refactor(web): change @keymanapp/web-utils to keyman/common/web-utils 🎼
…o-web-core

auto: A19S15 merge master into web-core 🎼
…to-common-web

refactor(web): move sentry-manager and es-bundling to common 🎼
…ith-beep

fix(web): don't reset context cache with beep 🎼
maint(web): cleanup web/**/build.sh for consistency and build performance 🎼
Meson 1.1 changed the name of the options file from `meson_options.txt`
to `meson.options`. Currently we're stuck with Meson 1.0 as minimum
Meson version because we still support Ubuntu 22.04 Jammy, but on some
machines a newer version of meson gets installed which causes the
options to be ignored.

The first attempt to simply symlink or copy `meson_options.txt` to
`meson.options` failed because git on Windows doesn't support symlinks
by default, and Meson complains if it finds two options files (#15127).

Fortunately not having an options file is only a problem for Core where
we have one option in the options file that defaults to true. The solution
implemented in this change is to always pass the option to Meson.

Cherry-pick-of: #15131
Test-bot: skip
Also renames internal `_dks` to `_deadkeys`.

Test-bot: skip
The file sneaked in through a merge/rebase.

Build-bot: skip
Test-bot: skip
- initialize `Deadkey.matched` in c'tor
- fix `Deadkey.equal` method
- verify deadkey exists before removing it in `DeadkeyTracker.remove`
- add unit tests for DeadkeyTracker

Test-bot: skip
This allows to use `console.log(deadkey.toString())` to get the values
of a deadkey.

Test-bot: skip
@github-project-automation github-project-automation Bot moved this to Todo in Keyman May 27, 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 27, 2026
@keymanapp-test-bot keymanapp-test-bot Bot added this to the A19S30 milestone May 27, 2026
@mcdurdin
Copy link
Copy Markdown
Member Author

The following PRs were merged into epic/web-core (#12291) after epic/embed-osk-in-kmx (#14857) was merged:

(git log --oneline --merges 407d9dd3b3.. --first-parent)

@keymanapp-test-bot keymanapp-test-bot Bot removed the user-test-missing User tests have not yet been defined for the PR label May 28, 2026
@mcdurdin mcdurdin requested a review from ermshiperete May 28, 2026 13:10
Copy link
Copy Markdown
Contributor

@ermshiperete ermshiperete left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RSLGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

3 participants