-
Notifications
You must be signed in to change notification settings - Fork 40
feat: pop test on-runtime-upgrade logic implementation
#480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: pop test on-runtime-upgrade logic implementation
#480
Conversation
b544690 to
277019e
Compare
168d64d to
556e121
Compare
9d3e0fb to
645303e
Compare
556e121 to
4ff81c5
Compare
0c4212a to
67db16d
Compare
8fa5496 to
a77aaa1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements the on-runtime-upgrade command for try-runtime testing, enhancing the interactive user experience for migration testing. Key changes include the addition of new try-runtime modules and binary sourcing in the parachain crate, integration of the new command into pop-cli commands and tests, and updates to Cargo.toml for required dependencies.
Reviewed Changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| crates/pop-parachains/src/try_runtime/mod.rs | Introduces runtime migration commands, state sourcing definitions, and associated helper functions. |
| crates/pop-parachains/src/try_runtime/binary.rs | Provides binary sourcing for the new try-runtime-cli with integrated GitHub release support and tests. |
| crates/pop-parachains/src/lib.rs | Exports try-runtime functionalities to be used in pop-cli. |
| crates/pop-parachains/src/errors.rs | Adds a new error variant for try-runtime failures. |
| crates/pop-parachains/Cargo.toml | Adds dependency for frame-try-runtime. |
| crates/pop-cli/src/common/try_runtime.rs | Implements try-runtime CLI support, shared parameters collection, and utility functions. |
| crates/pop-cli/src/common/mod.rs | Registers the new try-runtime module. |
| crates/pop-cli/src/common/bench.rs | Minor update to error propagation in binary sourcing for benching. |
| crates/pop-cli/src/commands/test/mod.rs | Integrates the new OnRuntimeUpgrade testing command. |
| crates/pop-cli/src/commands/mod.rs | Integrates the new test command into the commands dispatcher. |
| crates/pop-cli/Cargo.toml and Cargo.toml | Updates dependencies for try-runtime integration. |
Comments suppressed due to low confidence (2)
crates/pop-cli/src/commands/test/mod.rs:23
- The removal of the 'global = true' attribute from the positional 'PATH' argument might affect argument propagation across subcommands; please confirm that this change is intentional.
#[arg(value_name = "PATH", index = 1, conflicts_with = "path")]
crates/pop-parachains/src/try_runtime/binary.rs:90
- [nitpick] The test in this section relies on the output of target(), which could vary across environments; consider using a fixed value or mocking target() to improve test stability.
archive: format!("try-runtime-cli-{}", target()?),
Codecov ReportAttention: Patch coverage is
@@ Coverage Diff @@
## chugnquantin/feat-try_runtime_command #480 +/- ##
=========================================================================
+ Coverage 76.87% 77.13% +0.26%
=========================================================================
Files 85 90 +5
Lines 19811 19660 -151
Branches 19811 19660 -151
=========================================================================
- Hits 15229 15165 -64
+ Misses 2601 2546 -55
+ Partials 1981 1949 -32
... and 18 files with indirect coverage changes 🚀 New features to boost your workflow:
|
21f16d9 to
0e660d8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great start, lets make this so good that people want to use this over chopsticks!!!
In terms of terminology we will have to choose a fix for runtime migrations because that is I think incorrect.
I think we can improve this somehow to improve user experience, e.g. some new lines or something.
- I don't know why but when I tried to use the feature in the mainnet folder of pop-node I got this error after it had compiled the runtime for me:

Seems that the error output is off (this is with an non existing wasm binary hallo.wasm):

