build: implement a monorepo with Lerna

TL;DR
=====

`yarn install` in a fresh clone of the repo.

`yarn reboot` when switching branches.

When pulling in these changes, there may be untracked files at the root in
all/some of:

```
.embark/
.nyc_output/
coverage/
dist/
embark-ui/
test_apps/
```

They can be safely deleted since those paths are no longer in use at the root.

Many of the scripts in the top-level `package.json` support Lerna's [filter
options]. For example:

`yarn build --scope embark` build only `packages/embark`.

`yarn build --ignore embark-ui` build everything except `packages/embark-ui`.

Scoping scripts will be more useful when there are more packages in the
monorepo and, for example, `yarn start` doesn't need to be invoked for all of
them while working on just a few of them simultaneously, e.g `embark` and
`embarkjs`.

It's also possible to `cd` into a particular package and run its scripts
directly:

```
cd packages/embark && yarn watch
```

Hot Topics & Questions
======================

What should be done about the [README][embark-readme] for `packages/embark`?
Should the top-level README be duplicated in that package?

Lerna is setup to use [Fixed/Locked mode][fixed-locked], and accordingly
`packages/embark-ui` is set to `4.0.0-beta.0`. The same will be true when
adding embarkjs, swarm-api, etc. to the monorepo. Is this acceptable or do we
want to use [Independent mode][independent]?

Scripts
=======

If a package doesn't have a matching script, `lerna run` skips it
automatically. For example, `packages/embark-ui` doesn't have a `typecheck`
script.

`yarn build`
------------

Runs babel, webpack, etc. according to a package's `build` script.

`yarn build:no-ui` is a shortcut for `yarn build --ignore embark-ui`.

`yarn ci`
---------

Runs a series of scripts relevant in a CI context according to a package's `ci`
script. For `packages/embark` that's `lint typecheck build test package`.

Also runs the `ci` script of the embedded `test_dapps` monorepo.

`yarn clean`
------------

Runs rimraf, etc. according to a package's `clean` script.

`yarn globalize`
----------------

Makes the development embark available on the global PATH, either via
symlink (Linux, macOS) or a shim script (Windows).

`yarn lint`
-----------

Runs eslint, etc. according to a package's `lint` script.

`yarn package`
--------------

Invokes `npm pack` according to a package's `package` script.

`yarn qa`
---------

Very similar to `ci`, runs a series of scripts according to a package's `qa`
script. The big difference between `ci` and `qa` is that at the top-level `qa`
first kicks off `reboot:full`.

There is a `preqa` script ([invoked automatically][npm-scripts]), which is a
bit of a wart. It makes sure that `embark reset` can be run successfully in
`packages/embark/templates/*` when the `reboot` script invokes the `reset`
script.

The `qa` script is invoked by `yarn release` before the latter proceeds to
invoke `lerna publish`.

`yarn reboot`
-------------

Invokes the `reset` script and then does `yarn install`.

The `reboot:full` variant invokes `reset:full` and then does `yarn install`.

`yarn release`
--------------

