Commit graph

561 commits

Author SHA1 Message Date
Marc Durdin
9a01ac166d chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-12-01 16:17:21 +07:00
Marc Durdin
cd8825d504
Merge pull request #12736 from keymanapp/refactor/developer/unify_test_action
refactor(developer): unify test action
2024-12-01 00:14:11 +01:00
Marc Durdin
5d06465388
docs(common): add builder_do_typescript_tests docs 2024-11-29 02:46:05 +01:00
Eberhard Beilharz
ddb6631d2a
chore(common): improve offline builds
`nvm install` will fail if trying to build while offline. This
change tries to use the required node version first and if that
fails installs and then uses it.
2024-11-28 11:45:26 +01:00
Marc Durdin
8c4a835354 chore(common): define NDEBUG for release builds to disable assertions on all platforms 2024-11-28 09:41:14 +07:00
Marc Durdin
18d00c7701 fix(core): use NDEBUG flag to disable assertions in release build for VC++
This disables assertions in release builds in Windows only. Other
platforms may have different outcomes.

Fixes: #12619
2024-11-27 15:34:34 +07:00
Marc Durdin
a4cf30d0c2
Merge pull request #12631 from keymanapp/fix/developer/12623-full-test-in-kmcmplib
fix(developer): reconnect `--full-test` in kmcmplib build and enable for CI
2024-11-13 03:43:54 +01:00
Marc Durdin
e27ebd1f84
Merge pull request #12642 from keymanapp/chore/core/move-api-docs-in
chore(core): move API docs from help.keyman.com
2024-11-08 02:12:25 +01:00
Marc Durdin
79370ca3a6
Merge pull request #12632 from keymanapp/chore/update-minimum-versions
chore: update minimum versions
2024-11-08 02:11:56 +01:00
Marc Durdin
fbab6eb8cf chore(core): move API docs from help.keyman.com
Reorganizes /core/doc to /core/docs and moves internal files
accordingly.

Depends-on: keymanapp/help.keyman.com#1684
2024-11-07 08:28:33 +07:00
Marc Durdin
25ade0ef9a chore(common): tweak minimum version for Android and fix typo 2024-11-07 07:09:02 +07:00
Marc Durdin
a68ed0d322 chore: update minimum versions 2024-11-06 11:14:59 +07:00
Marc Durdin
f4bd99f935 fix(developer): reconnect --full-test in kmcmplib build and enable for CI
The --full-test parameter in kmcmplib build.sh has not been working.
This PR reconnects the parameter and also enables it by default for CI
test builds (not release builds).

Fixes: #12623
2024-11-06 10:59:29 +07:00
Marc Durdin
c4e305a139 fix(windows): correct engine help source path for upload 2024-11-06 05:40:32 +07:00
Marc Durdin
6c145cb775 refactor(web): move web engine help to app repo
Note: build.sh updated to make sure that test:help build action:target
doesn't also call test.sh by adding `:_all` meta-target.

Note: CI will need a new help-keyman-com.sh build step to deploy web
engine help.

Fixes: #12347
2024-10-31 11:00:06 +07:00
Marc Durdin
81673c6319 refactor(windows): move windows Engine help in-repo
Relates-to: #12347
2024-10-31 10:17:54 +07:00
Marc Durdin
ed1c106c2e refactor(ios): move ios Engine help in-repo
Relates-to: #12347
2024-10-31 10:13:00 +07:00
Marc Durdin
f9008b6d2b refactor(android): move Android Engine help in-repo
Relates-to: #12347
2024-10-31 10:08:17 +07:00
Eberhard Beilharz
4540a501f6
docs(common): mention KEYMAN_USE_NVM in minimum versions doc
Also fix a typo in a comment in a script file.
2024-09-30 16:03:03 +02:00
Marc Durdin
18d31a86c8
Merge branch 'refactor/common/12347-reorg-help' into refactor/developer/12347-move-help-in-repo 2024-09-26 00:47:11 +02:00
Marc Durdin
4b1e137a53 chore(common): Merge branch 'master' into refactor/common/12347-reorg-help 2024-09-25 15:46:02 -07:00
Eberhard Beilharz
389fb4f9ee
chore(common): Allow to build offline
A lot of the `configure` actions rely on node dependencies and so call
`npm install`. Without a internet connection this hangs forever, even
if you had successfully installed the dependencies before and nothing
changed since then. This change adds a `--offline` parameter that passes
`--prefer-offline` to npm, which causes npm to use the cached
dependencies.

Also sets the `MESON_PACKAGE_CACHE_DIR` environment variable so that all
(sub-)projects share the same package cache dir. This will speed up regular
builds a bit (e.g. `developer/src/kmcmplib` and `core` both have `icu4c`
as a dependency), but will also help with offline builds.

`MESON_PACKAGE_CACHE_DIR` requires Meson 1.3, however older Meson
versions ignore this environment variable and simply continue to use a
cache per subproject, so will continue to work (minus offline builds).
2024-09-18 22:40:20 +02:00
Marc Durdin
e376537720 chore(developer): upload help to help.keyman.com 2024-09-16 12:42:21 +07:00
Marc Durdin
0e5fbb225d refactor(common): fixup help path script references
Relates-to: #12347
2024-09-16 06:19:14 +07:00
Darcy Wong
5bfb93e618 chore(common): Update KEYMAN_VERSION_UNICODE to 16.0.0 2024-09-11 09:33:30 +07:00
Marc Durdin
f3461b3307 chore(windows): fix typo in environment.inc.sh
Co-authored-by: 58423624+rc-swag@users.noreply.github.com
2024-08-26 12:59:57 +07:00
Marc Durdin
9a8b6d1279 chore(windows): remove remaining unused Makefiles
Fixes: #12247
2024-08-23 18:12:06 +02:00
Marc Durdin
b0bd95d276 chore(common): allow build agents to automatically select emsdk version
The build agents will now automatically install and activate the
Emscripten version found in minimum-versions.inc.sh when configuring
WASM projects. For developer machines, this behaviour can be enabled by
setting the environment variable `KEYMAN_USE_EMSDK` (recommended).

