keymanapp / keymanapp/keyman

chore(common): Consolidate build scripts

Open
#6,268 3 comments 0 reactions 1 assignee Claimed by @mcdurdin View on GitHub
chore common/
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

Action Item from Feb 2022 planning meeting

Create consolidated build scripts and make build script parameters consistent.
This will simplify our CI and be less task-switching load on developers.

**Spec document:** https://docs.google.com/document/d/1xoQaO7ZcICNm2q_C35Cm7Z9TgYq8d2XErSJblVPXM28/edit#

Subprojects

- [x] Android
- [x] #11317
- [x] iOS
- [x] Linux
- [x] MacOS (#11444)
- [x] #11316

Related TODO emerging from #6525:

- [ ] verify_npm_setup and related functions can probably be eliminated (or placed under 'configure').
- [ ] most of the build scripts should be largely eliminated for web.
- [ ] build.sh, tsconfig.json should always be in the module's top-level folder, not in a subfolder such as src (e.g. see input-processor/src, keyboard-processor/src, web/source).

Unrelated from #6525, placed here for now:
- [ ] The embedded vs browser vs node (headless) builds should be tidied up for consistency so that it's obvious what depends on what. This is currently messiest in the predictive-text folder, where the output names diverge from the filenames and the various files are mixed in the same folder (as evidenced by the exclusions listed in each tsconfig.json).
- [ ] other js node_modules imports should be wrapped like es6-shim.
- [ ] /developer build/ vs dist/ paths
- [ ] publish action for common npm modules is currently hosted by [developer/src/kmc/build.sh](https://github.com/keymanapp/keyman/blob/395dfd0e382d49c74f75e0587c8b6e4c21849ee5/developer/src/kmc/build.sh#L99-L109), but should be in a top-level script.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.