We've introduced a regression in 6d75a4c6c4 where running
`embark run` breaks due to webserver options not being defined.
The reason this happened is because in the mentioned commit, we're checking given
webserver options with an identity check against `null` and only set dedicated
options, if that condition is true.
E.g.:
```
if (options.runWebserver !== null) {
webServerConfig.enabled = options.runWebserver;
}
```
Unfortunately, due to one of JavaScript design flaws, this condition behaves totally
different when no identity check is done, which causes Embark to break.
Meaning that in JavaScript:
```
undefined != null // false
undefined !== null // true
```
In other words, after the mentioned commit, the condition is true, resulting
in several webserver configurations to be set to `undefined`.
This conflicts at runtime when we compose webserver configurations out of user input
and Embark's defaults here: dc5de7c1b4/lib/core/config.js (L392)
In other words, since webserver config options are already set to `undefined`,
they don't get overridden by our config algorithm.
This commit ensures that webserver config values are not set when their values
are either `null` or `undefined`.
Removed a condition that detects if `mineWhenNeeded === true`. While reaslistically, the `defaultAccount` will only be populated when `mineWhenNeeded` is set, there is no need to check for this when falling back to the blockchain account.
When there is no account/password specified for swarm, there was an error shown in the logs (asking for address/password), and the swarm process would quit.
This PR changes the behaviour so that if a swarm address/password are not specified in the config, it attempts to use the blockchain address/password specified in `config/blockchain > account`. If `config/blockchain > account > address` doesn’t exist, the first account controlled by the node is used (provided by `web3.eth.getAccounts`, along with the password from `config/blockchain > account > password`.
Cargo in fact, bundles up subsequent tasks in to an array, so any tasks that are not immediately run get bundled in to another run later. This helps when lots of changes have been made in a short period of time.
Due to a process being spawned for every pipeline run, concurrency should remain around 3 to keep number of child processes from running away and allowing the CPU to stay on top.
For file changes that do not require a webpack run, ie HTML, the assets will still be copied to the output directory, but webpack will not run (as it’s too slow).
Add persistent automatically loaded history file for repl console
and Embark dashboard.
Default location of the history file is stored in DEFAULT_CMD_HISTORY_PATH
pointing to DAPP_PATH/.embark/cmd_history.
The history is automatically saved and loaded on startup.
test/console: Pass Embark object to constructor.
Update console test to pass Embark object to constructor.
Refs: https://github.com/embark-framework/embark/issues/939
When `mineWhenNeeded` is true (occurs in zero-config) and an account on the node exists, a password is required to be specified `config/blockchain.js > account > password` so that the existing account can be unlocked by geth (the `—unlock` cli option).
Addons
- New chain initialization and genesis management
- Option to choose client to use
- Option to "ping forever" for Geth
- Creation and unlock of accounts at client's start
- Utility to fund accounts with ethers
- Miner settings inside the ethereum client
- Workaround to CORS problem: origin is now http://embark
- Several double callback's checks
Updates
- Boilerplate, templates, configuration files and demo stuff
- Messages and i18n strings
- Tests
Fixes
- Geth client now uses miner.gastarget instead of the deprecated targetGasLimit
- Workaround for shh_version with Parity
Reworks of other PRs into the new code
- Included delayed proxy
- Send ready only when the proxy is started
- Start HTTP and WS proxies individually
- Async setupProxy
- Fixed datadir for GethMiner