This will be back-ported to 17.0 so that we can ensure that all builds
use a consistent Emscripten version.
2024-08-21 15:02:18 +02:00
dependabot[bot]
6fad148466
chore(deps): bump semver from 7.5.4 to 7.6.0
Bumps [semver](https://github.com/npm/node-semver) from 7.5.4 to 7.6.0.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.4...v7.6.0)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 11:22:58 +00:00
Marc Durdin
86fd36a713
Merge pull request #12117 from keymanapp/chore/developer/build-ci-linux-mac
chore(developer): start building Developer on linux,mac
2024-08-09 18:57:38 +10:00
Marc Durdin
52288e247b chore(developer): add build triggers for Linux, macOS 2024-08-08 05:25:25 +07:00
Marc Durdin
57d4aeef97 feat(common): add top-level build.sh
This top-level builder script will build as many projects as are
possible to build on the current platform. For example, iOS and macOS
projects can only be built on macOS; Windows and parts of Developer can
only be built on Windows.

Relates-to: #6268
2024-08-07 10:46:39 +07:00
Marc Durdin
67cff9c878 chore(common): sort bash arrays before asserts in unit tests 2024-08-07 10:09:05 +07:00
Marc Durdin
118a947882 chore(common): add support for build target platform exclusions
Add `builder_describe_platform` function to builder.inc.sh, associated
documentation and unit test, and use it in Developer and Common build
scripts.

Relates-to: #11755
2024-08-07 09:25:56 +07:00
Marc Durdin
5abb28e29b chore(common): add data versions to minimum-versions.inc.sh
This adds references to various data sources such as Unicode. At
present, this is informational only, not used by any scripts, but the
intent is that in the future we reference this for any scripted data
updates.
2024-08-06 13:26:39 +07:00
Marc Durdin
86d0224d7a docs(common): minimum versions 2024-08-01 06:20:46 +07:00
Marc Durdin
12ee391895 chore(common): use node v22.5.1 2024-08-01 05:10:41 +07:00
Marc Durdin
fc4df037bb chore(common): use nvm to select version of node for builds
Used by default only on build agents. See docs/build/node.md and
resources/build/_builder_nvm.sh for documentation of this change.

Fixes: #11376
2024-08-01 05:09:08 +07:00
Joshua A. Horton
d07fa7e953 chore(common): eliminate ts-node ref from most subpackages 2024-06-10 10:07:58 +07:00
Joshua A. Horton
e527317d3a fix(common): remove subpackge entries for older TS version 2024-06-10 09:14:03 +07:00
Eberhard Beilharz
0de84b69c1
fix(common): output correct parameter values
Previously with the right number of parameters that take values and the
right order it could happen that a parameter value got replaced by an
action when the script output the parameters. This change fixes this.

Fixes: #11676
2024-06-04 16:34:03 +02:00
Marc Durdin
02595229b2
Merge pull request #11461 from keymanapp/chore/windows/11316-build.sh
chore(windows): move from Makefile to build.sh
2024-05-23 14:23:05 +07:00
Marc Durdin
1e66b6ed0e
Merge pull request #11421 from keymanapp/chore/developer/11317-build.sh
chore(developer): build.sh for developer
2024-05-23 14:22:54 +07:00
Eberhard Beilharz
2dfec17102
chore(linux): Trigger GHA packaging for stable builds
(cherry picked from commit 3b3fef0e96)
2024-05-21 17:04:14 +02:00
Marc Durdin
d43b9316dd fix(windows): use run_in_vs_env to ensure signtool.exe is on path
The build agents use a fixed location for signtool.exe, but this is not
the case for other devs, so we need to grab our VS environment in order
to locate it.
2024-05-21 14:12:44 +07:00
Marc Durdin
8b2070c339 chore(developer): minor cleanup on scripts
Additional shared script resources for Developer and Windows,
refactor of a code signing function, refactor of clean step in build.sh.
2024-05-20 06:35:11 +07:00
Marc Durdin
8b6d6b0618 chore(developer): cleanup on build scripts
A round of cleanup and consistency for Developer build scripts.
2024-05-20 06:35:05 +07:00
Marc Durdin
4e679dcab4 chore(developer): SIGNTIME env var support
Also some more script cleanup and ensure common/core packages are also
published.
2024-05-20 06:35:02 +07:00
Marc Durdin
ee0fc0ce14 chore(developer): cleanup npm publish
Use a new flag `--npm-publish` in conjunction with `publish` action,
so that the default will always be to `npm pack` if the new flag is not
specified. This flag is also guarded in the actual npm publish code to
ensure that it can only run in the appropriate CI alpha/beta/stable
environment, and not in local or test.

This then also removes the separate `pack` action.

Also removes legacy boilerplate from a number of build scripts.
2024-05-20 06:34:57 +07:00
Marc Durdin
fa57d5c674 chore(developer): final work on build.sh for developer
Now builds from a clean repo:

  developer/src/build.sh configure build test publish

* Splits kmbrowserhost into kmdbrowserhost for Developer; this means
  that Developer Browser Host now inherits the Developer settings rather
  than the Keyman for Windows settings, and simplifies distribution and
  management. The only difference between the two is in the startup code
  so this seems like a good split.

* Cleanup of various build scripts and dependencies.
2024-05-20 06:34:53 +07:00