The fact that we don't have test coverage for errors is something that we need to pay attention to, clear and correct error messages is very important for cli's
|
|
||
| /// The chain blocktime in milliseconds. | ||
| #[arg(long)] | ||
| pub blocktime: Option<u64>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should have a default value here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a default value if blocktime is not provided on the interactive prompt so I don't think it need to provide the default value here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I disagree, I don't want to have to click enter each time it is obvious I want a 6s blocktime.
Most probably 95% of the users will use the CLI pop test onruntimeupgrade feature for parachains which all have a 6s blocktime. There should be a way for them to not have to specify using the flag, or having to click enter in the interactive UI
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just revisited this and I think you're right! Parachains use 6s blocktime most of the time so it would be great to remove the step. I just resolve it in fdfe272#diff-38c5eb984e987befd98227f41a6ae4c19e1aa4eb5c974736b267c5f4caa8ae17R95
| no_build: bool, | ||
| /// Automatically source the needed binary required without prompting for confirmation. | ||
| #[clap(short = 'y', long)] | ||
| skip_confirm: bool, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense that when this is selected we use a default for the blocktime and profile?
If I want to quickly use a command I think I often don't want to provide input or a flag for the release or blocktime.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm for blocktime it changes depending on the network so I don't know if setting it default to (maybe 6 second) is valuable here, we already have default value and user can simply enter without changing it to use the default value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Resolved the blocktime issue here: fdfe272#diff-38c5eb984e987befd98227f41a6ae4c19e1aa4eb5c974736b267c5f4caa8ae17R95
|
@Daanvdplas Seems like most errors you encountered was due to the
Resolved by removing all "runtime migrations".
For now, you need to run the command at the root of the project, even build does not work with runtime completely (#504). This is a bug of
Add a success prompt in between.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copied from https://github.com/paritytech/try-runtime-cli/blob/b45be7dfce89fd881be27171d3ea114ef19d832c/core/src/common/shared_parameters.rs#L45 to avoid using try-runtime-core.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copied from https://github.com/paritytech/try-runtime-cli/blob/b45be7dfce89fd881be27171d3ea114ef19d832c/core/src/common/parse.rs to avoid using try-runtime-core
AlexD10S
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice job!! The test coverage is very thorough.
Everything looks solid overall, but I still need to do a bit more testing, I’ve run into a few errors while trying out the functionality.
I’ve left some comments about that, along with a few nitpicks.
| args, | ||
| &CUSTOM_ARGS, | ||
| )?; | ||
| spinner.clear(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I couldn’t complete a successful flow, but calling spinner.stop with a message feels more appropriate here. Is there a specific reason for using clear() instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AlexD10S
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for incorporating all my feedback!
The automatic build and the prompt to disable spec version checks significantly improve the developer experience, especially by helping less experienced users avoid common errors.
6decd03
into
chugnquantin/feat-try_runtime_command
* chore: rebase * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * refactor: separate pallet logic from entry file (#421) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: rebase * chore: rebase * chore: rebase * chore: revert cargo.lock and add more ignore * chore: update cargo-deny-action@v2 * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * chore: rebase * chore: revert not relevant changes * fix: expect_select missing filter_mode * feat: pallet benchmarking interactive UI (#420) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * feat: list benchmark pallets & extrinsics * feat: list pallets and extrinsics * feat: refactor pallet mod and add parameter menu * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * refactor: separate pallet logic from entry file * chore: add and hide global genesis_builder * fix: clippy warnings and benchmark tests * refactor: flatten PalletCmd to add extra arguments * feat: select and update parameter menu * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * chore: rebase * chore: rebase * refactor: code order * chore: rebase * chore: reformat * chore: reformat * chore: reformat * refactor: test files * chore: rebase * chore: reformat * chore: reformat * chore: clippy warning * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: clippy warning * feat: enter runtime path manually * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * fix: rebase * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * feat: update menu to confirm the boolean option * refactor: separate pallet logic from entry file (#421) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: rebase * feat: add print command method * feat: add excluded pallets and print command * refactor: move methods to pop-parachains * refactor: get runtime arguments & genesis disabled * chore: fix tests and new tests for runtime input * chore: add tests for search pallets & extrinsics * chore: add tests for select pallet & extrinsics * chore: remove fuzzy search crate and fix stdout err * chore: remove guard drop * chore: clippy warnings * fix: stdio override * refactor: load pallets from subwasm * chore: revert changes made to load pallets This reverts commit faf3ce5889bffc547e840b692be64e96b6da67da. * chore: remove stdio-overide crate and add alternatives * chore: add print to debug CI * feat: add code to source omni bencher (#428) * feat: add code to source omni bencher * chore: add tests for sourcing binaries * feat: download omni-bencher binary if not exist * chore: remove println! * chore: fix tests * refactor: PalletCmd to BenchmarkPallet * feat: select single pallet * chore: test ensure pallet registry * feat: add output file * chore: resolve clippy warnings * refactor: shared methods with other commands * chore: clippy warning of direct ToString impl * chore: add public module document * chore: clippy warning of `current_preset` * chore: set `RUST_LOG` to original value * refactor: display with `--skip` argument * chore: remove `which` crate and implement with cmd * fix: test of display() * refactor: get_mock_runtime * chore: test for inputting output file * chore: test for list, fix binary run * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * refactor: separate pallet logic from entry file (#421) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: rebase * chore: update cargo.lock * feat: add the filter mode to cli * chore: rebase * chore: revert cargo.lock and add more ignore * chore: update cargo-deny-action@v2 * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * chore: rebase * chore: clippy warning * chore: revert not relevant changes * chore: rebase to add filter mode * feat: update parachain templates (#297) * feat: include new parachain template and remove old one for Parity * fix: tests * fix: order in test * fix: export PATH * chore: bump zombienet-sdk version * fix: remove parity evm * fix: missing changes * fix: parse collator and parachain-template-node without path for spawn * chore: remove set PATH * refactor: functionality and test * refactor: prefix for external templates * fix: deprecate old command for generating parity contracts template * test: update configure_works test to test new functionality * test: fix unit tests templates * fix: show deprecation message and fixes * docs: improve comments * refactor: nitpicks in parachain description * fix: logic for substrate-contracts-node without path in config file * feat: support v3.0.0 of OpenZeppelin templates * docs: improve template docs and comments * test: improve comments for clarity * fix: support different profiles when path is not specified * refactor: code improvements * refactor: improve import * fix: remove onboard.rs empty file (#433) * chore: update cargo-deny-action@v2 (#439) * chore: update cargo-deny-action@v2 * chore: revert cargo.lock and add more ignore * fix: docker missing toolchain * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * refactor: separate pallet logic from entry file (#421) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: rebase * chore: update cargo.lock * feat: add the filter mode to cli * chore: rebase * chore: revert cargo.lock and add more ignore * chore: update cargo-deny-action@v2 * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * chore: rebase * chore: clippy warning * chore: revert not relevant changes --------- Co-authored-by: Alex Bean <alexfraga10@gmail.com> * chore: update cargo-deny-action@v2 (#439) * chore: update cargo-deny-action@v2 * chore: revert cargo.lock and add more ignore * fix: docker missing toolchain * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: rebase * chore: revert cargo.lock and add more ignore * chore: update cargo-deny-action@v2 * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * chore: rebase * chore: revert not relevant changes * fix: expect_select missing filter_mode * refactor: fuzzy search pallets and extrinsics with `filter_mode` (#442) * refactor: use filter_mode to fuzzy search pallets * chore: update cargo-deny-action@v2 * chore: rebase * chore: revert not relevant changes * chore: delete conflicting file * feat: add confirm input to extrinsics selection * chore: test for `get_relative_or_absolute_path` * refactor: remove methods only used once * refactor: get arguments `ok_or_else` * refactor: `TryFrom<String>` for genesis builder * chore: comments * chore: return error if is not provided * fix: unit tests adapt to new changes * chore: ensure runtime binary exists test * chore: clippy warning * chore: apply suggestions & test for menu * chore: remove weights.rs * chore: fix test to log single line command --------- Co-authored-by: Alex Bean <alexfraga10@gmail.com> * chore: reformat * chore: remove conflict file bench.rs * chore: import display_message from common * chore: update Cargo.lock * fix: resolve cargo deny and build script to fix the CI (#456) * chore: update deny.toml * feat: `pop build --benchmark` (#453) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * feat: list benchmark pallets & extrinsics * feat: list pallets and extrinsics * feat: refactor pallet mod and add parameter menu * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * refactor: separate pallet logic from entry file * chore: add and hide global genesis_builder * fix: clippy warnings and benchmark tests * refactor: flatten PalletCmd to add extra arguments * feat: select and update parameter menu * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * chore: rebase * chore: rebase * refactor: code order * chore: rebase * chore: reformat * chore: reformat * chore: reformat * refactor: test files * chore: rebase * chore: reformat * chore: reformat * chore: clippy warning * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: clippy warning * feat: enter runtime path manually * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * fix: rebase * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * feat: update menu to confirm the boolean option * refactor: separate pallet logic from entry file (#421) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: rebase * feat: add print command method * feat: add excluded pallets and print command * refactor: move methods to pop-parachains * refactor: get runtime arguments & genesis disabled * chore: fix tests and new tests for runtime input * chore: add tests for search pallets & extrinsics * chore: add tests for select pallet & extrinsics * chore: remove fuzzy search crate and fix stdout err * chore: remove guard drop * chore: clippy warnings * fix: stdio override * refactor: load pallets from subwasm * chore: revert changes made to load pallets This reverts commit faf3ce5889bffc547e840b692be64e96b6da67da. * chore: remove stdio-overide crate and add alternatives * chore: add print to debug CI * feat: add code to source omni bencher (#428) * feat: add code to source omni bencher * chore: add tests for sourcing binaries * feat: download omni-bencher binary if not exist * chore: remove println! * chore: fix tests * refactor: PalletCmd to BenchmarkPallet * feat: select single pallet * chore: test ensure pallet registry * feat: add output file * chore: resolve clippy warnings * refactor: shared methods with other commands * chore: clippy warning of direct ToString impl * chore: add public module document * chore: clippy warning of `current_preset` * chore: set `RUST_LOG` to original value * refactor: display with `--skip` argument * chore: remove `which` crate and implement with cmd * fix: test of display() * refactor: get_mock_runtime * chore: test for inputting output file * chore: test for list, fix binary run * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * refactor: separate pallet logic from entry file (#421) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * chore: rebase * chore: reformat * chore: reformat * chore: rebase * chore: rebase * chore: update cargo.lock * feat: add the filter mode to cli * chore: rebase * chore: revert cargo.lock and add more ignore * chore: update cargo-deny-action@v2 * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * chore: rebase * chore: clippy warning * chore: revert not relevant changes * chore: rebase to add filter mode * feat: update parachain templates (#297) * feat: include new parachain template and remove old one for Parity * fix: tests * fix: order in test * fix: export PATH * chore: bump zombienet-sdk version * fix: remove parity evm * fix: missing changes * fix: parse collator and parachain-template-node without path for spawn * chore: remove set PATH * refactor: functionality and test * refactor: prefix for external templates * fix: deprecate old command for generating parity contracts template * test: update configure_works test to test new functionality * test: fix unit tests templates * fix: show deprecation message and fixes * docs: improve comments * refactor: nitpicks in parachain description * fix: logic for substrate-contracts-node without path in config file * feat: support v3.0.0 of OpenZeppelin templates * docs: improve template docs and comments * test: improve comments for clarity * fix: support different profiles when path is not specified * refactor: code improvements * refactor: improve import * fix: remove onboard.rs empty file (#433) * chore: update cargo-deny-action@v2 (#439) * chore: update cargo-deny-action@v2 * chore: revert cargo.lock and add more ignore * fix: docker missing toolchain * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * feat: `pop bench pallet` logic implementation (#407) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * chore: revert mod.rs * feat: add bench subcommand * chore: revert mod.rs * chore: revert changes * feat: benchmark existing runtime binary and select policy, presets (#411) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: select genesis builder * refactor: test helpers * chore: remove output display * chore: update parse genesis builder comment * fix: locate runtime and help command * chore: clippy warning * chore: display error message on binary check * fix: comment * feat: add genesis preset check (#422) * feat: add genesis preset check * feat: update_genesis_preset * refactor: constant name & add tests for preset * refactor: get_runtime_path * refactor: code order * refactor: test files * chore: clippy warning * refactor: list presets instead of manual input * feat: default to `none` if no presets found * refactor: build project test instead of runtime * refactor: separate pallet logic from entry file (#421) * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * fix: runtime path test * refactor: feature gating for benchmarking feature * chore: remove unused argument * fix: comment * chore: rename `bench` file * chore: rename `bench` file * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * feat: list and select runtimes * chore: remove unused code * feat: auto detect wasm blob and build runtime * feat: build runtime wasm blob * refactor: build binary path method * chore: removed duplicate code * chore: remove spinner * chore: clippy warning * chore: clippy warning * refactor: parachain feature in bench command * chore: reorder imports * feat: add bench subcommand * feat: integrates frame-benchmarking-cli * refactor: PalletCmd run with spec * feat: set RUST_LOG=info for benchmarking display * feat: add CLI messages and tests * feat: add benchmark runtime wasm test * chore: fix comment * fix: operator cannot be applied to type * chore: display error and refactor test file * chore: rename `bench` file * chore: clippy warning * refactor: parachain feature in bench command * feat: add bench subcommand * feat: integrates frame-bench…






This PR implements first command
on-runtime-upgradeintry-runtimefeature #496.With
pop-cli, user don't need to provide arguments likeruntimeor subcommandsnap / livebut instead will be prompted via interactive UI.How to test the PR?
Testing Runtime Upgrades
The command feature requires a runtime binary to be built with
--try-runtimefeature. You can use the commandpop build --try-runtime(implemented in #476).As
runtimeis optional, user will be prompted whether they want to run the command to test migrations on top of a given runtime or not. If not provided, use the code of the remote node, or the snapshot.Test with live state
I tested the live state migration with a local
solochain-node-templatebuilt withtry-runtime feature. You can run the below command to test the feature:Outcome:
Test with snapshot file
I already provided a snapshot file in
tests/snapshots/base_parchain.snap(which is used in the tests as well). You can use the file to test with the below command (Need to replace with your runtime binary).