Commit Graph

42 Commits

Author SHA1 Message Date
Iuri Matias 958e93ef10 chore(@embark): move react-scripts to embark-ui 2018-12-07 21:47:18 -05:00
Michael Bradley, Jr f10e0258cb build: introduce a `prepare` script in embark's package.json
**TL;DR**

These changes affect workflow with yarn. To prevent embark's `prepare` script
from running undesirably:

- If node_modules is in place and you're reinstalling after switching branches:

```
yarn run install_all
```

- If node_modules is missing (fresh clone or deleted):

```
EMBARK_NO_PREPARE=t yarn install && yarn run install_all
```

It's not recommended to set `EMBARK_NO_PREPARE` in your environment (e.g. in
`.bashrc`) since that would interfere with embark's `release` script if/when
you run it.

-----------------

**1.** Specify embark's build-related steps in the `prepare` script of
  package.json.

When embark is installed directly from GitHub the `prepare` script results in a
"pre install" phase (handled automatically by npm/yarn) that fetches
devDependencies, builds embark (including embark-ui), packs a tarball with the
same steps (minus testing and tree-checking) as would happen during an embark
release, and finally does a production install from that tarball.

Important point: installs from GitHub must be performed with yarn; they're no
longer possible with npm since during the "pre install" phase npm will honor
embark's `.npmrc` and `"engines"` settings.

The following will work correctly after this commit is merged:

```
yarn [global] add git+https://github.com/embark-framework/embark.git
```

Use of "hosted git" shortcuts (e.g. `embark-framework/embark#bracnh`) won't
work correctly because yarn doesn't fully support them. See:
https://github.com/yarnpkg/yarn/issues/5235.

It's important to use `git+https` urls. Following a succesful install with
`git+https` it is possible to use a "hosted git" shortcut or `https` url, but
that's owing to a subtle and unreliable interaction between yarn's cache and
yarn's logic for installing from a url/shortcut.

**2.** Adjust the npm configs (`.npmrc`) for embark/-ui so that `yarn run [cmd]
  [--opt]` can be used in place of `npm run [cmd] -- [--opt]`.

Either way is okay for running scripts, they're equivalent, but note the
requirement to use `--` before specifying command options with `npm run`.

**3.** Introduce yarn configs (`.yarnrc`) for embark/-ui and include the
  `check-files` directive.

H/t to @alaibe for the recommendation.

**4.** Ignore embark's `dist/typings` and `scripts` directories when packing a
  tarball.

**5.** Refactor embark/-ui's npm-scripts in relation to the `prepare` script,
  and make other small improvements.

Notably, if the environment variable `EMBARK_NO_PREPARE` is truthy (from JS
perspective) then embark's `prepare` script will exit early. This prevents
`install_all` and `prepare` from getting stuck in a loop (`install:core` uses
cross-env to set `EMBARK_NO_PREPARE`) and provides a mechanism for users to
skip the `prepare` script when doing a fresh install:

```
EMBARK_NO_PREPARE=t yarn install
```

**6.** Give `.js` extensions to node scripts in embark's `scripts/`, remove the
  shebang lines, and have npm-scripts explicitly invoke them with node.

This arrangement works for all platforms: Linux, macOS, and Windows.

**7.** Adjust travis and appveyor configs.

Since at present there aren't any tests or other CI steps that make use of
embark-ui's production build, set `EMBARK_NO_PREPARE` in the CI environments
and invoke `build:node` directly.

Check the working tree after `yarn install` for embark/-ui. This detects
situations where changes should have been committed to `yarn.lock` but were
not. Check the working tree again at the end to detect situations where ignore
files should have been adjusted but were not. Both checks could also detect
other surprising behavior that needs to be investigated. Any time the working
tree is not clean (there are untracked files or changes) CI will fail.

Drop CI runs for node 8.11.3 because that version ships with an older npm that
results in unstaged changes to the test apps' `package-lock.json` files,
causing the working tree check to fail at the end of the CI run. A simple
workaround isn't apparent, but the matter can be revisited.

**8.** Refactor embark's `release` script in light of the `prepare` script.

Notably, do the push step only after `npm publish` completes successfully. This
allows embark's `prepare` and `prepublishOnly` scripts to detect problems
before a commit and tag are pushed to GitHub, avoiding a need to rebase/revert
the remote release branch; the local branch will still need to have a commit
dropped and tag deleted before rerunning the `release` script.

Prompt the user if the `release` script is not being run in `--dry-run` mode.

Provide additional visual indicators of `--dry-run` mode.