Works in concert with [lerna publish], which will prompt to verify the version
before proceeding. Use `n` to cancel instead of `ctrl-c` as `lerna publish` has
been seen to occasionally misbehave when not exited cleanly (e.g. creating a
tag when it shouldn't have).

```
yarn release [bump] [--options]
```

* `[bump]` see [`publish` positionals][pub-pos] and [`version`
  positionals][ver-pos]; an exact version can also be specified.
* `--preid` prerelease identifier, e.g. `beta`; when doing a prerelease bump
  will default to whatever identifier is currently in use.
* `--dist-tag` registry distribution tag, defaults to `latest`.
* `--message` commit message format, defaults to `chore(release): %v`.
* `--sign` indicates that the git commit and tag should be signed; not signed
  by default.
* `--release-branch` default is `master`; must match the current branch.
* `--git-remote` default is `origin`.
* `--registry` default is `https://registry.npmjs.org/` per the top-level
  [`lerna.json`][lerna-json].

To release `4.0.0-beta.1` as `embark@next` (assuming version is currently at
`4.0.0-beta.0`) could do:

```
yarn release prerelease --dist-tag next
```

For *test releases* (there is no longer a `--dry-run` option) [verdaccio] and a
filesystem git remote can be used.

Condensend instructions:

```
mkdir -p ~/temp/clones && cd ~/temp/clones
git clone git@github.com:embark-framework/embark.git
cd ~/repos/embark
git remote add FAKEembark ~/temp/clones/embark
```
in another terminal:
```
npm i -g verdaccio && verdaccio
```
in the first terminal:
```
yarn release --git-remote FAKEembark --registry http://localhost:4873/
```

`yarn reset`
------------

Invokes cleaning and resetting steps according to a package's `reset`
script. The big difference between `clean` and `reset` is that `reset` is
intended to delete a package's `node_modules`.

The `reset:full` variant deletes the monorepo's top-level `node_modules` at the
end. That shouldn't be necessary too often, e.g. in day-to-day work when
switching branches, which is why there is `reboot` / `reset` vs. `reboot:full`
/ `reset:full`.

Errors may be seen related to invocation of `embark reset` if embark is not
built, but `reset` will still complete successfully.

`yarn start`
------------

Runs babel, webpack, tsc, etc. (in parallel, in watch mode) according to a
package's `start` script.

`yarn test`
-----------

Run mocha, etc. according to a package's `test` script.

The `test:full` variant runs a series of scripts: `lint typecheck test
test_dapps`.

`yarn test_dapps`
-----------------

Runs the `test` script of the embedded `test_dapps` monorepo.

The `test_dapps:ci` and `test_dapps:qa` variants run the `ci` and `qa` scripts
of the embedded `test_dapps` monorepo, respectively.

`yarn typecheck`
----------------

Runs tsc, etc. according to a package's `typecheck` script.

Notes
=====

`npx` is used in some of the top-level and package scripts to ensure the
scripts can run even if `node_modules` is missing.

[`"nohoist"`][nohoist] specifies a couple of embark packages because
[`restrictPath`][restrictpath] is interfering with access to modules that are
located in a higher-up `node_modules`.

All dependencies in `packages/embark-ui` have been made `devDependencies` since
its production build is self-contained.

`packages/embark`'s existing CHANGELOG's formatting has been slightly adjusted
to match the formatting that Lerna will use going forward (entries in the log
haven't been modified).

Lerna will generate a CHANGELOG at the top-level and in each package. Since
we're transitioning to a monorepo, things may look a little wonky with respect
to old entries in `packages/embark/CHANGELOG.md` and going forward we need to
consider how scoping our commits corresponds to member-packages of the
monorepo.

In `packages/embark`, `test` invokes `scripts/test`, which starts a child
process wherein `process.env.DAPP_PATH` is a temporary path that has all of
`packages/embark/dist/test` copied into it, so that paths to test
helpers/fixtures don't need to be prefixed with `dist/test/` and so that a
`.embark` directory doesn't get written into `packages/embark`.

The `"engines"` specified in top-level and packages' `package.json` reflect a
node and npm pair that match (a source of confusion in the past). The pair was
chosen according to the first post v5 npm that's bundled with node. A
`"runtime"` key/object has been introduced in `packages/embark/package.json`
which is used as the basis for specifying the minimum version of node that can
be used to run embark, and that's what is checked by `bin/embark`.

Some changes have been introduced, e.g. in `lib/core/config` and
`lib/utils/solidity/remapImports` so that it's *not* implicitly assumed that
`process.env.DAPP_PATH` / `fs.dappPath()` are the same as
`process.cwd()`. There are probably several++ places where that assumption is
still in effect, and we should work to identify and correct them.

`embark reset` now deletes `embarkArtifacts/` within a dapp root, and
`embarkArtifacts/` is git-ignored.

`lib/core/env` adds all `node_modules` relative to `process.env.EMBARK_PATH` to
`NODE_PATH` so that embark's modules can be resolved as expected whether
embark's `node_modules` have been deduped or are installed in npm's flat
"global style".

`checkDependencies` has been inlined (see `lib/utils/checkDependencies`) and
slightly modified to support dependencies that have been hoisted into a
higher-up `node_modules`, e.g. as part of a yarn workspace. eslint has been
disabled for that script to avoid more involved changes to it.

`test_apps` is not in `packages/embark`; rather, there is `test_dapps` at the
top-level of the monorepo. `test_dapps` is an embedded monorepo, and its `ci` /
`qa` scripts `npm install` embark from freshly built tarballs of the packages
in the outer monorepo and then use that installation to run `embark test` in
the dapps. This should allow us to rapidly detect breakage related to
auto-bumps in transitive dependencies.

[filter options]: https://github.com/lerna/lerna/tree/master/core/filter-options
[embark-readme]: https://github.com/embark-framework/embark/blob/build/lerna/packages/embark/README.md
[fixed-locked]: https://github.com/lerna/lerna#fixedlocked-mode-default
[independent]: https://github.com/lerna/lerna#independent-mode
[npm-scripts]: https://docs.npmjs.com/misc/scripts
[lerna publish]: https://github.com/lerna/lerna/tree/master/commands/publish
[pub-pos]: https://github.com/lerna/lerna/tree/master/commands/publish#positionals
[ver-pos]: https://github.com/lerna/lerna/tree/master/commands/version#positionals
[lerna-json]: https://github.com/embark-framework/embark/blob/build/lerna/lerna.json#L11
[verdaccio]: https://www.npmjs.com/package/verdaccio
[nohoist]: https://github.com/embark-framework/embark/blob/build/lerna/package.json#L52-L55
[restrictpath]: https://github.com/embark-framework/embark/blob/build/lerna/packages/embark/src/lib/core/fs.js#L9
This commit is contained in:
Michael Bradley, Jr 2019-01-28 12:15:05 -06:00 committed by Michael Bradley
parent 3eeeec31e4
commit 7a93e4b6a7
709 changed files with 17516 additions and 20146 deletions

12
.gitignore vendored
View File

@ -1,11 +1,11 @@
.DS_Store
.idea
.node-xmlhttprequest-sync-*
.tern-port
.vscode
@embark*.tgz
NOTES
TODO
dist
embark-*.tgz
embark*.tgz
lerna-debug.log
node_modules
npm-debug.log*
npm-shrinkwrap.json
@ -13,5 +13,5 @@ package
package-lock.json
yarn-debug.log*
yarn-error.log*
coverage
.nyc_output
yarn.lock
!/yarn.lock

View File

@ -5,18 +5,31 @@ os:
node_js:
- "8"
- "10"
cache: yarn
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.12.3
- export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
cache:
yarn: true
env:
- EMBARK_NO_PREPARE=true
- |
echo installing IPFS
IPFS_VER=0.4.18
pushd "$PWD" &>/dev/null
mkdir -p ~/Downloads && cd ~/Downloads
if [[ "$TRAVIS_OS_NAME" = "linux" ]]; then
URL="https://dist.ipfs.io/go-ipfs/v${IPFS_VER}/go-ipfs_v${IPFS_VER}_linux-amd64.tar.gz"
fi
if [[ "$TRAVIS_OS_NAME" = "osx" ]]; then
URL="https://dist.ipfs.io/go-ipfs/v${IPFS_VER}/go-ipfs_v${IPFS_VER}_darwin-amd64.tar.gz"
fi
curl -O -L "$URL" && unset IPFS_VER URL
tar xzvf go-ipfs* && export PATH="$PWD/go-ipfs:$PATH"
popd &>/dev/null
ipfs init
- |
echo installing Yarn
YARN_VER="1.12.3"
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version "$YARN_VER"
unset YARN_VER
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
- yarn --version
install:
- yarn install
- cd embark-ui && yarn install && cd ..
- npm run check-working-tree
- echo embark installation managed by package.json script 'ci'
script:
- npm run build:node
- npm test
- npm run check-working-tree
- npm run ci

View File

@ -1 +1,2 @@
--*.scripts-prepend-node-path true
--install.check-files true

View File

@ -67,7 +67,7 @@ Before you submit your Pull Request (PR) consider the following guidelines:
```
1. Create your patch, **including appropriate test cases**.
1. Run the test suite, by running `$ npm run fulltest` and ensure that all tests pass.
1. Run the QA suite, by running `$ npm run qa` and ensure that all steps succeed.
1. Commit your changes using a descriptive commit message that follows our
[commit message conventions](#commit). Adherence to these conventions
is necessary because release notes are automatically generated from these messages.

View File

@ -2,22 +2,32 @@ environment:
matrix:
- nodejs_version: "8"
- nodejs_version: "10"
EMBARK_NO_PREPARE: true
cache:
- "%LOCALAPPDATA%\\Yarn"
install:
- ps: Install-Product node $env:nodejs_version
- ps: Start-FileDownload 'https://github.com/yarnpkg/yarn/releases/download/v1.12.3/yarn-1.12.3.msi'
- cmd /c start /wait msiexec.exe /i yarn-1.12.3.msi /quiet /qn /norestart
- rm yarn-1.12.3.msi
- node --version
- npm --version
- ps: |
"installing IPFS"
$IPFS_VER="0.4.18"
pushd
mkdir C:\Downloads | out-null; cd C:\Downloads
Start-FileDownload "https://dist.ipfs.io/go-ipfs/v$($IPFS_VER)/go-ipfs_v$($IPFS_VER)_windows-amd64.zip"
7z x .\go-ipfs*
Remove-Variable IPFS_VER
$ENV:PATH="C:\Downloads\go-ipfs;$ENV:PATH"
popd
ipfs init
- ps: |
"installing Yarn"
$YARN_VER="1.12.3"
Start-FileDownload "https://github.com/yarnpkg/yarn/releases/download/v$($YARN_VER)/yarn-$($YARN_VER).msi"
cmd /c start /wait msiexec.exe /i "yarn-$($YARN_VER).msi" /quiet /qn /norestart
rm "yarn-$($YARN_VER).msi"
Remove-Variable YARN_VER
- yarn --version
- yarn install
- cd embark-ui && yarn install && cd ..
- npm run check-working-tree
- echo embark installation managed by package.json script 'ci'
test_script:
- npm run build:node
- npm test
- npm run check-working-tree
- npm run ci
build: off

25
embark-ui/.gitignore vendored
View File

@ -1,25 +0,0 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# lock files
npm-shrinkwrap.json
package-lock.json

View File

@ -1 +0,0 @@
--install.check-files true

File diff suppressed because it is too large Load Diff

20
lerna.json Normal file
View File

@ -0,0 +1,20 @@
{
"command": {
"add": {
"exact": true
},
"publish": {
"ignoreChanges": [
"*.md"
],
"npmClient": "npm",
"registry": "https://registry.npmjs.org/"
},
"run": {
"npmClient": "npm"
}
},
"npmClient": "yarn",
"useWorkspaces": true,
"version": "4.0.0-beta.0"
}

View File

@ -1,232 +1,57 @@
{
"name": "embark",
"version": "4.0.0-beta.0",
"author": "Iuri Matias <iuri.matias@gmail.com>",
"contributors": [],
"description": "Embark is a framework that allows you to easily develop and deploy DApps",
"homepage": "https://embark.status.im/",
"keywords": [
"blockchain",
"dapps",
"ethereum",
"ipfs",
"serverless",
"solc",
"solidity"
],
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"bin": {
"embark": "./bin/embark"
},
"main": "./dist/lib/index.js",
"scripts": {
"babel": "babel",
"babel:node": "npm-run-all babel:node:*",
"babel:node:src": "cross-env BABEL_ENV=node babel src --copy-files --extensions \".js,.ts\" --out-dir dist --source-maps",
"babel:watch": "run-p babel:watch:*",
"babel:watch:src": "npm run babel:node:src -- --verbose --watch",
"build": "npm-run-all build:*",
"build:node": "npm run babel:node",
"build:ui": "cd embark-ui && npm run build",
"check-no-prepare": "node scripts/check-no-prepare.js",
"check-working-tree": "node scripts/check-working-tree.js",
"clean": "npm-run-all clean:*",
"clean:core": "rimraf dist embark-*.tgz package",
"clean:ui": "cd embark-ui && npm run clean",
"eslint": "eslint",
"install:core": "cross-env EMBARK_NO_PREPARE=t yarn install",
"install:ui": "cd embark-ui && yarn install",
"install_all": "npm-run-all install:*",
"lint": "npm-run-all lint:*",
"lint:js": "npm-run-all lint:js:*",
"lint:js:core": "eslint babel.config.js bin/embark scripts/ src/bin/ src/lib/",
"lint:js:ui": "cd embark-ui && npm run lint",
"lint:ts": "tslint -c tslint.json 'src/**/*.ts'",
"prepare": "npm run --silent check-no-prepare && npm-run-all install_all clean build || exit 0",
"prepublishOnly": "npm-run-all test check-working-tree",
"release": "node scripts/release.js",
"start": "run-p start:*",
"start:embark": "run-p start:embark:*",
"start:embark:babel": "npm run babel:watch",
"start:embark:type-check": "npm run type-check:watch",
"start:ui": "cd embark-ui && npm run start",
"test": "npm-run-all lint test:*",
"test:core": "cross-env nyc --reporter=html mocha 'dist/test/**/*.js' --exit --no-timeouts --require source-map-support/register",
"test:test_app": "cross-env DAPP=test_app npm run test_dapp",
"test:contracts_app": "cross-env DAPP=contracts_app npm run test_dapp",
"test_dapp": "cross-env-shell \"cd test_apps/$DAPP && npm install && npm test\"",
"tsc": "tsc",
"tslint": "tslint",
"type-check": "tsc",
"type-check:watch": "npm run type-check -- --watch"
},
"dependencies": {
"@babel/core": "7.1.2",
"@babel/plugin-proposal-class-properties": "7.1.0",
"@babel/plugin-proposal-decorators": "7.1.2",
"@babel/plugin-proposal-object-rest-spread": "7.0.0",
"@babel/plugin-syntax-dynamic-import": "7.0.0",
"@babel/plugin-transform-destructuring": "7.1.3",
"@babel/plugin-transform-flow-strip-types": "7.0.0",
"@babel/plugin-transform-runtime": "7.1.0",
"@babel/preset-env": "7.1.0",
"@babel/preset-react": "7.0.0",
"@babel/preset-typescript": "7.1.0",
"@babel/runtime-corejs2": "7.1.2",
"ajv": "6.5.5",
"ascii-table": "0.0.9",
"async": "2.6.1",
"babel-loader": "8.0.4",
"babel-plugin-macros": "2.4.2",
"babel-plugin-module-resolver": "3.1.1",
"babel-plugin-transform-react-remove-prop-types": "0.4.18",
"bip39": "2.5.0",
"body-parser": "1.18.3",
"check-dependencies": "1.1.0",
"chokidar": "2.0.4",
"clipboardy": "1.2.3",
"clone-deep": "4.0.0",
"colors": "1.3.2",
"commander": "2.18.0",
"css-loader": "1.0.0",
"date-and-time": "0.6.2",
"decompress": "4.2.0",
"deep-equal": "1.0.1",
"ejs": "2.6.1",
"embark-test-contract-0": "0.0.2",
"embarkjs": "0.5.0",
"eth-ens-namehash": "2.0.8",
"ethereumjs-tx": "1.3.7",
"ethereumjs-util": "6.0.0",
"ethereumjs-wallet": "0.6.0",
"express": "4.16.3",
"express-http-proxy": "1.5.0",
"express-ws": "4.0.0",
"file-loader": "2.0.0",
"find-up": "2.1.0",
"flatted": "0.2.3",
"follow-redirects": "1.5.7",
"fs-extra": "7.0.0",
"fuzzy": "0.1.3",
"ganache-cli": "6.2.3",
"glob": "7.1.3",
"globule": "1.2.1",
"handlebars": "4.0.12",
"hard-source-webpack-plugin": "0.12.0",
"helmet": "3.13.0",
"hosted-git-info": "2.7.1",
"http-proxy": "1.17.0",
"http-shutdown": "1.2.0",
"i18n": "0.8.3",
"ipfs-api": "17.2.4",
"istanbul": "0.4.5",
"json-parse-better-errors": "1.0.2",
"live-plugin-manager-git-fix": "0.12.1",
"lodash.clonedeep": "4.5.0",
"merge": "1.2.0",
"mocha": "5.2.0",
"multihashes": "0.4.14",
"neo-blessed": "0.2.0",
"netcat": "1.3.5",
"node-http-proxy-json": "0.1.6",
"node-ipc": "9.1.1",
"node-sass": "4.9.3",
"npmlog": "4.1.2",
"opn": "5.3.0",
"ora": "2.1.0",
"os-locale": "2.1.0",
"parse-json": "4.0.0",
"pkg-up": "2.0.0",
"pretty-ms": "4.0.0",
"promptly": "2.2.0",
"propose": "0.0.5",
"pump": "3.0.0",
"remix-debug-debugtest": "0.2.16",
"remix-tests": "0.1.1",
"request": "2.88.0",
"sass-loader": "7.1.0",
"semver": "5.5.1",
"serve-static": "1.13.2",
"shelljs": "0.5.3",
"simples": "0.8.8",
"solc": "0.5.0",
"solidity-parser-antlr": "0.3.2",
"source-map-support": "0.5.9",
"stream-json": "1.1.3",
"string-replace-async": "1.2.1",
"style-loader": "0.23.1",
"swarm-api": "0.1.2",
"tar": "3.2.1",
"term.js": "0.0.7",
"url-loader": "1.1.2",
"uuid": "3.3.2",
"viz.js": "1.8.2",
"vm2": "3.6.4",
"web3": "1.0.0-beta.37",
"web3-bzz": "1.0.0-beta.37",
"web3-core": "1.0.0-beta.37",
"web3-core-helpers": "1.0.0-beta.37",
"web3-core-method": "1.0.0-beta.37",
"web3-core-promievent": "1.0.0-beta.37",
"web3-core-requestmanager": "1.0.0-beta.37",
"web3-core-subscriptions": "1.0.0-beta.37",
"web3-eth": "1.0.0-beta.37",
"web3-eth-abi": "1.0.0-beta.37",
"web3-eth-accounts": "1.0.0-beta.37",
"web3-eth-contract": "1.0.0-beta.37",
"web3-eth-iban": "1.0.0-beta.37",
"web3-eth-personal": "1.0.0-beta.37",
"web3-net": "1.0.0-beta.37",
"web3-providers-http": "1.0.0-beta.37",
"web3-providers-ipc": "1.0.0-beta.37",
"web3-providers-ws": "1.0.0-beta.37",
"web3-shh": "1.0.0-beta.37",
"web3-utils": "1.0.0-beta.37",
"webpack": "4.19.0",
"window-size": "1.1.1",
"ws": "6.1.2"
},
"devDependencies": {
"@babel/cli": "7.1.2",
"@babel/plugin-proposal-optional-chaining": "7.0.0",
"@types/async": "2.0.50",
"@types/body-parser": "1.17.0",
"@types/cors": "2.8.4",
"@types/express": "4.16.0",
"@types/express-http-proxy": "1.5.0",
"@types/express-ws": "3.0.0",
"@types/globule": "1.1.3",
"@types/handlebars": "4.0.39",
"@types/helmet": "0.0.42",
"@types/i18n": "0.8.3",
"@types/node": "10.11.7",
"@types/os-locale": "2.1.0",
"@types/pretty-ms": "3.2.0",
"@types/request": "2.48.1",
"@types/web3": "1.0.12",
"babel-plugin-dynamic-import-node": "2.2.0",
"chai": "4.1.2",
"chalk": "2.4.1",
"cross-env": "5.2.0",
"eslint": "5.7.0",
"eslint-plugin-react": "7.11.1",
"chalk": "2.4.2",
"lerna": "3.10.7",
"minimist": "1.2.0",
"mocha-sinon": "1.2.0",
"npm-run-all": "4.1.5",
"nyc": "13.1.0",
"rimraf": "2.6.2",
"sinon": "4.5.0",
"standard-version": "4.4.0",
"tslint": "5.11.0",
"typescript": "3.1.3"
"rimraf": "2.6.3",
"semver": "5.6.0"
},
"engines": {
"node": ">=8.11.3",
"npm": ">666",
"node": ">=8.12.0",
"npm": ">=6.4.1",
"yarn": ">=1.12.3"
},
"name": "root",
"private": true,
"scripts": {
"build": "lerna run --stream build",
"build:no-ui": "npm run build -- --ignore embark-ui",
"ci": "yarn install && npm-run-all cwtree ci:*",
"ci:packages": "npm-run-all ci_ cwtree",
"ci:test_dapps": "npm-run-all test_dapps:ci cwtree",
"ci_": "lerna run --stream ci",
"clean": "npx lerna run --parallel clean",
"cwtree": "node scripts/check-working-tree",
"globalize": "node scripts/globalize",
"lint": "lerna run --parallel lint",
"package": "lerna run --parallel package",
"preqa": "yarn install && npm-run-all cwtree build:no-ui",
"qa": "npm-run-all cwtree reboot:full cwtree qa:*",
"qa:packages": "npm-run-all qa_ cwtree",
"qa:test_dapps": "npm-run-all test_dapps:qa cwtree",
"qa_": "lerna run --stream qa",
"reboot": "npm run reset && yarn install",
"reboot:full": "npm run reset:full && yarn install",
"release": "node scripts/release",
"reset": "npx lerna run --parallel reset",
"reset:full": "npx npm-run-all reset reset:top",
"reset:top": "npx rimraf node_modules",
"start": "lerna run --parallel start",
"test": "lerna run --stream test",
"test:full": "npm-run-all lint typecheck test test_dapps",
"test_dapps": "cd test_dapps && yarn install && npm run test",
"test_dapps:ci": "cd test_dapps && npm run ci",
"test_dapps:qa": "cd test_dapps && npm run qa",
"typecheck": "lerna run --parallel typecheck"
},
"workspaces": {
"packages": [
"packages/*"
],
"nohoist": [
"embark/embark-test-contract-0",
"embark/embark-test-contract-1"
]
}
}

1
packages/embark-ui/.env Normal file
View File

@ -0,0 +1 @@
BROWSER=none

6
packages/embark-ui/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
.env.development.local
.env.local
.env.production.local
.env.test.local
/build
/coverage

View File

@ -1,11 +1,23 @@
.DS_Store
.env
.env.*
.eslintrc
.idea
.npmrc
.storybook
.vscode
.yarnrc
/coverage
@embark*.tgz
CHANGELOG.md
NOTES
TODO
config
embark*.tgz
lerna-debug.log
node_modules
npm-debug.log*
npm-shrinkwrap.json
package
package-lock.json
public
scripts

View File

@ -0,0 +1,3 @@
--*.scripts-prepend-node-path true
--install.check-files true
--install.no-lockfile true

View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2018 iuri matias
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,11 +1,45 @@
{
"name": "embark-ui",
"version": "0.1.0",
"private": true,
"dependencies": {
"version": "4.0.0-beta.0",
"author": "Iuri Matias <iuri.matias@gmail.com>",
"contributors": [],
"description": "Embark is a framework that allows you to easily develop and deploy DApps",
"homepage": "https://embark.status.im/",
"keywords": [
"blockchain",
"dapps",
"ethereum",
"ipfs",
"serverless",
"solc",
"solidity"
],
"license": "MIT",
"repository": "github:embark-framework/embark",
"scripts": {
"build": "node scripts/build.js",
"build-storybook": "build-storybook -s public",
"ci": "npm-run-all lint package",
"clean": "npx rimraf build embark-*.tgz package",
"lint": "eslint src/",
"package": "npm pack",
"qa": "npm-run-all lint build package",
"reset": "npm run clean && npx rimraf node_modules",
"start": "node scripts/start.js",
"storybook": "start-storybook -p 9009 -s public",
"test_": "node scripts/test.js"
},
"devDependencies": {
"@babel/core": "7.1.0",
"@coreui/coreui": "2.1.0",
"@coreui/react": "2.1.0",
"@storybook/addon-actions": "^4.1.6",
"@storybook/addon-info": "4.1.6",
"@storybook/addon-knobs": "4.1.6",
"@storybook/addon-links": "^4.1.6",
"@storybook/addon-options": "4.1.6",
"@storybook/addons": "^4.1.6",
"@storybook/react": "^4.1.6",
"@svgr/webpack": "2.4.1",
"ansi-to-html": "0.6.8",
"autoscroll-react": "3.2.0",
@ -18,7 +52,7 @@
"babel-preset-react-app": "6.1.0",
"bfj": "6.1.1",
"case-sensitive-paths-webpack-plugin": "2.1.2",
"chalk": "2.4.1",
"chalk": "2.4.2",
"classnames": "2.2.6",
"connected-react-router": "4.5.0",
"css-loader": "1.0.0",
@ -35,7 +69,7 @@
"file-loader": "2.0.0",
"font-awesome": "4.7.0",
"fork-ts-checker-webpack-plugin-alt": "0.4.14",
"fs-extra": "7.0.0",
"fs-extra": "7.0.1",
"history": "4.7.2",
"html-webpack-plugin": "4.0.0-alpha.2",
"identity-obj-proxy": "3.0.0",
@ -46,6 +80,7 @@
"mini-css-extract-plugin": "0.4.3",
"monaco-editor": "0.14.3",
"monaco-editor-webpack-plugin": "1.6.0",
"npm-run-all": "4.1.5",
"optimize-css-assets-webpack-plugin": "5.0.1",
"pnp-webpack-plugin": "1.1.0",
"postcss-flexbugs-fixes": "4.1.0",
@ -74,7 +109,7 @@
"redux": "4.0.1",
"redux-saga": "0.16.2",
"resolve": "1.8.1",
"rimraf": "2.6.2",
"rimraf": "2.6.3",
"sass-loader": "7.1.0",
"simple-line-icons": "2.4.1",
"style-loader": "0.23.0",
@ -86,15 +121,6 @@
"webpack-manifest-plugin": "2.0.4",
"workbox-webpack-plugin": "3.6.3"
},
"scripts": {
"build": "node scripts/build.js",
"clean": "rimraf build",
"lint": "eslint src/",
"start": "node scripts/start.js",
"test": "node scripts/test.js",
"storybook": "start-storybook -p 9009 -s public",
"build-storybook": "build-storybook -s public"
},
"eslintConfig": {
"extends": "react-app",
"rules": {
@ -154,17 +180,8 @@
]
},
"engines": {
"node": ">=8.11.3",
"npm": ">666",
"node": ">=8.12.0",
"npm": ">=6.4.1",
"yarn": ">=1.12.3"
},
"devDependencies": {
"@storybook/addon-actions": "^4.1.6",
"@storybook/addon-info": "4.1.6",
"@storybook/addon-knobs": "4.1.6",
"@storybook/addon-links": "^4.1.6",
"@storybook/addon-options": "4.1.6",
"@storybook/addons": "^4.1.6",
"@storybook/react": "^4.1.6"
}
}

View File

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

View File

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 357 B

Some files were not shown because too many files have changed in this diff Show More