@openzeppelin/cli
Version:
Command-line interface for the OpenZeppelin smart contract platform
402 lines (293 loc) • 32.2 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## v2.8.2 - 2020-04-13
### Fixed
- Fixed the text of `oz deploy --help`. ([#1521](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1521))
## v2.8.1 - 2020-04-08
### Fixed
- Fixed a bug preventing usage of `deploy` with contracts from dependencies. ([#1515](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1515))
## v2.8.0 - 2020-03-25
### Added
- Added new `deploy` command for deploying without upgradeability. ([#1376](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1376))
### Changed
- Push only the required contract in `create`. ([#1426](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1426))
## v2.7.0 - 2020-02-10
### Added
- Generate typechain contract wrappers in a typescript project. ([#1285](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1285))
- Add `path` property to `network.js` config file, to be used together with `protocol`, `host`, and `port`. Add `url` shorthand property as well. ([#1386](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1386))
- Support for tuple parameters when calling methods in interactive commands such as `send-tx`, `create`, or `upgrade`. ([#1333](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1333))
- Solidity libraries in a project can now recursively link to other Solidity libraries. ([#1252](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1252))
- Add new `blockTimeout` command-line option that sets [`web3#transactionBlockTimeout`](https://web3js.readthedocs.io/en/v1.2.2/web3-eth.html#transactionblocktimeout). ([#1402](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1402))
- Warn when importing `@openzeppelin/contracts` instead of `@openzeppelin/contracts-ethereum-package`. ([#1335](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1335))
### Changed
- [**breaking**] Remove support for ambiguous Solidity imports relative to the current file not starting with a dot, to prevent corrupted artifacts. Warn when duplicate contract names are found. ([#1411](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1411))
- Use solidity fuzzy-import parser, to speed up nothing-to-compile checks by a 40%, and lazy-load truffle-flattener to decrease CLI startup time. ([#1291](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1291))
- Disable interactivity if stdin is not a terminal. ([#1299](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1299))
### Fixed
- Abort interactive `create` or `upgrade` processes on contract validation errors, such as having a constructor. ([#1382](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1382))
- Load `gas` and `gasPrice` from network configuration file. ([#1345](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1345))
- Command-line option `timeout` now properly sets [`web3#transactionPollingTimeout`](https://web3js.readthedocs.io/en/v1.2.2/web3-eth.html#transactionpollingtimeout). ([#1402](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1402))
- Sort commands in alphabetical order for `--help`. ([#1321](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1321))
- Prevent corruption of compiled artifacts if there are multiple contracts with the same name. ([#1296](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1296))
- Ensure relative paths are stored in project configuration file. ([#1384](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1384))
- Improve error message if no networks are set in `network.js` configuration file. ([#1394](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1394))
### Internal
- Use the OpenZeppelin CLI to compile and test contracts in the OpenZeppelin CLI. ([#1294](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1294), [#1288](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1288))
## v2.6.0 - 2019-11-07
### Added
- Opt-in to report anonymous usage statistics ([#1226](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1226), [#1266](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1266), [#1275](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1275))
### Fixed
- Avoid showing variable name on prompt message if not available ([#1224](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1224))
- Improve create and upgrade commands wording in prompts ([#1201](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1201)) (thanks @melnikaite!)
- Set default EVM version depending on solc version ([#1208](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1208)) (thanks @melnikaite!)
- Set expected default values for compiler ([#1202](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1202)) (thanks @melnikaite!)
### Changed
- Bump `web3` version to `web3@1.2.2`. ([#1277](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1277))
### Internal
- Migrate project from npm to yarn, using yarn workspaces together with lerna ([#1241](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1241))
## v2.5.3 - 2019-08-18
### Added
- Allow specifying a branch on the `unpack` command, using the syntax `openzeppelin unpack org/repo#branch`. ([#1190](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1190))
- Add `gsn` shortname for `openzeppelin/starter-kit-gsn`. ([#1196](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1196))
### Changed
- Bump `web3` version to `web3@1.2.1`. ([#1192](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1192))
### Fixed
- Increase stdio buffer for the post unpack starter kit hook. ([#1191](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1191))
## v2.5.2 - 2019-07-26
### Added
- New `openzeppelin accounts` command that lists available accounts on a network connection. ([#1130](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1130))
### Changed
- Migrated from `web3@1.0.0-beta.37` to the stable `web3@1.2.0` release. ([#1152](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1152))
### Fixed
- JSON artifacts generated by `openzeppelin compile` are now formatted. ([#1161](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1161))
- Name and version of the project are now validated in the `oz init` interactive command. ([#1148](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1148))
## v2.5.1 - 2019-07-22
### Changed
- `link` interactive command now installs an Ethereum Package with a caret by default. ([#1146](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1146))
### Fixed
- Fixes error `Could not find dependency` when `link`ing Ethereum Packages published within an npm organization. ([#1138](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1138))
- Removed incorrect prompt to deploy dependencies to the current network when they were already deployed. ([#1141](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1141))
- `link` interactive command works properly on Windows. ([#1146](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1146))
## v2.5.0 - 2019-07-19
### Changed
- Rename `zos` package to `@openzeppelin/cli`. ([#1077](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1077))
- Rename `zos` command to `openzeppelin`. ([#1074](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1074), [#1128](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1128))
- Rename Project, Network, Session and Lock files. ([#1040](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1040), [#1091](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1091))
- Rename ZeppelinOS/zos text references. ([#1077](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1077), [#1011](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1111), [#1129](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1129))
- Add support to new `Zepkit` kits in `unpack` command. ([#1078](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1078))
- Rename compiler manager to `openzeppelin`. ([#1097](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1097))
### Fixed
- Use Array.isArray instead of deprecated `lodash.isarray`. ([#1127](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1127))
- Fix `set-admin` description format. ([#1117](https://github.com/OpenZeppelin/openzeppelin-sdk/pull/1117))
## v2.4.2 - 2019-07-18
### Fixed
- The `-f` flag was used for specifying the `--from` option in several commands, and at the same time for setting the `--force` toggle in `push` and `set-admin`; now it is only used for `--from`, and `--force` only accepts the long form. ([#1123](https://github.com/zeppelinos/zos/pull/1123)) (thanks @pcowgill for the report!)
- Preserve truffle deployment info stored in contract artifacts when compiling. ([#1100](https://github.com/zeppelinos/zos/pull/1100))
- Linked EVM packages lookup works properly when dependencies are hoisted. ([#1110](https://github.com/zeppelinos/zos/pull/1110)) (thanks @PaulRBerg for the report!)
- Do not throw an error if the `contracts` local folder is missing. ([#1107](https://github.com/zeppelinos/zos/pull/1107))
- Properly detect when an Ethereum Package is on an older version for pushing it to the local network for development. ([#1119](https://github.com/zeppelinos/zos/pull/1119))
- Store proxy admin address for the first proxy created in a network. ([#1124](https://github.com/zeppelinos/zos/pull/1124))
## v2.4.1 - 2019-07-02
### Fixed
- `zos compile` now works properly on Windows. ([#1066](https://github.com/zeppelinos/zos/pull/1066))
- Spinners are now shown properly on Windows. ([#1067](https://github.com/zeppelinos/zos/pull/1067))
- Installation issues with yarn now fixed. ([#1059](https://github.com/zeppelinos/zos/pull/1059))
## v2.4.0 - 2019-06-24
### Added
- New `zos compile` command that uses solc directly to compile your contracts, generating artifacts with a format compatible to truffle's. The compiler version and optimizer settings can be controlled via command flags that are persisted on the `zos.json` file. The CLI will now default to this compiler when running commands that require compilation (like `add` or `create`), unless there are no compiler settings on `zos.json` and there is a `truffle.js` present in the project root, in which case it will rely on `truffle compile` as usual. ([#914](https://github.com/zeppelinos/zos/pull/914), [#940](https://github.com/zeppelinos/zos/pull/940), [#945](https://github.com/zeppelinos/zos/pull/945), [#953](https://github.com/zeppelinos/zos/pull/953), [#956](https://github.com/zeppelinos/zos/pull/956), [#959](https://github.com/zeppelinos/zos/pull/959), [#963](https://github.com/zeppelinos/zos/pull/963))
- New `networks.js` default configuration file for specifying networks connections. This file replaces the truffle config file in specifying the available networks for the CLI, and shares most of its format. A `truffle.js` or `truffle-config.js` can still be used. ([#918](https://github.com/zeppelinos/zos/pull/918), [#949](https://github.com/zeppelinos/zos/pull/949))
- New `zos call` and `zos send-tx` interactive commands for interacting with a contract directly from the command line, by calling a constant method or sending a transaction to a function. ([#848](https://github.com/zeppelinos/zos/pull/848), [#853](https://github.com/zeppelinos/zos/pull/853))
- New `zos balance` and `zos transfer` commands for querying and transferring ETH directly from the command line. The `balance` command additionally supports an `--erc20` flag to query the balance of an ERC20 token instead of ETH. ([#823](https://github.com/zeppelinos/zos/pull/823), [#834](https://github.com/zeppelinos/zos/pull/834))
- Added validations to method arguments in the interactive prompt. ([#1018](https://github.com/zeppelinos/zos/pull/1018))
- [**experimental**] Add minimal proxy support ([EIP 1167](http://eips.ethereum.org/EIPS/eip-1167)) via a `--minimal` flag when running `zos create`. Instances created this way will not be upgradeable, but consume much less gas than their upgradeable counterpart. ([#850](https://github.com/zeppelinos/zos/pull/850))
### Changed
- Reworked all log outputs in the application to be less verbose and more user-friendly. The `--verbose` flag re-enables the previous logging level. ([#915](https://github.com/zeppelinos/zos/pull/915), [#948](https://github.com/zeppelinos/zos/pull/948), [#969](https://github.com/zeppelinos/zos/pull/969), [#988](https://github.com/zeppelinos/zos/pull/988), [#1003](https://github.com/zeppelinos/zos/pull/1003))
- [**breaking**] The `ConfigVariablesInitializer` class of the CLI programmatic interface has been renamed to `ConfigManager`. ([#918](https://github.com/zeppelinos/zos/pull/918/))
- [**breaking**] The `initMethod` and `initArgs` parameter names of the CLI programmatic interface were changed to `methodName` and `methodArgs` respectively. ([#841](https://github.com/zeppelinos/zos/pull/841))
### Fixed
- Do not list contracts already added in interactive prompt when running `zos add`. ([#904](https://github.com/zeppelinos/zos/pull/904))
- Fixed error `Cannot find method forEach of undefined` when two contracts with the same name are present in the project. ([#880](https://github.com/zeppelinos/zos/pull/880))
- Support invoking a method in a contract when there is another method with the same name and number of arguments. ([#1019](https://github.com/zeppelinos/zos/pull/1019))
- Fixed parsing of array, boolean, and integer arguments when calling a method via the interactive prompt. ([#976](https://github.com/zeppelinos/zos/pull/976), [#987](https://github.com/zeppelinos/zos/pull/987))
### Removed
- [**breaking**] Removed the `status` command, which was unmaintained and failing in certain scenarios.
### Internal
- Removed TSlint in favor of prettier and ESLint. ([#920](https://github.com/zeppelinos/zos/pull/920))
- Add integration tests for starter boxes, to ensure that the latest version of the CLI is always compatible with zepkit. ([#913](https://github.com/zeppelinos/zos/pull/913), [#957](https://github.com/zeppelinos/zos/pull/957))
## v2.3.0 - 2019-05-27
### Added
- Add interactive prompts for most CLI commands (`add`, `create`, `init`, `link`, `publish`, `push`, `remove`, `session`, `set-admin`, `unlink`, `update`, `verify`), plus a `--no-interactive` flag to ensure that no prompts are shown when working in a non-interactive script ([#792](https://github.com/zeppelinos/zos/pull/792), [#766](https://github.com/zeppelinos/zos/pull/766), [#750](https://github.com/zeppelinos/zos/pull/750), [#745](https://github.com/zeppelinos/zos/pull/745), [#730](https://github.com/zeppelinos/zos/pull/730), [#725](https://github.com/zeppelinos/zos/pull/725), [#839](https://github.com/zeppelinos/zos/pull/839))
- Support `ZOS_NON_INTERACTIVE` environment variable, as well as `DEBIAN_FRONTEND=noninteractive`, to disable interactive prompts in scripts ([#887](https://github.com/zeppelinos/zos/pull/887))
- Add `zos unpack` command for initializing a new zepkit from any github repository with a `kit.json` specification, with the shortcuts `tutorial` and `zepkit` already set to official packs ([#822](https://github.com/zeppelinos/zos/pull/822), [#869](https://github.com/zeppelinos/zos/pull/869))
- Add `zos create2` command for deploying proxies to a predefined address determined via a salt and the sender address, or an off-chain signature of a sender ([#805](https://github.com/zeppelinos/zos/pull/805), [#757](https://github.com/zeppelinos/zos/pull/757)), checking before deployment that the address had not been already deployed to ([#788](https://github.com/zeppelinos/zos/pull/788)) (thanks @siromivel!)
- Add test to `truffle-migrate` sample project on CI ([#775](https://github.com/zeppelinos/zos/pull/775)) (thanks @paulinablaszk!)
### Changed
- Add support to `set-admin` command for changing the owner of the `ProxyAdmin` component, so ownership of the entire application can be moved to a different entity in a single transaction ([#804](https://github.com/zeppelinos/zos/pull/804))
- Commands can now be run from any subfolder in the project ([#818](https://github.com/zeppelinos/zos/pull/818))
### Fixed
- Fix issue `truffle-migrate` example ([#763](https://github.com/zeppelinos/zos/pull/763)) (thanks @hardlydifficult!)
- Output a message notifying if no contracts were pushed in a `zos push` ([#888](https://github.com/zeppelinos/zos/pull/888))
- Remove dependency `web3-provider-engine`, which was no longer needed, and caused all of `babel` to be installed along with the CLI ([#909](https://github.com/zeppelinos/zos/pull/909))
- Show a reasonable error message if a `zos.json` or `zos.network.json` file is malformed ([#881](https://github.com/zeppelinos/zos/pull/881))
- Store proxy admin and proxy factory addresses in `zos.network.json` upon a `push` if the upload of a contract failed ([#860](https://github.com/zeppelinos/zos/pull/860))
## v2.2.2 - 2019-03-14
### Added
- Added Goerli network to the list of known networks, both for verification on etherscan and for naming of zos.network.json files ([#768](https://github.com/zeppelinos/zos/pull/768)) (thanks @paulinablaszk!)
### Fixed
- Fix contracts compilation on Windows workstations ([#764](https://github.com/zeppelinos/zos/pull/764)) (thanks @siromivel!)
- Avoid adding libraries and contracts from external packages ([#758](https://github.com/zeppelinos/zos/pull/758)) (thanks @siromivel!)
- Fix ZWeb3 initialization when providing an HTTP url as a web3 provider ([#785](https://github.com/zeppelinos/zos/issues/785))
### Changed
- Exceptions thrown during the validation process can be ignored during `zos push` via the `--force` flag ([#770](https://github.com/zeppelinos/zos/pull/770))
## v2.2.1 - 2019-02-26
### Fixed
- Provider initialization issue on `zos check` command ([#737](https://github.com/zeppelinos/zos/pull/737))
- Error messages that refer to `truffle.js` config file when actually it is `truffle-config.js` ([#710](https://github.com/zeppelinos/zos/pull/710))
- Error message "Cannot read zosversion of undefined" when attempting to create a contract on a new network that had not been `push`'ed to before ([#711](https://github.com/zeppelinos/zos/pull/711))
- Handle spaces in project path when compiling contracts ([#743](https://github.com/zeppelinos/zos/pull/743))
## v2.2.0 - 2019-02-14
### Added
- Contributing guidelines ([#553](https://github.com/zeppelinos/zos/pull/553))
- Example using truffle migrations ([#416](https://github.com/zeppelinos/zos/pull/416))
- Tests for `verify` command ([#468](https://github.com/zeppelinos/zos/pull/468))
- Migration process for projects using previous versions of ZeppelinOS v2 ([#621](https://github.com/zeppelinos/zos/pull/621))
- Support receiving booleans via the CLI ([#623](https://github.com/zeppelinos/zos/pull/623))
- Parse scientific notation numbers from the CLI ([#567](https://github.com/zeppelinos/zos/pull/567))
- Linter pre-commit githook ([#620](https://github.com/zeppelinos/zos/pull/620))
### Changed
- **Update Web3 to version `1.0.0-beta.37`** ([#572](https://github.com/zeppelinos/zos/pull/572))
- Migrate `cli` codebase to TypeScript ([#494](https://github.com/zeppelinos/zos/pull/494), [#516](https://github.com/zeppelinos/zos/pull/516), [#517](https://github.com/zeppelinos/zos/pull/517), [#523](https://github.com/zeppelinos/zos/pull/523), [#515](https://github.com/zeppelinos/zos/pull/515), [#521](https://github.com/zeppelinos/zos/pull/521), [#525](https://github.com/zeppelinos/zos/pull/525), [#526](https://github.com/zeppelinos/zos/pull/526), [#529](https://github.com/zeppelinos/zos/pull/529), [#530](https://github.com/zeppelinos/zos/pull/530), [#531](https://github.com/zeppelinos/zos/pull/531), [#532](https://github.com/zeppelinos/zos/pull/532), [#537](https://github.com/zeppelinos/zos/pull/537))
- Add `lodash` functions separately ([#555](https://github.com/zeppelinos/zos/pull/555)) (thanks @slorenzo!)
- Update Etherscan api key url ([#474](https://github.com/zeppelinos/zos/pull/474))
- Polish `Truffle` util methods used in CLI ([#507](https://github.com/zeppelinos/zos/pull/507))
- Avoid transferring proxies to `App` on publish ([#609](https://github.com/zeppelinos/zos/pull/609))
### Fixed
- Force compiling all contracts ([#581](https://github.com/zeppelinos/zos/pull/581))
- Etherscan mainnet url ([#642](https://github.com/zeppelinos/zos/pull/642))
- Checksum default sender address on initialization ([#654](https://github.com/zeppelinos/zos/pull/654))
- Ignore Truffle's default gas value ([#671](https://github.com/zeppelinos/zos/pull/671))
- Integration tests using `truffle-hdwallet-provider` ([#473](https://github.com/zeppelinos/zos/pull/473))
### Removed
- `truffle-contracts` from codebase ([#451](https://github.com/zeppelinos/zos/pull/451))
- `truffle-resolver` from CLI and honor `from` in config ([#612](https://github.com/zeppelinos/zos/pull/612))
- Lightweight terminology ([#550](https://github.com/zeppelinos/zos/pull/550))
## v2.1.2 - 2019-02-01
### Fixed
- Use patched versions of `web3@0.18` ([#9571fd4](https://github.com/zeppelinos/zos/commit/9571fd425647c093ee856784acab0055c7556992))
- Use patched versions of `ethereumjs-abi@0.6` ([#9571fd4](https://github.com/zeppelinos/zos/commit/9571fd425647c093ee856784acab0055c7556992))
- Use pinned version `1.2.8` of `truffle-flattener` ([#9571fd4](https://github.com/zeppelinos/zos/commit/9571fd425647c093ee856784acab0055c7556992))
## v2.1.1 - 2019-01-31
### Added
- Support compiling with globally installed truffle ([#596](https://github.com/zeppelinos/zos/pull/596))
## v2.1.0 - 2019-01-10
### Added
- Support Truffle 5 projects ([04137b7](https://github.com/zeppelinos/zos/commit/04137b75595fcb2c97972f60b465a778bfa216a7))
- Etherscan integration for contracts verification ([#413](https://github.com/zeppelinos/zos/pull/413)) (thanks @ProtonGustave!)
- More tests to `create` command in CLI ([9a935a3](https://github.com/zeppelinos/zos/commit/9a935a3045dec98fe335bae3fdb28f04189efe8a))
### Changed
- Remove `truffle-workflow-compile` in favor of shell compilation ([423d8f9](https://github.com/zeppelinos/zos/commit/423d8f952c98431e6eb1124d47205952f4cc4017))
- Delete mock contracts when publishing package ([#293](https://github.com/zeppelinos/zos/pull/293))
### Fixed
- Avoid deleting deployment info from other networks in truffle artifacts ([#415](https://github.com/zeppelinos/zos/pull/415))
- Remove legacy code from `app` and `lib` distinction ([#449](https://github.com/zeppelinos/zos/pull/449))
- Remove `sinon` as a main dependency ([1c64175](https://github.com/zeppelinos/zos/commit/1c641756261f5f8fe3c940bbf3db236da9daef47))
## v2.0.2 - 2018-12-19
### Added
- `truffle-provider` dependency to make sure we rely on `web3@^0.x` ([38867fd](https://github.com/zeppelinos/zos/commit/38867fdd0e18c6d4bf869c11a1c94f796c8185e0))
### Fixed
- Pin truffle dependencies versions ([38867fd](https://github.com/zeppelinos/zos/commit/38867fdd0e18c6d4bf869c11a1c94f796c8185e0))
- Promise resolution in `runWithTruffle` function ([6e4258c](https://github.com/zeppelinos/zos/commit/6e4258c5378afb643454154fd2cf22f93a4d0020))
## v2.0.1 - 2018-10-26
### Changed
- Improve validation messages for security verifications (such as storage layout checks, no-constructor checks, or fields with initial values in their declaration) ([#362](https://github.com/zeppelinos/zos/issues/362)).
- Add default gas price of 5 gwei to `truffle.js` template file created on `zos init` ([#354](https://github.com/zeppelinos/zos/issues/354)).
### Fixed
- Fix `Web3ProviderEngine does not support synchronous requests` error when running `zos status --fix` with an async web3 provider ([#388](https://github.com/zeppelinos/zos/issues/388)).
- Throw a meaningful error when attempting to push a project with a link to an unpublished dependency ([#356](https://github.com/zeppelinos/zos/issues/356)).
## v2.0.0 - 2018-10-25
### Added
#### Commands
- **[major]** Command `push` now automatically discovers, pushes, and links any Solidity libraries used by the project contracts ([#208](https://github.com/zeppelinos/zos/issues/208))
- **[major]** Command `link` can now link multiple dependencies (formerly named `stdlib`) into a project ([#17](https://github.com/zeppelinos/zos/issues/17), [#39](https://github.com/zeppelinos/zos/issues/39), [#50](https://github.com/zeppelinos/zos/issues/50), [#99](https://github.com/zeppelinos/zos/issues/99), [#82](https://github.com/zeppelinos/zos/issues/82), [#125](https://github.com/zeppelinos/zos/issues/125)).
- **[major]** New `publish` command, that creates a set of `App`, `Package`, and `Directory` contracts for managing the project on-chain, allowing it to be used as a dependency by another project, and transfers upgradeability ownership of all proxies to the created `App` ([#257](https://github.com/zeppelinos/zos/issues/257))
- New `set-admin` command for changing the upgradeability admin of a proxy, allowing to implement upgradeability governance via more complex structures ([#47](https://github.com/zeppelinos/zos/issues/47))
- New `unlink` command for removing a previously linked dependency ([#49](https://github.com/zeppelinos/zos/issues/49))
- New `check` command for validating a contract for upgradeability errors (such as no `selfdestruct`, no default values for variables, and no `constructor`) ([#230](https://github.com/zeppelinos/zos/issues/230))
- New `--skip-compile` option in `push` command to skip automatic recompilation of contracts ([#214](https://github.com/zeppelinos/zos/issues/214))
- New `--publish` flag in `init`, that will cause the first `push` of a project to any network to automatically `publish` it as well ([#257](https://github.com/zeppelinos/zos/issues/257))
#### Validations
- Validate storage layout changes between subsequent `push` operations, to verify that changes in a contract will not corrupt storage when upgrading ([#117](https://github.com/zeppelinos/zos/issues/117))
- Validate that there are no initial values set in fields declarations, since these are not set when initializing a contract instance ([#241](https://github.com/zeppelinos/zos/issues/241))
#### Other
- Export `commands` and `scripts` functions, allowing the CLI commands to be used from javascript code ([#177](https://github.com/zeppelinos/zos/issues/177))
### Changed
- **[major]** Do not create `App`, `Package`, and `Directory` contracts by default, and use a `SimpleProject` model instead to create proxies and track logic contracts off-chain ([#146](https://github.com/zeppelinos/zos/issues/146), [#231](https://github.com/zeppelinos/zos/issues/231))
- Use canonical network names (`ropsten`, `mainnet`, etc; or `dev-NETWORK_ID` for development networks) for naming zos network files, instead of the custom identifier used for the truffle network connection name ([#213](https://github.com/zeppelinos/zos/issues/213))
- Enforce version check of `zosversion` to be equal to `2` in all json manifest files ([#162](https://github.com/zeppelinos/zos/pull/162))
- Contracts are now validated for errors when `push`ing them instead on `add`, to ensure that any changes performed after initially `add`ing them are also checked ([#224](https://github.com/zeppelinos/zos/issues/224))
- Rename `TestApp` to `TestHelper` ([#82](https://github.com/zeppelinos/zos/issues/82))
- Rename all references to stdlib or lib to dependency or EVM package ([#240](https://github.com/zeppelinos/zos/issues/240))
### Fixed
- Store `App`, `Package`, and `Directory` addresses in failed deployments, and resume from last deployed contract, instead of redeploying all of them from scratch ([#120](https://github.com/zeppelinos/zos/issues/120))
- Throw proper error message when trying to run a command with an undefined network ([#209](https://github.com/zeppelinos/zos/issues/209))
- Improve CLI output on errors, removing confusing _successful_ messages when not appropriate ([#229](https://github.com/zeppelinos/zos/issues/229))
- When creating a proxy from a dependency contract, use the version of the dependency for identifying the proxy in the network json file, instead of the version of the project ([#281](https://github.com/zeppelinos/zos/issues/281))
### Removed
- **[major]** Remove `--lib` flag when creating a new project via `init`, as any project can now be used as a dependency from another project, as long as it has been `publish`ed ([#253](https://github.com/zeppelinos/zos/issues/253))
## v1.4.3 - 2018-10-04
### Fixed
- Fix error when using `--from` flag with `truffle-hdwallet-provider` ([#98](https://github.com/zeppelinos/zos/issues/98))
### Changed
- Detect `zosversion` field in `zos.json` and `zos.network.json` files, and aborts execution if it's greater than `1`, to prevent working with `Package`s from version 2.0 using version 1.x of the CLI ([#163](https://github.com/zeppelinos/zos/pull/163))
## v1.4.2 - 2018-09-08
### Fixed
- Fix for `replacement transaction underpriced` and `nonce too low` errors when using `truffle-hdwallet-provider` in the CLI ([#63](https://github.com/zeppelinos/zos/pull/63))
## v1.4.1 - 2018-08-22
### Fixed
- CLI failed to exit process when using `HDWalletProvider` ([#20](https://github.com/zeppelinos/zos/issues/20))
## v1.4.0 - 2018-08-14
### Added
- New `verify` command to verify and publish a contract source code on etherchain ([#339](https://github.com/zeppelinos/zos-cli/pull/339))
- Add check for selfdestruct calls in logic contracts that could lead to orphaned proxies ([#347](https://github.com/zeppelinos/zos-cli/pull/347)) (thanks @hardlydifficult)
### Fixed
- Handle stdlib semver syntax in the `status` command ([#290](https://github.com/zeppelinos/zos-cli/issues/290))
- Better wording from status command when a contract is scheduled to be removed ([#304](https://github.com/zeppelinos/zos-cli/issues/304))
- Fail with an explicit error when attempting to create a proxy for an stdlib that was linked but not pushed to the network ([#322](https://github.com/zeppelinos/zos-cli/pull/322))
- Include default timeout in `--timeout` flag help ([#302](https://github.com/zeppelinos/zos-cli/issues/302))
- Fix naming issues of upgrade-command-related files ([#327](https://github.com/zeppelinos/zos-cli/pull/327))
- Modes `--fetch` and `--fix` from the `status` command now work properly with lib projects ([#314](https://github.com/zeppelinos/zos-cli/issues/314))
### Changed
- Swapped `TestApp` initializer parameters, it now accepts `txParams` first and an optional `NetworkFile` object as a last argument.
## v1.1.0 - 2018-06-28
### Added
- New `session` command to pin a network, timeout, and sender address
- New `remove` command to remove a logic contract from a project
- Flag `--fetch` in `status` command retrieve app information directly from the network instead of from the local network file
- Flag `--fix` in `status` command to update the local network file with information retrieved from the network
- Models `ProjectFile` and `NetworkFile` to manage zos JSON files
- Write proxy address in contract build files on creation
- Add optional transaction `timeout` parameter to all commands
- Allow stdlib versions to be specified with npm range syntax
- Mechanism to ensure no more than one instance of CLI is running simultaneously
- Changelog file
### Changed
- Set testing environment in tests setup file
- Update zos-lib to version 1.3.0
- Update truffle to version 4.1.13
- Update truffle-core to version 4.1.13
- Update truffle-config to version 1.0.6
- Update truffle-workflow-compile to version 1.0.6
- Rename project param to project-name for init command
- Improve status command feedback using different logging colors
### Fixed
- Show error reason if loading truffle file fails
- Do not set stdlib to 0x0 if not necessary when pushing changes to the chain
- Print helper when zos is invoked without arguments
- Create empty `.gitkeep` files for Truffle folders initialization
- Handle error when stdlib network file is missing
### Removed
- Remove shelljs dependency
- Remove colors dependency
- Remove ethereumjs-abi dependency