Skip to content
  1. Feb 16, 2021
    • thiolliere's avatar
      fix deprecated usage of panic (#8134) · f49aae65
      thiolliere authored
      f49aae65
    • Peter Goodspeed-Niklaus's avatar
      Create a macro which automates creation of benchmark test suites. (#8104) · 44d5aba8
      Peter Goodspeed-Niklaus authored
      
      
      * Create a macro which automates creation of benchmark test suites.
      
      * bump impl_version
      
      * allow unused on test_bench_by_name
      
      * use proper doctest ignore attribute
      
      * Explicitly hand the Module to the test suite
      
      Much better practice than depending on it showing up implicitly in
      the namespace.
      
      * explicitly import what we need into `mod tests`
      
      * bench_module is `ident` not `tt`
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * allow end users to specify arguments for new_test_ext
      
      This turned out to be surprisingly easy. On reflection, it turns out
      that of course the compiler can't eagerly evaluate the function call,
      but needs to paste it in everywhere desired.
      
      * enable explicitly specifying the path to the benchmarks invocation
      
      also enable optional trailing commas
      
      * Revert "bump impl_version"
      
      This reverts commit 0209e4de33fd43873f8cfc6875815d0fd6151e63.
      
      * list failing benchmark tests and the errors which caused the failure
      
      * harden benchmark tests against internal panics
      
      * suppress warning about ignored profiles
      
      unfortunately, setting the profile here doesn't do anything; we'd
      need to set it in every leaf package anyway. However, as this was
      just making the default explicit anyway, I think it's safe enough
      to remove entirely.
      
      * impl_benchmark_test_suite for assets
      
      * impl_benchmark_test_suite for balances
      
      * impl_benchmark_test_suite for bounties
      
      * impl_benchmark_test_suite for Collective
      
      * impl_benchmark_test_suite for Contracts
      
      * impl_benchmark_test_suite for Democracy
      
      * don't impl_benchmark_test_suite for Elections-Phragmen
      
      * impl_benchmark_test_suite for Identity
      
      Note that Identity tests currently fail. They failed in an identical
      way before this change, so as far as I'm concerned, the status quo is
      good enough for now.
      
      * impl_benchmark_test_suite for ImOnline
      
      * impl_benchmark_test_suite for indices
      
      For this crate also, the test suite fails identically with and without
      this change, so we can say that this change is not the cause of the
      tests' failure to compile.
      
      * impl_benchmark_test_suite for lottery
      
      * impl_benchmark_test_suite for merkle-mountain-range
      
      * impl_benchmark_test_suite for Multisig
      
      These tests fail identically with and without the change, so the change
      seems unlikely to be the origin of the failures.
      
      * impl_benchmark_test_suite for offences
      
      * impl_benchmark_test_suite for Proxy
      
      Fails identically with and without this change.
      
      * impl_benchmark_test_suite for scheduler
      
      * impl_benchmark_test_suite for session
      
      It turns out to be important to be able to exclude items marked
      `#[extra]` sometimes. Who knew?
      
      * impl_benchmark_test_suite for staking
      
      * impl_benchmark_test_suite for system
      
      * impl_benchmark_test_suite for timestamp
      
      * impl_benchmark_test_suite for tips
      
      * impl_benchmark_test_suite for treasury
      
      * impl_benchmark_test_suite for utility
      
      Note that benchmark tests fail identically before and after this change.
      
      * impl_benchmark_test_suite for vesting
      
      * fix wrong module name in impl_benchmark_test_suite in Offences
      
      * address line length nits
      
      * enable optional keyword argument: exec_name
      
      Took a _lot_ of macro-wrangling to get the functionality that I want,
      but now you have the option to pass in
      
      ```rust
      impl_benchmark_test_suite!(
      	Elections,
      	crate::tests::ExtBuilder::default().desired_members(13).desired_runners_up(7),
      	crate::tests::Test,
      	exec_name = build_and_execute,
      );
      ```
      
      and have it expand out properly. A selected fragment of the expansion:
      
      ```rust
              fn test_benchmarks() {
                  crate::tests::ExtBuilder::default()
                      .desired_members(13)
                      .desired_runners_up(7)
                      .build_and_execute(|| {
      ```
      
      * get rid of dead code
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      44d5aba8
  2. Feb 10, 2021
  3. Feb 06, 2021
  4. Feb 02, 2021
    • Liu-Cheng Xu's avatar
      Decouple the session validators from im-online (#7127) · 9904267e
      Liu-Cheng Xu authored
      
      
      * Decouple the session validators from im-online
      
      * .
      
      * Add SessionInterface trait in im-online
      
      Add ValidatorId in im-online Trait
      
      Make im-online compile
      
      Make substrate binary compile
      
      * Fix merging issue
      
      * Make all compile
      
      * Fix tests
      
      * Avoid using frame dep in primitives via pallet-session-common
      
      * Merge ValidatorSet into SessionInterface trait
      
      Wrap a few too long lines
      
      Add some docs
      
      * Move pallet-sesion-common into pallet-session
      
      * Move SessionInterface to sp-session and impl it in session pallet
      
      Ref https://github.com/paritytech/substrate/pull/7127#discussion_r494892472
      
      * Split put historical::FullValidatorIdentification trait
      
      * Fix line width
      
      * Fix staking mock
      
      * Fix session doc test
      
      * Simplify <T as ValidatorIdentification<AccountId>>::ValidatorId as ValidatorId<T>
      
      * Nits
      
      * Clean up.
      
      * Make it compile by commenting out report_offence_im_online bench
      
      * Tests
      
      * Nits
      
      * Move OneSessionHandler to sp-session
      
      * Fix tests
      
      * Add some docs
      
      * .
      
      * Fix typo
      
      * Rename to ValidatorSet::session_index()
      
      * Add some more docs
      
      * .
      
      * Remove extra empty line
      
      * Fix line width check
      
      .
      
      * Apply suggestions from code review
      
      * Cleaup Cargo.toml
      
      * Aura has migrated to Pallet now
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      9904267e
  5. Jan 29, 2021
  6. Jan 26, 2021
  7. Jan 21, 2021
  8. Jan 20, 2021
  9. Jan 18, 2021
  10. Jan 16, 2021
  11. Jan 12, 2021
  12. Jan 11, 2021
    • Igor Matuszewski's avatar
      Merge 2.0.1 backport branch into mainline master (#7842) · 028f3d26
      Igor Matuszewski authored
      
      
      * Backport paritytech/substrate#7381
      
      * Bring back genesis storage build in aura/timestamp
      
      To not change spec version, see
      https://github.com/paritytech/substrate/pull/7686#discussion_r540032743
      
      * Backport paritytech/substrate#7238
      
      * Backport paritytech/substrate#7395
      
      * Bump impl_version
      
      * Fix UI tests and bump trybuild dep
      
      See https://github.com/rust-lang/rust/pull/73996
      
      Backports:
      https://github.com/paritytech/substrate/pull/7764
      https://github.com/paritytech/substrate/pull/7656
      
      * Partially backport paritytech/substrate#7838
      
      * Release frame-support with a dep compilation fix
      
      * Bump patch level for remaining crates
      
      This is done because at the time of writing cargo-unleash does not fully
      support partial workspace publishing and mixes both local and crates.io
      versions of the packages, leading to errors in the release check workflow.
      
      * Backport paritytech/substrate#7854
      
      ...to fix compilation error when using futures-* v0.3.9.
      
      * Adding Changelog  entry for patch release
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarBenjamin Kampmann <[email protected]>
      028f3d26
  13. Jan 06, 2021
    • Bastian Köcher's avatar
      Fix incorrect use of syn::exports (#7838) · 8cdb5c01
      Bastian Köcher authored
      * Fix incorrect use of syn::exports
      
      Instead of using `syn::exports` we should import the trait from the
      quote crate directly.
      
      * Use own macro for test cases to fix compilation with latest syn
      
      * Fix test
      8cdb5c01
    • ordian's avatar
      upgrade a few dependencies (#7831) · 2b48e09b
      ordian authored
      * upgrade a few dependencies
      
      * make it compile at the expense of duplicate deps
      
      * fix web-wasm and a warning
      
      * introduce activate-wasm-bindgen-features crate
      
      * Revert "introduce activate-wasm-bindgen-features crate"
      
      This reverts commit 5a6e41e683f8a4844c0a735dcd08caabb2313f11.
      
      * add getrandom feature to sc-consensus-aura
      2b48e09b
    • Stanly Johnson's avatar
      fix : remove `_{ }` syntax from benchmark macro (#7822) · d2ac8bd9
      Stanly Johnson authored
      
      
      * commented use of common
      
      * hack to pass tests
      
      * another hack
      
      * remove all commented code
      
      * fix the easy tests
      
      * temp hack
      
      * follow through comma hack until better solution
      
      * patch macro
      
      * missed one
      
      * update benchmarks
      
      * update docs
      
      * fix docs
      
      * removed too much
      
      * fix changes
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      d2ac8bd9
  14. Jan 04, 2021
    • Bastian Köcher's avatar
      Happy new year (#7814) · e3e651f7
      Bastian Köcher authored
      * Happy new year
      
      Updates the copyright years and fixes wrong license headers.
      
      * Fix the template
      
      * Split HEADER into HEADER-APACHE & HEADER-GPL
      e3e651f7
  15. Dec 30, 2020
  16. Dec 27, 2020
  17. Dec 21, 2020
  18. Dec 14, 2020
  19. Dec 10, 2020
  20. Dec 09, 2020
  21. Dec 08, 2020
    • Tomasz Drwięga's avatar
      Streamline frame_system weight parametrization (#6629) · 39a776cd
      Tomasz Drwięga authored
      
      
      * Basic weights builder.
      
      * Fixing WiP
      
      * Make the tests work.
      
      * Fix weights in node/runtime.
      
      * WiP.
      
      * Update pallets with new weights parameters.
      
      * Validate returns a Result now.
      
      * Count mandatory weight separately.
      
      * DRY
      
      * BREAKING: Updating state root, because of the left-over weight-tracking stuff
      
      * Update tests affected by Mandatory tracking.
      
      * Fixing tests.
      
      * Fix defaults for simple_max
      
      * Update frame/system/src/weights.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Rework the API a bit.
      
      * Fix compilation & tests.
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Add extra docs & rename few things.
      
      * Fix whitespace in ASCII art.
      
      * Update frame/system/src/limits.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Fix max_extrinsic calculations.
      
      * Fix conflicts.
      
      * Fix compilation.
      
      * Fix new code.
      
      * re-remove generic asset
      
      * Fix usage.
      
      * Update state root.
      
      * Update proxy.
      
      * Fix tests.
      
      * Move weights validity to integrity_test
      
      * Remove redundant BlockWeights.
      
      * Add all/non_mandatory comment
      
      * Add test.
      
      * Remove fn block_weights
      
      * Make the macro prettier.
      
      * Fix some docs.
      
      * Make max_total behave more predictabily.
      
      * Add BlockWeights to metadata.
      
      * fix balances test
      
      * Fix utility test.
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      Co-authored-by: default avatarBenjamin Kampmann <[email protected]>
      Co-authored-by: default avatarthiolliere <[email protected]>
      39a776cd
  22. Nov 30, 2020
  23. Nov 20, 2020
  24. Nov 05, 2020
  25. Nov 03, 2020
  26. Oct 27, 2020
    • Shawn Tabrizi's avatar
      New Weight Template + Organization (#7391) · e4cfb255
      Shawn Tabrizi authored
      
      
      * add_handlebar_template_to_benchmark
      
      - add benchmark-cli arg to take in a handlebar-template file
      
      * update to always use template
      
      * rewrite writer for handlebars
      
      * polish
      
      * pass cmd data
      
      * update docs
      
      * new weight layout
      
      * separate templates
      
      * support custom filename output
      
      * Update command.rs
      
      * Create frame-weight-template.hbs
      
      * use a vector to maintain benchmark order
      
      * bring back ()
      
      * fix tests
      
      * fix build
      
      * Custom string serializer, remove feature flag
      
      * temp
      
      * rename
      
      * nit
      
      * update docs
      
      * docs on public objects
      
      * small fix
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * remove long line
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=frame_system --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/system/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for system
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for staking
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_identity --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/identity/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for identity and staking
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_collective --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/collective/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for collective
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_democracy --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/democracy/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for democracy
      
      * clean up zeros
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_elections_phragmen --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/elections-phragmen/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for elections phragmen
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_im_online --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/im-online/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for im online
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_indices --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/indices/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for indices
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_multisig --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/multisig/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for multisig
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_proxy --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/proxy/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for proxy
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_scheduler --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/scheduler/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for scheduler
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_session --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/session/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for session
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for timestamp
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_treasury --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/treasury/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for treasury
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for utility
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_vesting --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/vesting/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for vesting
      
      * temp update
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      Co-authored-by: default avatarEzadkiel Marbella <[email protected]>
      Co-authored-by: default avatarParity Benchmarking Bot <[email protected]>
      e4cfb255
  27. Oct 23, 2020
  28. Oct 19, 2020
  29. Oct 08, 2020
  30. Oct 02, 2020
  31. Sep 30, 2020
  32. Sep 24, 2020
  33. Sep 23, 2020
    • Kian Paimani's avatar
      PhragMMS election. (#6685) · 313f86ec
      Kian Paimani authored
      
      
      * Revamp npos-elections and implement phragmms
      
      * Update primitives/npos-elections/src/phragmms.rs
      
      * Fix build
      
      * Some review grumbles
      
      * Add some stuff for remote testing
      
      * fix some of the grumbles.
      
      * Add remote testing stuff.
      
      * Cleanup
      
      * fix docs
      
      * Update primitives/arithmetic/src/rational.rs
      
      Co-authored-by: default avatarDan Forbes <[email protected]>
      
      * Small config change
      
      * Better handling of approval_stake == 0
      
      * Final touhces.
      
      * Clean fuzzer a bit
      
      * Clean fuzzer a bit
      
      * Update primitives/npos-elections/src/balancing.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Fix fuzzer.
      
      * Better api for normalize
      
      * Add noramlize_up
      
      * A large number of small fixes.
      
      * make it merge ready
      
      * Fix warns
      
      * bump
      
      * Fix fuzzers a bit.
      
      * Fix warns as well.
      
      * Fix more tests.
      
      Co-authored-by: default avatarDan Forbes <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      313f86ec
  34. Sep 22, 2020