Fixes#10889.
This involved a bit more refactoring to help-keyman-com.sh in order to
allow for multiple paths to be uploaded.
I opted _not_ to move the entire Keyman Developer documentation into
this repository, partly because a number of pages are still in PHP
rather than Markdown.
Fixes two things:
* $VERSION_GIT_TAG was being misinterpreted by mkver as
$VERSION + "_GIT_TAG". This has been addressed by making the $VERSION
match the last one in the replaceVersionStrings_Mkver function, and
also have moved to using the newer $VersionGitTag and $Environment
vartiables instead.
* The 'dist' property was being set in sentry-cli sourcemap uploads,
though we never set the dist prop when we initialize sentry.
Fixes#10721.
This arose partly because of the change from release- to release@ in at
17.0.30-alpha (triggered by sentry req). Will require a corresponding
patch to CI script to pass the --from and --to parameters.
Previously we didn't detect that we were building a .deb package on
Launchpad or a Debian server, so we set VERSION_TAG to end in `-local`.
This change now checks the `KEYMAN_PKG_BUILD` environment variable which
will be set during .deb package builds (set in `debian/rules`). The
downside of this solution is that now `-local` also gets omitted if
we build a .deb package on a local dev machine, but that probably doesn't
happen too often, and even less often with modified source code. The
majority of builds where we want `-local` are local builds that get
installed locally, and those cases are covered by this change. And what
is more important is that for release builds we no longer append `-local`.
Fixes#10590.
Cancels existing running or queued test builds on TeamCity when a new
build is started for the same 'branch' (aka branch or PR).
Does not touch release builds or other projects -- only touches
recognized test build configurations.
For some reason with some PR builds we got an incorrect base ref. This
change makes better use of the information that GitHub provides and so
should work around the problem.
When we build a PR on TC we use `pull/ID/head` for the build, not
`pull/ID/merge`, i.e. the tip of the feature branch and not a merge
with the base branch. This means that during the build `pull/ID/merge`
is unknown. This change modifies the trigger to use `pull/ID/head` for
GHA builds as well.
It's still a mystery why `pull/ID/merge` was known to builds in most
cases but failed for some PRs.
This change adds additional checks for the symbols file:
- if a line with a method name gets changed, the package version number
in that line also needs to be updated
- for major API changes (methods renamed or removed) the API version
numbers needs to be incremented
- the API version numbers in the .symbols file and in `CORE_API_VERSION.md`
need to match
* Fixes the path for the increment-version module
* Uses exit code 50 instead of 1 to indicate 'success, but no change',
so that low-value error exit codes as used by node.js don't
indavertently continue the build
`environment.sh` is used only on Mac. This change modifies `build.sh`
to generate this file only when building on Mac. It also excludes
`environment.sh` from the Linux source tarball.
Works around npm/cli#3466 when bundling internal dependencies using the
bundleDependencies package.json property.
This change works in tandem with the npm pack/publish process -- when we
run `developer/src/kmc/build.sh publish` (or `pack`), we end up with
`npm version` stomping on all our package.json files, so the repo is
dirty after this. We need a copy of the top-level package.json before
this stomping happens, in order to get a simple map of the location of
each of our internal dependencies, from the `dependencies` property (it
would be possible to figure this out with a lot more parsing of
our package.json files, but this is simpler).
This means, in future, we should avoid publishing our internal
dependencies such as those under common/ to npm, as they serve no
practical purpose there.
Works around npm/cli#3466 when bundling internal dependencies using the
bundleDependencies package.json property.
This change works in tandem with the npm pack/publish process -- when we
run `developer/src/kmc/build.sh publish` (or `pack`), we end up with
`npm version` stomping on all our package.json files, so the repo is
dirty after this. We need a copy of the top-level package.json before
this stomping happens, in order to get a simple map of the location of
each of our internal dependencies, from the `dependencies` property (it
would be possible to figure this out with a lot more parsing of
our package.json files, but this is simpler).
This means, in future, we should avoid publishing our internal
dependencies such as those under common/ to npm, as they serve no
practical purpose there.
Previously GHA builds always used the "local" environment. This
change now detects test builds as well as release builds and properly
sets the environment.
The npm version command started failing when we updated to node 18.16.0,
and it looks like it is related to the version numbers. This makes the
pack file mangling idempotent and applies it to all package.json files
in the repository.
Enforces -e (abort script on error) and -u (error on unset variable use)
on all scripts that source build-utils.sh. This may result in some
downstream build failures which we'll need to address before merge to
master.