Commit graph

358 commits

Author SHA1 Message Date
Marc Durdin
a53a1593ec feat(common): add v19 sections to KMX+ in Core and Developer
The disp and layr sections have new v19 layouts, to support the Keyman
OSK requirements for epic/embed-osk-in-kmx. This supports writing the
new versions of these sections in Developer and loading them into Core,
doing transformations where necessary so that Core always works with v19
structures after load.

This does not implement the transformations required to support the OSK
APIs; that will be implemented in a follow-up PR. Nor is support for
writing the OSK data from source .kvks and .keyman-touch-layout
supported; this is just the scaffolding for supporting the structures in
the KMX+ data.

Test-bot: skip
2025-11-18 13:55:01 +01:00
Marc Durdin
fc0ff90684 refactor(developer): rename layr.lists to layr.forms
The name `form` better represents the semantic meaning of the
structure, and reduces confusion with the `list` section and other uses
of `list` in KMX+.

Test-bot: skip
2025-11-12 11:29:58 +01:00
Keyman Server
b7c93d9e37
Merge branch 'epic/embed-osk-in-kmx' into auto/A19S15-merge-master-into-embed-osk-in-kmx 2025-11-07 14:06:33 +01:00
Marc Durdin
29b02fb955 docs(windows): visual studio 2022
Build-bot: skip
2025-10-31 07:23:43 +01:00
Marc Durdin
ba411774f6 maint(resources): move NPM package publishing to GitHub Actions
Due to recent changes in NPM package publishing security requirements,
we have to move from TeamCity build to a GitHub Action to publish our
NPM packages, so we can take advantage of trusted publishing. This
change also consolidates and centralizes the npm publishing into
resources/build/ci/npm-publish.sh, which removes a lot of boilerplate
from each of the build.sh scripts, and ensures consistency.

Packages will be `npm pack`ed on PR and test builds, and published in
release builds.

Ref: https://docs.npmjs.com/trusted-publishers
Ref: https://github.blog/changelog/2025-09-29-strengthening-npm-security-important-changes-to-authentication-and-token-management/
Fixes: #14963
Test-bot: skip
Build-bot: release:developer
2025-10-27 16:31:55 +01:00
Keyman Server
87420e15c1
Merge branch 'epic/embed-osk-in-kmx' into chore/A19S14-merge-master-into-embed-osk-in-kmx 2025-10-24 11:14:03 +02:00
Eberhard Beilharz
a666072679
docs(linux): address code review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-10-16 16:38:50 +02:00
Eberhard Beilharz
19c09e8bc3
docs(linux): update packaging documentation 2025-10-15 11:57:02 +02:00
Eberhard Beilharz
152a9122fe
docs(linux): improve documentation for installing km-config
Test-bot: skip
2025-10-15 11:57:01 +02:00
Marc Durdin
fd17bb5f81
Merge pull request #14869 from keymanapp/feat/common/kmx-plus-osk-flag-in-header
feat(common): add KF_KMXPLUSOSK and VERSION_190 to kmx_file.h 🔱
2025-10-13 14:43:54 +02:00
Keyman Server
12cac0ec51
Merge branch 'epic/embed-osk-in-kmx' into chore/A19S13-merge-master-into-embed-osk-in-kmx 2025-10-10 05:04:49 +02:00
Marc Durdin
49846fea2d feat(common): add KF_KMXPLUSOSK and VERSION_190 to kmx_file.h
Add version 19.0 flags and metadata relating to embed-osk-in-kmx to
kmx_file.h and corresponding headers for other languages.

Test-bot: skip
2025-09-30 14:51:40 +02:00
Eberhard Beilharz
167ec33d54
chore(linux): Merge remote-tracking branch 'origin/master' into maint/linux/remotedbgdocker 2025-09-30 08:29:02 +02:00
Marc Durdin
7f1bd711f1 feat(common): Establish epic/embed-osk-in-kmx branch 🔱
Relates-to: #12620
Relates-to: #12610
Relates-to: #12695
Relates-to: #13424
Relates-to: #12741
Relates-to: #9055
Relates-to: #9021
Build-bot: skip
Test-bot: skip
2025-09-29 14:35:28 +02:00
Eberhard Beilharz
db3cd5092d
maint(linux): remove several shellcheck directives and warnings
This change improves our `.shellcheckrc` file so that several directives
are no longer needed and source files are still found. Also remove some
directives that are no longer necessary, either because the changes to
`.shellcheckrc` makes them obsolete, or because the lines changed so
that they no longer contain the problem.

