This is the common top-level contribution guide for this monorepo. A sub-package may have an additional CONTRIBUTING.md file if needed.
- PNPM >= 9.1.2
- A Long-Term Support version of Node.js
- (optional) commitizen for managing commit messages.
The development branch is the main
branch. It only supports tooling extensions for UI5 Tooling V3. The tooling extensions which also support the older versions of the UI5 Tooling can be found in the V2 branch.
The initial setup is trivial:
- Clone this repo
- Run
pnpm install
This project enforces the [conventional-commits][conventional_commits] commit message formats. The possible commits types prefixes are limited to those defined by [conventional-commit-types][commit_types]. This promotes a clean project history and enabled automatically generating a changelog.
The commit message format will be inspected both on a git pre-commit hook and during the central CI build and will fail the build if issues are found.
Prettier is used for some of the sub-packages to do a proper code formatting.
This project is implemented using plain ECMAScript without any compilation / transpilation steps. Meanwhile, for some packages TypeScript is used (e.g. ui5-middleware-onelogin
). Those packages have to be transpiled using the TypeScript compiler.
There is no consistent testing tooling used for this repository. Some of the sub-packages are using AVA (e.g. ui5-middleware-approuter
or ui5-task-zipper
). Creating tests for your tooling extensions is highly recommended and appreciated.
The UI5 application is using QUnit, OPA5 and [WDIO5][wdio5] tests for validation.
In case of facing issues with the central GitHub actions you can verify the GitHub actions locally. You need to install act. act
requires Docker. To execute e.g. the tests.yml
workflow locally, just run the following command:
act pull_request -W .github/workflows/tests.yml -e .github/workflows/.local-env.json
This monorepo uses Lerna's Independent mode which allows subpackages to have different versions.
Performing a release requires push permissions to the repository.
- Ensure you are on the default branch and synced with origin.
pnpm release:version
- Follow the lerna CLI instructions.
- Track the newly pushed commit with the message (
chore(release): publish
) which triggers theRelease (automatic)
GitHub action until successful completion. - Inspect the newly artifacts published on npmjs.com.
To upgrade the version of the dependencies pnpm upgrade
is used. To execute the command in all packages you need to run the following command:
pnpm -r -L -i update