Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
…r-iroha#4136: refactor CLIs (hyperledger-iroha#4153) * [refactor]: refactor cli(s) - `iroha`: use `clap` `v4` - `iroha`: update CLI (`--config`, `--terminal-colors`) - `iroha`: handle user-provided config file strictly - `iroha`: parse ENV config after file config - `iroha_config`: add `genesis.file`, remove `account_*` prefix - `iroha_config`: move some genesis config validation logic from `iroha` - `iroha_client_cli`: upgrade `clap` to `v4` - `iroha_genesis`: remove side effects (bail, logs) - `iroha_genesis`: clarify validation logic (hyperledger-iroha#3075) - `iroha_genesis`: remove `pub` to guard invariant of `GenesisNetwork` Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: chore Signed-off-by: Dmitry Balashov <[email protected]> * [fix]: fix & test config - `iroha_config`: use `PathBuf` when appropriate - `iroha_config`: fix `Path` behaviour - `iroha_config`: finally, make `disable_panic_terminal_colors` truly optional (hyperledger-iroha#3506) - `iroha`: resolve all relative paths in config file - `iroha`: improve config error messages - `iroha`: add config integration tests Signed-off-by: Dmitry Balashov <[email protected]> * [test]: test & refactor - `iroha_client_cli`: adopt `--config` from `iroha` - `iroha_client_cli`: refactor `--metadata` arg - `iroha`: extend tests - update test code overall Signed-off-by: Dmitry Balashov <[email protected]> * [fix]: clippy, tests Signed-off-by: Dmitry Balashov <[email protected]> * [fix]: use `serde_as_str` for paths Signed-off-by: Dmitry Balashov <[email protected]> * [chore]: re-generate peer config Signed-off-by: Dmitry Balashov <[email protected]> * [test]: update `test_env.py` Signed-off-by: Dmitry Balashov <[email protected]> * [test]: remove deprecated option from test config Signed-off-by: Dmitry Balashov <[email protected]> * [docs]: update README Signed-off-by: Dmitry Balashov <[email protected]> * [chore]: remove obsolete comment Signed-off-by: Dmitry Balashov <[email protected]> * [fix]: update `iroha_swarm` Now it relies on that `genesis.file` is set in the config file Signed-off-by: Dmitry Balashov <[email protected]> * [feat]: `kagami config peer` + `--genesis-file-in-config` Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: chores Signed-off-by: Dmitry Balashov <[email protected]> * Apply suggestions from code review Co-authored-by: Ekaterina Mekhnetsova <[email protected]> Signed-off-by: 0x009922 <[email protected]> * [feat]: use `PATH` as value name Signed-off-by: Dmitry Balashov <[email protected]> * [docs]: align `StatusFailure` message Signed-off-by: Dmitry Balashov <[email protected]> * [docs]: adopt suggestion in `iroha_client_cli` hyperledger-iroha#4153 (comment) Signed-off-by: Dmitry Balashov <[email protected]> * [build]: exclude `genesis.file` from default config Signed-off-by: Dmitry Balashov <[email protected]> * [feat]: refine genesis config parse error Signed-off-by: Dmitry Balashov <[email protected]> * [test]: fix & refactor `test_env.py` Signed-off-by: Dmitry Balashov <[email protected]> * [test]: fix CANNOT_BE_EMPTY message It is updated with a new version of clap Signed-off-by: Dmitry Balashov <[email protected]> * [test]: return `disable_panic_terminal_colors: null` to test config It is needed so that only `iroha_test_config.json` without defaults layer is valid (will fix on config refactoring) Signed-off-by: Dmitry Balashov <[email protected]> * [fix]: handle configuration properly in `iroha_swarm` - set `GENESIS_FILE` in env, since `config.json` doesn't have it - strictly specify `config.json` and `genesis.json` files Signed-off-by: Dmitry Balashov <[email protected]> * Apply suggestions from code review Co-authored-by: ⭐️NINIKA⭐️ <[email protected]> Signed-off-by: 0x009922 <[email protected]> * Update client_cli/src/main.rs Co-authored-by: ⭐️NINIKA⭐️ <[email protected]> Signed-off-by: 0x009922 <[email protected]> * [refactor]: eliminate extra `iroha_config` dependency Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: remove dead code Signed-off-by: Dmitry Balashov <[email protected]> * [test]: use `serde_json::json!` Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: remove `disable_panic_terminal_colors` parameter Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: update genesis & its testing - remove `cfg(test)` behaviour from `GenesisNetwork::new()` - refactor `impl TestGenesis for Genesis` - remove extra `bool` + `Option` invariant - allow creating genesis with additional ISIs - remove `test-utils` feature & `GenesisNetwork::transactions_mut()` - update related tests - update error message on signing failure Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: remove extension check from `Path::default()` Signed-off-by: Dmitry Balashov <[email protected]> * [docs]: update genesis topology messages Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: use `Popen`'s `env` instead of global `os.environ` Signed-off-by: Dmitry Balashov <[email protected]> * [fix]: typo Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: use `Partial`/`Full` terminology Signed-off-by: Dmitry Balashov <[email protected]> * [test]: inherit env from OS Signed-off-by: Dmitry Balashov <[email protected]> * [docs]: link issue hyperledger-iroha#4161 Signed-off-by: Dmitry Balashov <[email protected]> * [fix]: format Signed-off-by: Dmitry Balashov <[email protected]> * [refactor]: apply lints Signed-off-by: Dmitry Balashov <[email protected]> * [feat]: panic on default path extension Signed-off-by: Dmitry Balashov <[email protected]> * [test]: update err message Signed-off-by: Dmitry Balashov <[email protected]> * [docs]: update docs of `read_config` Signed-off-by: Dmitry Balashov <[email protected]> --------- Signed-off-by: Dmitry Balashov <[email protected]> Signed-off-by: 0x009922 <[email protected]> Co-authored-by: Ekaterina Mekhnetsova <[email protected]> Co-authored-by: ⭐️NINIKA⭐️ <[email protected]>
- Loading branch information