diff --git a/LABS.md b/LABS.md index b0b96a9a..abddfea5 100644 --- a/LABS.md +++ b/LABS.md @@ -1,12 +1,12 @@ -## LoopBack 4 Labs +# LoopBack 4 Labs We created `loopback-labs` monorepo to facilitate development of experimental features without interfering with `loopback-next`. -`loopback-labs` is a logical `fork` of `loopback-next` (github does not allow us -to folk `loopback-next` into the same organization (`strongloop`)). +`loopback-labs` is a logical `fork` of `loopback-next` as github does not allow +us to folk `loopback-next` into the same organization (`strongloop`). -We divide responsibilities as follows: +We divide responsibilities of the two repositories as follows: - `loopback-next`: the repository to develop and release production-ready features. @@ -20,7 +20,13 @@ Two-way interactions can happen between `loopback-labs` and `loopback-next`. 2. Graduate experimental features from `loopback-labs` into `loopback-next`. -## Set up local git repository for `loopback-labs` +![loopback-labs](./loopback-labs.png) + +## Workflow + +### Work on an experimental feature in `@loopback-labs` + +1. Set up local git repository for `loopback-labs` ```sh git clone git@github.com:strongloop/loopback-labs.git @@ -28,17 +34,17 @@ cd loopback-labs git remote add next git@github.com:strongloop/loopback-next.git ``` -## Work on an experimental feature +2. Work on an experimental feature It follows the same process and flow as `loopback-next`: -1. Create a feature branch -2. Make changes in the feature branch -3. Submit a PR against `loopback-labs@master` +- Create a feature branch +- Make changes in the feature branch +- Submit a PR against `loopback-labs@master` Please make sure changes to production packages -## Pull in changes from `loopback-next@master` +3. Pull in changes from `loopback-next@master` ```sh cd loopback-labs @@ -48,7 +54,7 @@ git rebase next/master git push --force-with-lease ``` -## Rebase the experimental feature branch against master +4. Rebase the experimental feature branch against master ``` cd loopback-labs @@ -58,16 +64,16 @@ git rebase origin/master git push --force-with-lease ``` -## Graduate an experimental feature +### Graduate an experimental feature -### Set up local git repository for `loopback-next` +1. Set up local git repository for `loopback-next` ```sh cd loopback-next git remote add labs git@github.com:strongloop/loopback-labs.git ``` -### Pull in the experimental feature from `loopback-labs` into `loopback-next` +2. Pull in the experimental feature from `loopback-labs` into `loopback-next` ```sh cd loopback-next @@ -80,3 +86,8 @@ git fetch --all // Create a PR ``` + +## Questions + +1. Do we merge experimental features into `loopback-labs@master` or keep each of + them isolated in `loopback-labs@labs/` branch? diff --git a/README.md b/README.md index 3d0451ad..d9f61319 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ Experimental features for ## Contributing +Check out [LABS.md](./LABS.md) to understand the workflow to develop +experimental features in `loopback-labs`. + See the following resources to get you started: - [Contributing Guidelines](./docs/CONTRIBUTING.md) diff --git a/loopback-labs.png b/loopback-labs.png new file mode 100644 index 00000000..2de05451 Binary files /dev/null and b/loopback-labs.png differ