chore: Revert "chore: Revert "Merge branch 'master' into beta""

This reverts commit d6e7c0b9d1.
This commit is contained in:
Marc Durdin 2025-02-14 08:44:32 +07:00
parent 67f019fb56
commit 901edd63b9
39 changed files with 70 additions and 145 deletions

View file

@ -9,6 +9,11 @@
* chore(linux): remove support of Ubuntu 20.04 Focal (#13203)
## 19.0.1 alpha 2025-02-11
* refactor(windows): rename `TKeymanMutex.MutexOwned` to `TakeOwnership` and add `ReleaseOwnership` (#13168)
* chore: increment to alpha 19.0 (#13187)
## 18.0.191 beta 2025-02-12
* feat(windows): handle a hard windows reset occurring while downloading updated keyman files (#13128)

View file

@ -1 +1 @@
19.0.4
19.0.4

View file

@ -6,8 +6,8 @@ Keyman Engine for Android allows you to use any Keyman touch keyboard in your An
system keyboard app for purchase in the Play Store.<br/>
This guide will walk you through the steps for creating your first Android app with Keyman Engine for Android.
If you are not familiar with Android development, you will find the
[Android Developer online training](https://developer.android.com/training/index.html) an invaluable
If you are not familiar with Android development, you will find the
[Android Developer online training](https://developer.android.com/training/index.html) an invaluable
resource, and working through some of their tutorials first will help you with the rest of this guide.
### 1. Install Free Tools
@ -131,5 +131,5 @@ And there you have it: your first Keyman Engine for Android app!
## See Also
* [Guide: Build a system keyboard app](../system-keyboard/)
* [Keyman Developer Documentation](/developer/17.0/)
* [Keyman Engine for Android Documentation](/developer/engine/android/18.0/)
* [Keyman Engine for Android Documentation](/developer/engine/android/19.0/)
* [Android Developer Home](https://developer.android.com/index.html)

View file

@ -4,7 +4,7 @@ title: Keyman Engine for Android
## Overview
Keyman Engine for Android 18.0 is a Java library for Android 5.0 and later versions which enables a fully customisable keyboard layout, both within an app and system-wide.
Keyman Engine for Android 19.0 is a Java library for Android 5.0 and later versions which enables a fully customisable keyboard layout, both within an app and system-wide.
Keyboard layouts for Keyman Engine can be created with [Keyman Developer](/developer/17.0), and a [library of existing keyboard layouts](http://keyman.com/developer/keymanweb/keyboards)
is also available.</p>

View file

@ -1,11 +1,6 @@
---
title: What's New in Keyman Engine 18.0 for Android
title: What's New in Keyman Engine 19.0 for Android
---
## Keyman Engine for Android Breaking Changes: ##
* Change package name from `com.tavultesoft.kmea` to `com.keyman.engine` #7881
* Update to Java 11 #8543
## See Also
* [Keyman Engine for Android Documentation](index)

View file

@ -1,9 +1,6 @@
---
title: What's New in Keyman 18.0 for Android
title: What's New in Keyman 19.0 for Android
---
Here are some of the new features we have added to Keyman 18.0 for Android:
Here are some of the new features we have added to Keyman 19.0 for Android:
* New menu to adjust longpress delay time (#12170, #12185)
* Support localizations for right-to-left languages (#12215)
* Handle additional actions for ENTER key (#12125, #12315)

View file

@ -1,5 +1,5 @@
---
title: Keyman for Android 18.0 Help
title: Keyman for Android 19.0 Help
---
## [About Keyman](about/)

View file

@ -1,5 +1,5 @@
---
title: Keyman Developer 18.0 User Guide
title: Keyman Developer 19.0 User Guide
---
Need help using Keyman Developer to create your keyboard layouts? You'll
@ -8,7 +8,7 @@ and tutorials, and full reference information.
## Guides and Tutorials
- [What is Keyman Developer?](guides/intro)
- [What's new in 18.0](whats-new)
- [What's new in 19.0](whats-new)
- [Developing Keyman keyboard layouts](guides/develop)
- [Testing Keyman keyboards](guides/test)
- [Distributing Keyman keyboards](guides/distribute)

View file

@ -1,21 +1,5 @@
---
title: What's new in Keyman Developer 18.0
title: What's new in Keyman Developer 19.0
---
Keyman Developer 18 has a number of significant changes:
* Updated to Unicode 16.0 (#12393)
* Improve automatic detection of minimum Keyman version for a keyboard during
compilation (#11981, #11982, #11965, #11957)
* Generate keyboards and lexical models from templates, with `kmc generate`
(#11014)
* Clone existing keyboard and lexical model projects, both from local file
system and also from any open source online Keyman keyboard in Keyman Cloud or
GitHub, with `kmc copy` and New Project dialogs (#12555, #12586, #13076)
* Support extending existing `&displaymap` data files when adding new characters
(#12622)
* Font settings for on screen keyboards are now kept consistent with package
metadata during compilation (#12949)
* New npm module @keymanapp/langtags makes langtags.json easily accessible
(#13046)
* Compiler messages now have links to additional documentation (#13156)
Keyman Developer 19 has the following significant changes:

View file

@ -3,7 +3,7 @@
* kmlmp - Keyman Lexical Model Package Compiler
*/
// Note: this is a deprecated package and will be removed in Keyman 18.0
// Note: this is a deprecated package and will be removed in Keyman 19.0
import { Command } from 'commander';
import { KmpCompiler } from '@keymanapp/kmc-package';

View file

@ -113,7 +113,7 @@ All dependencies are already installed if you followed the instructions under
Keyman Core can be built with the `core/build.sh` script.
- [Building Keyman Core](../../core/doc/BUILDING.md)
- [Building Keyman Core](../../core/docs/BUILDING.md)
## Keyman for Linux

View file

@ -147,7 +147,7 @@ Run `ibus restart` after installing any of them.
Keyman tries to activate the keyboard automatically. If you want to activate
it for a different language, you can do so by following the steps below.
#### GNOME3 (focal and bionic default, also newer Ubuntu versions)
#### GNOME3 (Ubuntu default)
- Click the connection/sound/shutdown section in the top right. Then the tools
icon for Settings.

View file

@ -4,7 +4,7 @@ title: Keyman Minimum Versions
Changes in [minimum-versions.inc.sh](minimum-versions.inc.sh) should manually be propagated to the linked help files below:
## Keyman 18.0
## Keyman 19.0
Target Operating System and Platform Versions

View file

@ -4,7 +4,7 @@ title: Keyman Minimum Versions
Changes in [minimum-versions.inc.sh](minimum-versions.inc.sh) should manually be propagated to the linked help files below:
## Keyman 18.0
## Keyman 19.0
Target Operating System and Platform Versions

View file

@ -4,7 +4,7 @@ title: Keyman for iPhone and iPad Developer Support
## Overview
The Keyman Engine for iPhone and iPad 18.0 SDK is designed to provide
The Keyman Engine for iPhone and iPad 19.0 SDK is designed to provide
advanced international keyboard support to iOS apps.
As a developer, you simply need to use (or subclass) TextView or

View file

@ -1,8 +1,5 @@
---
title: What's New in Keyman 18.0 for iPhone and iPad
title: What's New in Keyman 19.0 for iPhone and iPad
---
Here are some significant changes to Keyman for iPhone and iPad 18.0:
* Minimum supported version of iOS is 13.0.
* Predictive text and on screen keyboard startup performance improvements (#11784, #11264, #11265)
* Keyboard size can now be adjusted to your preference (#12571)
Here are some of the new features we have added to Keyman for iPhone and iPad 19.0:

View file

@ -1,5 +1,5 @@
---
title: Keyman for iPhone and iPad 18.0 Help
title: Keyman for iPhone and iPad 19.0 Help
---
## [About Keyman](about/)

View file

@ -10,7 +10,7 @@ Build-Depends:
debhelper-compat (= 12),
dh-python,
gawk,
gir1.2-webkit2-4.1 | gir1.2-webkit2-4.0,
gir1.2-webkit2-4.1,
ibus,
libevdev-dev,
libgtk-3-dev,
@ -88,7 +88,7 @@ Architecture: all
Depends:
dbus-x11,
dconf-cli,
gir1.2-webkit2-4.1 | gir1.2-webkit2-4.0,
gir1.2-webkit2-4.1,
keyman-engine,
python3-bs4,
python3-fonttools,

View file

@ -66,10 +66,7 @@ override_dh_auto_install:
rm $(CURDIR)/debian/keyman/usr/share/locale/*.po*
# Don't call `build.sh install` - dh_auto_install does some extra smarts
dh_auto_install --sourcedir=linux/keyman-config --buildsystem=pybuild $@
# Unfortunately bash-completion 2.10 (focal) doesn't yet provide dh-sequence-bash-completion,
# which we could add as build-dependency, so we'll have to explicitly call
# dh_bash_completion here instead of using `dh $@ --with-python3 --with bash-completion`
dh_bash-completion -O--buildsystem=pybuild
dh $@ --with-python3 --with bash-completion
dh_python3 -O--buildsystem=pybuild
override_dh_missing:

View file

@ -1,13 +1,5 @@
---
title: What's New in Keyman 18.0 for Linux
title: What's New in Keyman 19.0 for Linux
---
Here are some significant changes to Keyman for Linux 18.0:
- Minimum supported Ubuntu version is now 22.04 Jammy LTS.
- Other supported versions are Ubuntu 24.04 Noble LTS and
Ubuntu 24.10 Oracular. Users that are running an older version of
Ubuntu will have to continue using an older Keyman version.
- Keyman no longer requires a patched version of ibus as Keyman now uses
a system service to manage keystroke order (#11535).
- Added support for simulation of AltGr (right Alt) with Ctrl+Alt (#11852)
Here are some of the new features we have added to Keyman for Linux 19.0:

View file

@ -1,5 +1,5 @@
---
title: Keyman for Linux 18.0 Help
title: Keyman for Linux 19.0 Help
---
Need help using Keyman for Linux? In time, this product documentation will grow and explain frequently asked questions.

View file

@ -649,9 +649,8 @@ _ptr_array_new_from_array(
}
// `g_ptr_array_new_from_null_terminated_array` is only available in GLib 2.76, but we're still
// stuck to 2.64 (Ubuntu 20.04 Focal) and 2.72 (Ubuntu 22.04 Jammy). Therefore we
// copy the implementation here (slightly simplified). Once we're past 2.76 we can use the GLib method
// directly.
// stuck to 2.72 (Ubuntu 22.04 Jammy). Therefore we copy the implementation here (slightly
// simplified). Once we're past 2.76 we can use the GLib method directly.
GPtrArray *
_g_ptr_array_new_from_null_terminated_array(
gpointer *data,

View file

@ -123,22 +123,6 @@ _free_tst_kb_data(add_keyboard_data* kb_data) {
G_DEFINE_AUTOPTR_CLEANUP_FUNC(add_keyboard_data, _free_tst_kb_data)
// Newer glib versions have g_assert_cmpstrv which would allow to do
// g_assert_cmpstrv(result, keyboards);
// but unfortunately Ubuntu 20.04 Focal doesn't have that, so we roll
// our own
void
_kmn_assert_cmpstrv(gchar** result, gchar** expected) {
g_assert_nonnull(result);
g_assert_nonnull(expected);
int i = 0;
for (; result[i] && expected[i]; i++) {
g_assert_cmpstr(result[i], ==, expected[i]);
}
g_assert_null(result[i]);
g_assert_null(expected[i]);
}
//----------------------------------------------------------------------------------------------
void
test_keyman_put_keyboard_options_todconf__invalid() {
@ -526,7 +510,7 @@ test_keyman_set_custom_keyboards__new_key() {
// Verify
g_auto(GStrv) result = _get_tst_kbds_key();
g_assert_nonnull(result);
_kmn_assert_cmpstrv(result, keyboards);
g_assert_cmpstrv(result, keyboards);
// Cleanup
_delete_tst_kbds_key();
@ -546,7 +530,7 @@ test_keyman_set_custom_keyboards__overwrite_key() {
// Verify
g_auto(GStrv) result = _get_tst_kbds_key();
g_assert_nonnull(result);
_kmn_assert_cmpstrv(result, keyboards);
g_assert_cmpstrv(result, keyboards);
// Cleanup
_delete_tst_kbds_key();
@ -565,7 +549,7 @@ test_keyman_set_custom_keyboards__delete_key_NULL() {
g_auto(GStrv) result = _get_tst_kbds_key();
gchar* expected[] = {NULL};
g_assert_nonnull(result);
_kmn_assert_cmpstrv(result, expected);
g_assert_cmpstrv(result, expected);
// Cleanup
_delete_tst_kbds_key();
@ -585,7 +569,7 @@ test_keyman_set_custom_keyboards__delete_key_empty_array() {
// Verify
g_auto(GStrv) result = _get_tst_kbds_key();
g_assert_nonnull(result);
_kmn_assert_cmpstrv(result, keyboards);
g_assert_cmpstrv(result, keyboards);
// Cleanup
_delete_tst_kbds_key();
@ -604,7 +588,7 @@ test_keyman_set_custom_keyboards__invalid_values() {
g_auto(GStrv) result = _get_tst_kbds_key();
g_assert_nonnull(result);
gchar* expected[] = {"fr:/tmp/test/test.kmx", NULL};
_kmn_assert_cmpstrv(result, expected);
g_assert_cmpstrv(result, expected);
// Cleanup
_delete_tst_kbds_key();
@ -622,7 +606,7 @@ test_keyman_get_custom_keyboards__value() {
// Verify
g_assert_nonnull(result);
_kmn_assert_cmpstrv(result, keyboards);
g_assert_cmpstrv(result, keyboards);
// Cleanup
_delete_tst_kbds_key();
@ -640,7 +624,7 @@ test_keyman_get_custom_keyboards__invalid_values() {
// Verify
gchar* expected[] = {"fr:/tmp/test/test.kmx", NULL};
g_assert_nonnull(result);
_kmn_assert_cmpstrv(result, expected);
g_assert_cmpstrv(result, expected);
// Cleanup
_delete_tst_kbds_key();

View file

@ -7,12 +7,7 @@ import urllib.parse
import gi
gi.require_version('Gtk', '3.0')
try:
gi.require_version('WebKit2', '4.1')
except ValueError:
# TODO: Remove once we drop support for Ubuntu 20.04 Focal
gi.require_version('WebKit2', '4.0')
gi.require_version('WebKit2', '4.1')
from gi.repository import Gtk, WebKit2
from keyman_config import KeymanComUrl, _, __releaseversion__, __tier__

View file

@ -15,12 +15,7 @@ import packaging.version
import gi
gi.require_version('Gtk', '3.0')
try:
gi.require_version('WebKit2', '4.1')
except ValueError:
# TODO: Remove once we drop support for Ubuntu 20.04 Focal
gi.require_version('WebKit2', '4.0')
gi.require_version('WebKit2', '4.1')
from gi.repository import Gtk, WebKit2
from keyman_config import _, secure_lookup

View file

@ -8,12 +8,7 @@ from urllib.parse import parse_qsl, urlencode
import gi
gi.require_version('Gtk', '3.0')
try:
gi.require_version('WebKit2', '4.1')
except ValueError:
# TODO: Remove once we drop support for Ubuntu 20.04 Focal
gi.require_version('WebKit2', '4.0')
gi.require_version('WebKit2', '4.1')
from gi.repository import Gtk, WebKit2
from keyman_config import _

View file

@ -7,11 +7,7 @@ import webbrowser
import gi
gi.require_version('Gtk', '3.0')
try:
gi.require_version('WebKit2', '4.1')
except ValueError:
# TODO: Remove once we drop support for Ubuntu 20.04 Focal
gi.require_version('WebKit2', '4.0')
gi.require_version('WebKit2', '4.1')
from gi.repository import Gtk, WebKit2
from keyman_config import _

View file

@ -1,11 +1,5 @@
---
title: What's New in Keyman 18.0 for macOS
title: What's New in Keyman 19.0 for macOS
---
Here are some significant changes to Keyman 18.0 for macOS:
* Minimum supported version of macOS is 10.13 High Sierra.
* Improved handling of Option key and how it relates to Alt key in Keyman keyboards (#12458)
* Keyman keyboards are now stored in the preferred location, `/Library/Application Support`, instead of `/Documents` (#12106)
* Removed 'Use Verbose console Logging' option and use Apple unified logging system instead (#12431)
* Removed 'Always Show OSK' option and automatically remember OSK window state instead (#12355)
Here are some of the new features we have added to Keyman 19.0 for macOS:

View file

@ -1,5 +1,5 @@
---
title: Keyman 18.0 for macOS Help
title: Keyman 19.0 for macOS Help
---
Need help using Keyman for macOS? You'll find everything you need here, including product documentation,

View file

@ -1,4 +1,4 @@
# Required minimum versions as of Keyman 18.0
# Required minimum versions as of Keyman 19.0
#
# This is a list of minimum, maximum, and specific versions of any external
# components or dependencies found in Keyman.

View file

@ -1,8 +1,8 @@
---
title: KeymanWeb 18.0 - The Guide
title: KeymanWeb - The Guide
---
Welcome to the guide for using KeymanWeb 18.0.
Welcome to the guide for using KeymanWeb.
- [Getting Started with Keyman Web](get-started)
- [User Interface Design](user-interface-design)
@ -10,4 +10,4 @@ Welcome to the guide for using KeymanWeb 18.0.
- [Installing Keyboards](adding-keyboards)
- [Additional Examples](examples/)
[Return to the main KeymanWeb 18.0 page](../)
[Return to the main KeymanWeb page](../)

View file

@ -1,27 +1,27 @@
---
title: Keyman Engine for Web 18.0 Developer Help
title: Keyman Engine for Web 19.0 Developer Help
---
Keyman Engine for Web 18.0 is the current version of KeymanWeb and
Keyman Engine for Web 19.0 is the current version of KeymanWeb and
supports touch devices with custom touch-layouts as well as desktop
computer browsers.
[Download](https://keyman.com/developer/keymanweb/)
: Downloading Keyman Engine for Web 18.0
: Downloading Keyman Engine for Web
<!-- -->
[Guide](guide/)
: Keyman Engine for Web 18.0 Guide
: Keyman Engine for Web Guide
<!-- -->
[Reference](reference)
: Keyman Engine for Web 18.0 Developer Reference
: Keyman Engine for Web Developer Reference
<!-- -->
[What's New](whats-new)
: What's new in Keyman Engine for Web 18.0
: What's new in Keyman Engine for Web 19.0
<!-- -->

View file

@ -22,7 +22,7 @@ Read only
### Return Value
`'18.0'` (for KeymanWeb 18.0)
`'19.0'` (for KeymanWeb 19.0)
## Description

View file

@ -1,5 +1,5 @@
---
title: KeymanWeb 18.0 Reference
title: KeymanWeb Reference
---
[KeymanWeb Overview](overview)

View file

@ -1,3 +1,3 @@
---
title: What's New in KeymanWeb 18.0
title: What's New in KeymanWeb 19.0
---

View file

@ -1,13 +1,13 @@
---
title: Keyman Engine for Windows 18.0 API
title: Keyman Engine for Windows API
---
## Introduction
The Keyman Engine for Windows 18.0 API is implemented in COM. It can be
The Keyman Engine for Windows API is implemented in COM. It can be
instantiated with `CreateObject("keymanapi.Keyman")`.
> [!Note]
> [!Note]
> This documentation applies to Keyman Engine for Windows versions 14.0 and up.
## Interface Hierarchy

View file

@ -1,8 +1,8 @@
---
title: Keyman Engine for Windows 18.0
title: Keyman Engine for Windows
---
Keyman Engine for Windows 18.0 gives you the tools to build a customised
Keyman Engine for Windows gives you the tools to build a customised
desktop keyboarding product for Windows.
**Note:** This documentation applies to Keyman Engine for Windows

View file

@ -1,8 +1,8 @@
---
title: What's New in Keyman 18.0 for Windows
title: What's New in Keyman 19.0 for Windows
---
Here are some of the new features we have added to Keyman 18.0 for Windows:
Here are some of the new features we have added to Keyman 19.0 for Windows:
- Minimum supported version of Windows is 10.0
- Updates to Keyman are now applied before Keyman starts for the first time in a session, so Windows no longer needs to be restarted (#10041)

View file

@ -1,5 +1,5 @@
---
title: Keyman for Windows 18.0 Help
title: Keyman for Windows 19.0 Help
---
Need help using Keyman for Windows? You'll find everything you need here, including product documentation,