Also remove some shellcheck warnings.

Build-bot: skip
Test-bot: skip
2025-09-23 18:30:16 +02:00
Eberhard Beilharz
23f8c59c07
maint(linux): allow to remote debug integration tests in Docker
This adds a `--remote-debug` option to `resources/docker-images/run.sh`.
If specified the container will expose `localhost:2345` for remote
debugging inside of the container.

This is useful for debugging integration tests in the container.

Build-bot: skip
Test-bot: skip
2025-09-23 18:20:32 +02:00
Darcy Wong
8321294e1e chore(common): Update to Unicode 17.0 2025-09-11 11:28:47 +07:00
Eberhard Beilharz
612cd01743
maint(linux): allow to skip API check
This change adds an option to skip the API checks during a build.
This can be done by adding the trailer `Keyman-Api-Check: skip`
to the PR description.

Fixes: #10454
Test-bot: skip
Keyman-Api-Check: skip
2025-09-05 19:04:23 +02:00
Marc Durdin
7390cc66aa maint(resources): move build trigger scripts into resources/teamcity
This also removes the need to have a test for `-b` parameter in
trigger-test-builds.sh, because the TC scripts calling this can already
factor that in.

Testing script trigger so only do builds of common to verify

Fixes: #14483
Test-bot: skip
Build-bot: skip:all build:common
2025-08-27 07:28:24 +02:00
Marc Durdin
40253fd4eb docs(resources): note on builder-basic vs builder-full
Relates-to: https://github.com/keymanapp/keyman/pull/14449#discussion_r2265813020
Build-bot: skip
Test-bot: skip
2025-08-12 05:46:16 +02:00
Marc Durdin
3c5bcf6c10
Merge pull request #14452 from keymanapp/maint/common/14448-typescript.inc.sh
maint(common): move typescript script functions into typescript.inc.sh 🐸
2025-08-12 10:41:26 +07:00
Marc Durdin
942b06afdd
Merge pull request #14451 from keymanapp/maint/common/14447-node.inc.sh
maint(common): rename and move node-related script functions into node.inc.sh 🐸
2025-08-12 10:41:18 +07:00
Marc Durdin
a81138c62b
Merge pull request #14449 from keymanapp/maint/common/14065-consolidate-builder-scripts
maint(common): consolidate builder scripts 🐸
2025-08-12 10:41:09 +07:00
Marc Durdin
3292c0add7
Merge branch 'docs/resources/14266-clarify-build-bot' into maint/resources/14419-build-sh-style-build-bot 2025-08-07 11:43:17 +07:00
Marc Durdin
4060b60594
Merge branch 'master' into docs/resources/14266-clarify-build-bot 2025-08-07 11:43:02 +07:00
Marc Durdin
e6aa384e07 maint(resources): build.sh-style commands for build-bot
Legacy format will still work, but preferred format is now
`Build-bot: level:platform[,...platform] ...`

Fixes: #14419
Build-bot: build
Test-bot: skip
2025-08-05 19:58:25 +10:00
Marc Durdin
acefdf281a maint(common): move typescript script functions into typescript.inc.sh
Fixes: #14448
Build-bot: build
Test-bot: skip
2025-08-03 07:01:57 +10:00
Marc Durdin
2726050601 maint(common): rename and move node-related script functions into node.inc.sh
Consolidates the node-related script functions into node.inc.sh, as part
of cleaning up the build scripts and making them easier to maintain into
the future.

Fixes: #14447
2025-08-02 13:34:29 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Darcy Wong
1e2b533e61 docs(common): Document minimum version of Chrome 95.0 for Android 2025-07-22 08:51:55 +07:00
Eberhard Beilharz
3b136fcec9
maint(common): consolidate functions to determine OS
- add `builder_is_windows`, `builder_is_macos` and `builder_is_linux`
  functions
- add/move `BUILDER_OS` env variable to `resources/builder.inc.sh`
- use the new functions and env variable

