Bedrock is a mini-monorepo managed by yarn workspaces and lerna.
To build:
yarn install
yarn build
To test:
yarn test
There are specific yarn scripts to test each module.
- bedrock-client - the UnitTest and Assert libraries used to write tests
- bedrock-server - the bedrock command-line app and grunt task
- bedrock-runner - a web page loaded by bedrock-server to run tests, display progress and report results to the server
- bedrock-common - types and data structures shared by the modules
- bedrock-sample - a sample app for demonstration and testing purposes
Projects would usually include bedrock-client and bedrock-server as devDependencies.
Trunk-based development with semver.
All modules share the same version (managed by lerna
).
DO NOT manually edit the package.json
files. DO NOT manually publish.
Create feature branches named feature/XXXX
where XXXX is a Jira issue key or Github issue number.
Feature branches are merged to master
.
After merging, run yarn lerna version
to choose a new version, then push directly to master
. This will be published by Jenkins.
To add a dependency to the root package: yarn add -W package
To add a dependency to a module, use yarn add @ephox/bedrock-XXX package
.
Add a -D
to the above for devDependencies