We're using yarn workspaces to manage dependencies, and lerna 3.x for versioning and other monorepo tasks.
We do a custom build for @flood/element
(packages/element
) to provide more control over the package structure.
Because of that we also use a custom publishing script scripts/publish.sh
There are two main branches, master
and beta
. Pushing to either one automatically increments the versions using semver
(via lerna
)
Builds against beta
increment the version using semver -i prerelease --preid beta
.
0.0.2 => 0.0.3-beta.0
0.0.3.beta.0 => 0.0.3-beta.1
...
Therefore, PRs should be merged into beta
so that they can be tested using a beta version of element
.
To promote beta
to master
:
- freshen local branches
- git checkout beta
- git pull
- git checkout master
- git pull
- merge beta into master
- git merge beta
- git push
- merge master into beta
- git checkout beta
- git merge master
To cut a patch release, commit to master.
Builds against master
increment the version using semver -i patch
.
0.0.2 => 0.0.3
0.0.3.beta.0 => 0.0.3
...
To do a minor or major release:
TODO - probably need to do a manual version bump, or maybe have a commit message keyword.
yarn test
make smoke