Fixes: #14109
Test-bot: skip
2025-07-09 18:33:09 +02:00
Marc Durdin
2668dfc76d docs(resources): clarify Build-bot usage
Fixes: #14266
2025-07-04 13:01:22 +10:00
Marc Durdin
dde272ac27
Merge branch 'master' into feat/resources/14200-builder-ignore-unknown-for-script-integrations 2025-06-24 06:10:12 +07:00
Marc Durdin
7915793d9e docs(common): clarify when release builds are run
Build-bot: skip
2025-06-24 08:52:05 +10:00
Marc Durdin
8145c017d7 feat(resources): support ignoring unknown options in builder
Fixes: #14200
Test-bot: skip
2025-06-24 07:12:09 +10:00
Marc Durdin
94cdf834df maint(common): polish docs and add tests for build-bot 2025-06-23 05:05:01 +10:00
Marc Durdin
d4fd05f470 docs(common): add build-bot documentation 2025-06-14 07:29:49 +10:00
Eberhard Beilharz
08b31907b5
Update docs/build/linux-ubuntu.md
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-06-03 18:25:34 +02:00
Eberhard Beilharz
ea8eea1cfa
maint(developer): add docker image to build developer node modules
Also update build documentation.

Fixes: #14045
Test-bot: skip
2025-05-27 18:17:16 +02:00
Joshua Horton
bfb97ca0c6 maint(web): upgrade Sentry to 8.55.0
Fixes: KEYMAN-WEB-RX
(It was produced artificially after this PR's changes to validate them.)

Cross-reference with https://github.com/getsentry/sentry-javascript/blob/master/docs/migration/v7-to-v8.md in regard to minimum supported versions.

@keymanapp-test-bot skip
2025-05-22 14:02:16 +07:00
Joshua Horton
2721c74a91 maint: change builder_completion script to a .inc.sh
Fixes: #14004
2025-05-21 11:36:58 +07:00
Joshua Horton
dfad7a4e25 maint: update macOS env setup + documentation
Fixes: #13177

We now need to install sdkmanager through a different Homebrew package /
"cask".  This does get us `sdkmanager`, but it has a new default location
for its Android SDK, while our builds still refer to the old location
under the home directory.  The build script thus needs a bit of tweaking
to force `sdkmanager` to operate based on the location we've previously
referred to.

Additionally, macOS machines typically default to the zsh terminal these
days, so the old profile auto-config doesn't work.  This adds and
documents example profile script that can be used to configure a macOS
dev machine's terminal environment.
2025-05-19 14:24:26 +07:00
Eberhard Beilharz
09da7c0b10
Merge pull request #13892 from keymanapp/maint/common/13885_movefuncs
This change moves the `build_is_ci_*` functions from `resources/build/build-utils-ci.inc.sh` → `resources/builder.inc.sh`.
It also adds documentation for them.

Fixes: #13885 
Fixes: #13886
2025-05-13 09:00:56 +02:00
Darcy Wong
eedfcf2f0e chore: Merge remote-tracking branch 'origin/master' 2025-05-13 07:05:25 +07:00
Eberhard Beilharz
07f38602c8
docs(common): document builder_is_ci_* functions
Fixes: #13886
Test-bot: skip
2025-05-12 18:17:05 +02:00
Eberhard Beilharz
d307051836
Merge pull request #13854 from keymanapp/maint/common/versionvars
Previously the builder scripts defined a readonly `VERSION` environment variable for the Keyman version. That caused problems when another (external) script tried to define a `VERSION` variable. We encountered this problem when trying to move the TC build steps of a configuration into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and renames `VERSION` → `KEYMAN_VERSION` etc. as well as `TIER` → `KEYMAN_TIER`. Unfortunately these variables are used in a lot of places, so this turned out to be a bit of a yak shave.
2025-05-12 08:58:19 +02:00
Eberhard Beilharz
7f12f904eb
maint(common): address code review comments
- remove `builder_is_running_on_ci` function since there already is a
  similar `builder_is_ci_build` function
- use `GITHUB_ACTIONS` environment variable instead of `GITHUB_RUN_ID`
  to detect if we're run be GitHub Actions
2025-05-09 11:39:57 +02:00
Darcy Wong
e061d3e755 docs(android): Update minimum versions docs 2025-05-09 09:43:54 +07:00
Eberhard Beilharz
3634dd1702
maint(common): add three more functions to detect if running on CI
This adds the three additional functions `builder_is_running_on_ci`,
`builder_is_running_on_docker`, and `builder_is_running_on_gha` to be
able to detect if the build is running in a CI or CI-like container
environment.
2025-05-08 17:44:40 +02:00
Eberhard Beilharz
44fb0fe0e9
docs(common): update builder_echo documentation for TC blocks 2025-05-07 18:57:31 +02:00