Skip to content
This repository has been archived by the owner on Mar 13, 2020. It is now read-only.

Commit

Permalink
Merge pull request #2 from strongloop/experimental/setup
Browse files Browse the repository at this point in the history
chore: set up experimental folder and add initial doc
  • Loading branch information
raymondfeng authored May 13, 2019
2 parents 5d620a1 + 887432b commit b145126
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 0 deletions.
82 changes: 82 additions & 0 deletions LABS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
## 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`)).

We divide responsibilities as follows:

- `loopback-next`: the repository to develop and release production-ready
features.

- `loopback-labs`: the repository to develop and release experimental features.

Two-way interactions can happen between `loopback-labs` and `loopback-next`.

1. Keep `loopback-labs` in sync with `loopback-next` for production-ready
features by rebasing against `loopback-next@master`.

2. Graduate experimental features from `loopback-labs` into `loopback-next`.

## Set up local git repository for `loopback-labs`

```sh
git clone [email protected]:strongloop/loopback-labs.git
cd loopback-labs
git remote add next [email protected]:strongloop/loopback-next.git
```

## 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`

Please make sure changes to production packages

## Pull in changes from `loopback-next@master`

```sh
cd loopback-labs
git checkout master
git fetch --all
git rebase next/master
git push --force-with-lease
```

## Rebase the experimental feature branch against master

```
cd loopback-labs
git checkout experimental/feature-1
git fetch --all
git rebase origin/master
git push --force-with-lease
```

## Graduate an experimental feature

### Set up local git repository for `loopback-next`

```sh
cd loopback-next
git remote add labs [email protected]:strongloop/loopback-labs.git
```

### Pull in the experimental feature from `loopback-labs` into `loopback-next`

```sh
cd loopback-next
git checkout -b experimental/feature-1
git fetch --all

// check-pick commits from `labs` into `experimental/feature-1` branch

// Move experimental modules from `experimental` to `packages`

// Create a PR
```
7 changes: 7 additions & 0 deletions experimental/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# experimental

This directory contains experimental packages for LoopBack 4. It serves as the
incubation lab to build features that are not production ready but we would like
to publish to npm as alpha quality releases (using `0.x.y` versioning scheme).
See [LABS.md](../LABS.md) to understand how experimental features are developed,
released, and graduated.
1 change: 1 addition & 0 deletions lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"docs",
"examples/*",
"packages/*",
"experimental/*",
"sandbox/*"
],
"command": {
Expand Down

0 comments on commit b145126

Please sign in to comment.