Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
Find a file
Marc Durdin e3e8039d8e fix(web): improve console.error() reporting
The back story:

Currently Keyman for Android reports errors sent to the console via
`console.error()` into Sentry but sentry-manager itself does not. This
means that Keyman for iPhone and iPad and other users of sentry-manager
do not report these errors. Many of these errors are important.

What's worse is that Keyman for Android's error reporting here (via the
`sendKMWError()` function in Keyman Engine for Android) does not capture
stack traces, and so many of the errors we get do not have enough
information to resolve them.

Furthermore, by having `sendKMWError()` in Keyman for Android, we
capture exceptions and other program errors twice -- once on the web
side, and once on the Java side -- this adds noise to our error
reporting. Sentry also tends to lump many unrelated `sendKMWError()`
events together, so tracking resolution to the errors is painful.

The fix:

This adds a patch to sentry-manager to capture `console.error()` and
`console.warning()` events and report them through Sentry's normal error
reporting, and disables the `sendKMWError()` report (although we leave
the breadcrumb in place for when there are later, related Java errors).
There is a Sentry integration called CaptureConsole, but it does not
support capturing stack traces until v6.14
(https://github.com/getsentry/sentry-javascript/pull/4034). Updating
Sentry to 6.14 or newer is a bigger job (due to ES6 baseline req. etc.)

Note that Keyman for iOS currently has some other stubs in place
overriding the `console.*` functions. These should be removed for
release builds, so that we can use this pattern instead. I will try and
tackle this in a follow-up PR (I will build it on my mac so I can test
it).

A sample error report captured with this mechanism (no sourcemaps here
because this is a -local build):

https://sentry.io/organizations/keyman/issues/3401287467/events/c40fd2cebb7743cc8dfe72e0dd34bf65/?project=5983524

I am proposing we back-port this to 15.0-stable as we are missing a lot
of data in many of our error reports on Android.
2022-07-07 09:37:33 +10:00
.github fix: only auto-merge if auto: prefix in title 2022-01-24 12:12:53 +11:00
android fix(web): improve console.error() reporting 2022-07-07 09:37:33 +10:00
common fix(web): improve console.error() reporting 2022-07-07 09:37:33 +10:00
developer auto: increment stable-15.0 version to 15.0.266 2022-07-04 05:01:46 -04:00
docs docs(linux): Update vscode task sample to configure ibus-keyman 2022-04-20 17:01:30 +02:00
ios fix(ios): eliminates conditional height for banner image 2022-06-27 15:51:28 +07:00
linux fix(linux): Fix post-install script 2022-07-05 18:17:29 +02:00
mac added Spanish es-419 localization to Mac project 2022-05-24 14:40:13 +07:00
oem/firstvoices chore(ios): add manageAppVersionAndBuildNumber=false 2022-06-24 12:11:36 +10:00
resources auto: increment stable-15.0 version to 15.0.266 2022-07-04 05:01:46 -04:00
web auto: increment stable-15.0 version to 15.0.266 2022-07-04 05:01:46 -04:00
windows/src fix(developer): readonly groups should never emit output 2022-06-30 06:54:50 +10:00
.clang-format chore(common): Add C++ formatting rules 2021-07-29 18:50:25 +02:00
.editorconfig chore(linux): Address a few more lintian warnings 2022-03-15 15:32:10 +01:00
.flake8 chore(linux): Add integration tests for ibus-keyman 2021-11-04 09:22:28 +01:00
.gitignore chore(windows): Add obj cod and pdb to gitignore 2021-10-11 22:08:56 +10:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-10-08 10:46:53 +11:00
configure-repo.sh feat(common): Support git worktree when configuring local hooks 2020-02-24 18:30:57 +01:00
CONTRIBUTING.md chore(common): version 15.0 release tweaks 2022-06-15 12:57:28 +10:00
crowdin.yml Merge pull request #6529 from keymanapp/chore/linux/l10n 2022-04-14 09:13:02 +02:00
HISTORY.md auto: increment stable-15.0 version to 15.0.266 2022-07-04 05:01:46 -04:00
lerna.json auto: increment stable-15.0 version to 15.0.266 2022-07-04 05:01:46 -04:00
LICENSE.md chore: license date 2022-03-15 13:59:27 +11:00
package-lock.json feat(windows): Bit wise and modifier flags for core process event 2022-01-25 14:59:19 +10:00
package.json chore(common): updates lerna to 4.0.0 2021-07-02 14:47:28 +07:00
README.md chore(common): version 15.0 release tweaks 2022-06-15 12:57:28 +10:00
TIER.md chore(common): move to stable-15.0 2022-06-15 12:37:29 +10:00
VERSION.md auto: increment stable-15.0 version to 15.0.266 2022-07-04 05:01:46 -04:00

Keyman

Keyman makes it possible for you to type in any language on Windows, macOS, Linux, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. Create keyboard layouts with Keyman Developer and share them with the community in the keyboards repository. The Keyman Community have already contributed keyboard layouts for over 2,000 languages!

License

Copyright (c) SIL International.

Keyman is an open source project distributed under the MIT license.

Get Involved

Development Status

Important Links