Force the user to supply `--repo-branch [branch]` if the intention is to
release from a branch other than `master`.
2018-12-03 16:24:10 -06:00
Michael Bradley, Jr 53191447f5 build: use yarn for reproducible builds and CI
yarn.lock files are generated for embark and embark-ui, and their package.json
files and other npm related files are updated to support and require using yarn
for development of embark itself and for embark's CI.
2018-11-20 09:25:42 -06:00
Michael Bradley, Jr 9cd50c2031 build: remove and disable npm lock files, rely on pinned dev/deps
Buggy behavior related to npm lock files makes the goal of reproducible builds
and hassle-free automated releases nearly impossible to achieve at
present. With npm's lock files disabled we rely on pinned dependencies (exact
versions only in the package.json files of embark and embark-ui) for a
hopefully good result. This is an experiment while the project is in an alpha
release phase, and if problems are experienced we can return to using
npm-shrinkwrap.json / package-lock.json, or we can investigate a transition to
the yarn package manager, for ourselves and possibly for our users too.
2018-11-20 09:25:42 -06:00
Anthony Laibe 192e6e112a chore(embark-ui): upgrade embark-ui to latest and greatest CRA 2018-11-13 10:55:35 +00:00
Jonathan Rainville 1030607813 feat(cockpit): make editor resizable 2018-11-08 15:17:41 -05:00
Anthony Laibe 5c19dcf672 Add linter to embark-ui 2018-10-28 10:13:09 +01:00
Anthony Laibe 8ae6c6c154 Add icons to file tree 2018-10-25 08:06:37 +01:00
Jonathan Rainville ab77cc012e
conflict in index.css 2018-10-23 11:12:52 +02:00
Anthony Laibe a1c33a23a2
Remove tabler-react 2018-10-23 11:12:49 +02:00
Anthony Laibe 2c74c2aa30
Add identicon 2018-10-23 11:12:48 +02:00
Anthony Laibe a4d4278dc9
Adding option to switch deployment pipeline 2018-10-23 11:12:47 +02:00
Iuri Matias b06d224883
fix services & processes; improve UI 2018-10-23 11:11:58 +02:00
Iuri Matias b126871a95
first stab at getting nice json output in the logs 2018-10-23 11:02:53 +02:00
Jonathan Rainville 639ede7b77
conflict in package json 2018-10-23 11:02:52 +02:00
Jonathan Rainville 2edbef81e4
conflict in constants 2018-10-23 11:02:09 +02:00
Jonathan Rainville 7c910a571d
add base theme switcher that uses the component state 2018-10-23 11:02:08 +02:00
Jonathan Rainville 21cd0a71e4
final touch on the dark theme 2018-10-23 11:02:07 +02:00
Jonathan Rainville 12b3411ee2
change colors and add command to process scss 2018-10-23 11:01:11 +02:00
Andre Medeiros 428f591330
Don't send token in request body.
Instead, we want to hash a header to sign a request with a client nonce,
http method and URL. This is a first step towards protecting the backend
against eavesdropping.

Please note that this will still be susceptible to replay attacks.
2018-10-23 11:01:11 +02:00
Iuri Matias 2209aab934
switch to type ahead input box 2018-10-23 10:59:19 +02:00
Anthony Laibe f5ac131d93
Add new theme to utils 2018-10-23 10:50:40 +02:00
Anthony Laibe 0e872c99e6
Update layout with new theme 2018-10-23 10:50:38 +02:00
Anthony Laibe fe51abc2bb
Eject react-scripts and implement our own
react-monaco-editor
2018-10-23 10:50:03 +02:00
Anthony Laibe 801514c52b
Use tree view for abi display 2018-10-23 10:47:24 +02:00
Anthony Laibe 0e49165967
Add monaco editor 2018-10-23 10:42:01 +02:00
Pascal Precht 23bd9ce004
Introduce proof of concept utils tab with ether converter 2018-10-23 10:42:01 +02:00
Anthony Laibe 0c7e934269
Fix npm run build
In order to fix this issue:
https://github.com/facebook/create-react-app/issues/3734

Switch from 'query-string' to 'qs'
2018-10-23 10:42:01 +02:00
Jonathan Rainville faf09b7d39
use local cache to store the token 2018-10-23 10:41:23 +02:00
Jonathan Rainville 46e647bba4
add autoscroll package json 2018-10-23 10:41:22 +02:00
Jonathan Rainville 426f71fd98
convert ansi colors to spans 2018-10-23 10:41:21 +02:00
Jonathan Rainville 452cb3a580
copy to clipboard gasPrice 2018-10-23 10:38:12 +02:00
Anthony Laibe b945b87d4d
File explorer 2018-10-23 10:38:11 +02:00
emizzle 6207023bec
Refactor logic to FiddleContainer
Refactored fiddle logic to be contained in the `FiddleContainer` and the components as purely presentational.

Added scroll from summary to errors/warnings/fatal/deployed cards.

Added fatal error support (ie network error in api)

Removed `lodash`
2018-10-23 10:37:00 +02:00
emizzle 4d195657dd
Added loading entities
Moved functionality out of FiddleDeployButton component

Added loading entities (WIP) to separate loading messages
2018-10-23 10:36:57 +02:00
emizzle 8caa478968
Annotations, click to error, UI improvements
Compiler annotations added to editor gutter for errors and warnings

Clicking an error now scrolls editor to offending line and scrolls page to the top of the editor

Added Compiling… loader.
2018-10-23 10:31:35 +02:00
emizzle 12faeb7866
Swapped editor to Ace 2018-10-23 10:31:34 +02:00
Anthony Laibe 5731f7e1df
Add processes to home 2018-10-23 10:26:57 +02:00
Anthony Laibe b00ce3c9fa
Adding blocks explorer 2018-10-23 10:23:45 +02:00
Anthony Laibe 2a4e64a05b
Add tabler layout 2018-10-23 10:23:43 +02:00
Anthony Laibe e607d10edc
Adding Fetch Account UI 2018-10-23 10:22:38 +02:00
Anthony Laibe 8d8d3db316
Adding embark ui 2018-10-23 10:22:37 +02:00