chore(resources): Merge branch 'master' into maint/resources/14201_prefixtc

This commit is contained in:
Eberhard Beilharz 2025-07-07 18:41:22 +02:00
commit 19ff2fd0a6
No known key found for this signature in database
GPG key ID: E9140597606020D3
23 changed files with 75 additions and 41 deletions

View file

@ -1,5 +1,34 @@
# Keyman Version History
## 19.0.78 alpha 2025-07-04
* docs(developer): Fix links in gestures guide (#14297)
## 19.0.77 alpha 2025-07-04
* maint(mac): rename `_do_publish` function to `do_publish` to fix release build (#14273)
* maint(ios): remove extra `cd` command from ios release builds (#14272)
* maint(android): remove `--ci` parameter from android builds (#14264)
* refactor(resources): replace shebang for TC include files (#14265)
* fix(core): fix failing `common-test-core.sh` script (#14271)
* maint(common): match OSTYPE correctly on macOS (#14277)
* fix(common): fix triggering builds if no builds to start (#14274)
* maint(common): trigger common builds for resources/teamcity/common changes (#14279)
## 19.0.76 alpha 2025-07-03
* maint(common): move TC configuration for common tests (#14205)
* refactor(common): improve downloads include script (#14253)
* maint(web): move rsync code to shared functions (#14254)
* maint(developer): replace Powershell scripts (#14255)
* maint(windows): move TC configuration for Keyman Windows to scripts (#14186)
* feat(windows): human text message for 413 error (#14055)
* refactor(web): move helper functions to beginning of function (#14252)
* maint(android): add TC build scripts for Keyman for Android (#14222)
* maint(linux): use `tc_rsync_upload` and `write_download_info` functions (#14258)
* maint(ios): add TC build scripts for iOS (#14229)
* maint(mac): add TC build scripts for macOS (#14239)
## 19.0.75 alpha 2025-07-02
* feat(resources): support ignoring unknown options in builder (#14216)

View file

@ -1 +1 @@
19.0.76
19.0.79

View file

@ -39,7 +39,6 @@ builder_describe \
test \
"publish Publishes symbols to Sentry and the APKs to the Play Store." \
"archive Copy release artifacts to upload/ and rsync to downloads.keyman" \
"--ci+ Deprecated build option. Remove in 20.0" \
--upload-sentry+ \
":engine=KMEA Keyman Engine for Android" \
":app=KMAPro Keyman for Android" \

View file

@ -4,11 +4,11 @@ title: Using Gestures in Keyman Developer
Keyman Developer offers **Longpress** keys, **Flicks**, and **Multitaps** for touch keyboard layout. To allow gestures onto your keyboard, go to the Touch layout tab and define the keys as follows:
<img src="../../../images/touch-layout-gestures.jpg" alt="Keyman Developer touch layout gestures" width="70%"/>
<img src="../../../images/touch-keyboard-tutorial/touch-layout-gestures.jpg" alt="Keyman Developer touch layout gestures" width="70%"/>
## Tips
***Flicks** and **long presses** can both be used in a single keyboard. In this scenario, it is recommended to use flicks in only one direction—south (down). Long presses work well alongside this pattern. See, for example, [sil_euro_latin](../../../../keyboard/sil_euro_latin/3.0.3/sil_euro_latin#toc-mobile-keyboard-layout).
***Flicks** and **long presses** can both be used in a single keyboard. In this scenario, it is recommended to use flicks in only one direction—south (down). Long presses work well alongside this pattern. See, for example, [sil_euro_latin](https://help.keyman.com/keyboard/sil_euro_latin/3.0.3/sil_euro_latin#toc-mobile-keyboard-layout).
* Another helpful tip seen in the sil_euro_latin keyboard is using south-flicks on the base and shift layers corresponding to the numeric/symbol layer, this aids in both memorization and discovery.
* **Flicks** in multiple directions are possible, but currently Keyman does not support hints for multiple directions, so they are not very discoverable.
* **Long presses** are more discoverable, but **flicks** are faster. We suggest using south flicks along with long presses, and including the flick output in the long press for maximum discoverability and optimum ergonomics.
@ -22,5 +22,5 @@ Keyman Developer offers **Longpress** keys, **Flicks**, and **Multitaps** for to
## See also
* The [Winchus keyboard](../../../../keyboard/winchus/1.4/winchus#guia-rapida-celular)
* The [GFF Amharic keyboard](../../../../keyboard/gff_amharic/3.2.1/gff_amharic#toc-using-this-keyboard)
* The [Winchus keyboard](https://help.keyman.com/keyboard/winchus/1.4/winchus#guia-rapida-celular)
* The [GFF Amharic keyboard](https://help.keyman.com/keyboard/gff_amharic/3.2.1/gff_amharic#toc-using-this-keyboard)

View file

@ -259,7 +259,7 @@ fi
# Start test builds as required
#
if (( ${#build_platforms[@]} > 0)); then
if [[ ! -z ${build_platforms:-} ]] && (( ${#build_platforms[@]:-0} > 0)); then
builder_echo heading "Start test builds"
triggerTestBuilds build_platforms $PRNUM
else

View file

@ -38,15 +38,23 @@ available_platforms_regex=`echo "${available_platforms[@]}" | sed 's/ /|/g'`
# We also allow 'common' and 'core' platforms for Build-bot: commands
readonly available_platforms_regex="$available_platforms_regex|common|core"
# the base folder for each pattern does not need to be included, nor oem folders
# e.g. android='common/models|common/predictive-text'
# will expand into android='^(android|(oem/[^/]+/android)|common/models|common/predictive-text)'
# the base folder for each pattern does not need to be included, nor oem
# folders, nor resources/teamcity folders
#
# e.g. watch_android='web|comon/web' will expand to cover:
# android
# oem/*/android
# web
# common/web
# resources/teamcity/android
# resources/teamcity/includes
watch_android='web|common/models|common/predictive-text|common/web'
watch_ios='web|common/models|common/predictive-text|common/web'
watch_android='web|common/web'
watch_ios='web|common/web'
watch_linux='core|common/test/keyboards/baseline'
watch_mac='core'
watch_web='common/models|common/predictive-text|common/web|core'
watch_web='common/web|core'
watch_windows='common|core|web'
watch_developer='common|core|web'
@ -55,10 +63,10 @@ watch_developer='common|core|web'
watch_common_web='common/web'
# Currently, we run web tests on all three of our build platforms, to ensure
# that they work in all our environments. So we need to include common/web in
# the matches for these
watch_common_windows='common/windows|common/web'
watch_common_mac='common/mac|common/web'
watch_common_linux='common/linux|common/web'
# the matches for these, as well as resources/teamcity/common
watch_common_windows='common/windows|common/web|resources/teamcity/common'
watch_common_mac='common/mac|common/web|resources/teamcity/common'
watch_common_linux='common/linux|common/web|resources/teamcity/common'
#
# Available build configurations and VCS identifiers; identifiers are somewhat inconsistent due

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
android_clean_action() {
@ -11,8 +11,9 @@ android_clean_action() {
android_build_action() {
builder_echo start "build" "Building Keyman for Android"
local TARGETS="$1"
local ARGS="$2"
# REVIEW: is it deliberate that we `configure` all targets but only `build,test` `$TARGETS`?
"${KEYMAN_ROOT}/android/build.sh" configure build,test:"${TARGETS}" --debug --ci
"${KEYMAN_ROOT}/android/build.sh" configure build,test:"${TARGETS}" ${ARGS}
builder_echo end "build" success "Finished building Keyman for Android"
}

View file

@ -120,10 +120,10 @@ fi
if builder_has_action all; then
android_clean_action
android_build_action "${TARGETS}"
android_build_action "${TARGETS}" --release
do_publish
else
builder_run_action clean android_clean_action
builder_run_action build android_build_action "${TARGETS}"
builder_run_action build android_build_action "${TARGETS}" --release
builder_run_action publish do_publish
fi

View file

@ -31,7 +31,7 @@ cd "${KEYMAN_ROOT}/android"
function do_build() {
"${KEYMAN_ROOT}/android/build.sh" \
configure,build:engine,sample1,sample2,keyboardharness \
--debug --ci
--debug
}
if builder_has_action all; then

View file

@ -38,8 +38,8 @@ fi
if builder_has_action all; then
android_clean_action
android_build_action "${TARGETS}"
android_build_action "${TARGETS}" --debug
else
builder_run_action clean android_clean_action
builder_run_action build android_build_action "${TARGETS}"
builder_run_action build android_build_action "${TARGETS}" --debug
fi

View file

@ -25,19 +25,16 @@ builder_parse "$@"
if is_ubuntu; then
ARCH=arch
elif is_windows; then
ARCH=x86
ARCH=win
elif is_macos; then
ARCH=mac
else
builder_echo error "Unknown architecture"
return 1
exit 1
fi
function do_all() {
"${KEYMAN_ROOT}/core/build.sh" configure,build,test:${ARCH}
if is_windows; then
"${KEYMAN_ROOT}/core/build.sh" configure,build,test:x64
fi
}
builder_run_action all do_all

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
developer_install_dependencies_on_linux_action() {

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
# shellcheck disable=SC2154

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
# Returns 0 if we're running on Ubuntu.
@ -22,7 +22,7 @@ is_windows() {
# Returns 0 if we're running on macOS.
is_macos() {
if [[ "${OSTYPE:-}" == "darwin" ]]; then
if [[ "${OSTYPE:-}" == darwin* ]]; then
return 0
else
return 1

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
#
# Shared functions for any builds that run on Linux agents,

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
#
# Shared functions for any builds that run on Mac agents

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
#
# Shared functions for any builds that run on Windows agents

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
ios_build() {

View file

@ -203,7 +203,6 @@ function __do_upload_to_fastlane() {
export PILOT_GROUPS="Alpha"
fi
cd "upload/${KEYMAN_VERSION}"
command -v fastlane
# shellcheck disable=SC2154
fastlane pilot upload \

View file

@ -69,7 +69,7 @@ function _build_publish() {
builder_echo end success "publish" "Finished publishing Keyman for macOS"
}
function _do_publish() {
function do_publish() {
_build_publish
_publish_to_downloads_keyman_com
tc_upload_help "Keyman for macOS" mac

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
macos_clean_action() {

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
web_install_dependencies_on_linux_action() {

View file

@ -1,3 +1,4 @@
# shellcheck shell=bash
# Keyman is copyright (C) SIL Global. MIT License.
windows_build_action() {