mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 07:41:08 +00:00
Add pallet dev mode (#12536)
* stub for construct_dev_runtime! * revert * stub for dev_mode proc macro * preliminary docs for pallet::dev_mode (attribute) proc macro * add dev_mode to pallet_macros module * add docs item for dev_mode to frame_support * parsing of #[pallet(dev_mode)] * strip out dev_mode stub since it will be an arg for pallet instead * make pallet Def struct aware of dev mode * WIP * revert changes to call.rs * pass dev_mode to pallet parsing code * auto-specify default weights when in dev mode if not specified * add proof / expect for syn::parse in dev mode weight processing * set all storages to unbounded when in dev mode * just use 0 Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * add invalid pallet arg test * add passing dev mode pallet test * add test confirming that dev mode features only work in dev mode * cargo fmt + clean up * bump CI * fix pallet ui test * add docs for dev mode * add warning about using dev mode in production circumstances * remove comment about no other attributes being supported * fix unneeded assignment * make warning more explicit * more explicit warning about using dev mode in production * simpler assignment for dev_mode boolean Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * add note about MEL requirement Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * add comment specifying why weights can be omitted in example Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * tweak wording of comments * bump ci Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
@@ -1487,6 +1487,36 @@ pub mod pallet_prelude {
|
||||
/// non-instantiable pallets. For an example of an instantiable pallet, see [this
|
||||
/// example](#example-of-an-instantiable-pallet).
|
||||
///
|
||||
/// # Dev Mode (`#[pallet(dev_mode)]`)
|
||||
///
|
||||
/// Specifying the argument `dev_mode` on the `#[pallet]` or `#[frame_support::pallet]`
|
||||
/// attribute attached to your pallet module will allow you to enable dev mode for a pallet.
|
||||
/// The aim of dev mode is to loosen some of the restrictions and requirements placed on
|
||||
/// production pallets for easy tinkering and development. Dev mode pallets should not be used
|
||||
/// in production. Enabling dev mode has the following effects:
|
||||
///
|
||||
/// * Weights no longer need to be specified on every `#[pallet::call]` declaration. By
|
||||
/// default, dev mode pallets will assume a weight of zero (`0`) if a weight is not
|
||||
/// specified. This is equivalent to specifying `#[weight(0)]` on all calls that do not
|
||||
/// specify a weight.
|
||||
/// * All storages are marked as unbounded, meaning you do not need to implement
|
||||
/// `MaxEncodedLen` on storage types. This is equivalent to specifying `#[pallet::unbounded]`
|
||||
/// on all storage type definitions.
|
||||
///
|
||||
/// Note that the `dev_mode` argument can only be supplied to the `#[pallet]` or
|
||||
/// `#[frame_support::pallet]` attribute macro that encloses your pallet module. This argument
|
||||
/// cannot be specified anywhere else, including but not limited to the `#[pallet::pallet]`
|
||||
/// attribute macro.
|
||||
///
|
||||
/// <div class="example-wrap" style="display:inline-block"><pre class="compile_fail"
|
||||
/// style="white-space:normal;font:inherit;">
|
||||
/// <strong>WARNING</strong>:
|
||||
/// You should not deploy or use dev mode pallets in production. Doing so can break your chain
|
||||
/// and therefore should never be done. Once you are done tinkering, you should remove the
|
||||
/// 'dev_mode' argument from your #[pallet] declaration and fix any compile errors before
|
||||
/// attempting to use your pallet in a production scenario.
|
||||
/// </pre></div>
|
||||
///
|
||||
/// # Pallet struct placeholder: `#[pallet::pallet]` (mandatory)
|
||||
///
|
||||
/// The pallet struct placeholder `#[pallet::pallet]` is mandatory and allows you to specify
|
||||
|
||||
Reference in New Issue
Block a user