Hello everyone!
We’ve been working on derive_impl
that aims to simplify the inclusion of pallets in a runtime by providing default configurations. Here is an example that demonstrates the significant reduction in required config parameters for frame_system
when used in tandem with derive_impl
. This has been particularly useful for the addition of new features such as Tasks without requiring a change at the impl
site.
Over the past few months as we tried to expand the usage to other pallets, we’ve encountered a few important questions and would love to hear your thoughts.
Concerns Raised:
- Restrictiveness vs. Flexibility:
- Should these default configurations be as restrictive as possible, minimizing unexpected issues? Or should they be more open?
- Striking the right balance is crucial. Too restrictive, and everyone ends up practically overriding the defaults. Too open, and we risk potential unexpected configurations in the runtime.
- Number of Default Configurations:
- How many default configurations should we provide? We see significant benefits for tests, but these configurations could also be useful for production runtimes, especially to prevent breaking changes if a No-Op is set as the default.
- Finding the sweet spot between simplicity and comprehensiveness is essential.
Your Input Matters:
Please share your thoughts on the following:
- What level of restrictiveness do you prefer for default configurations?
- How many default configurations would be ideal?
- Any other considerations or experiences related to
derive_impl
?
Looking forward to hearing from you all! Feel free to comment below or share your views. Let’s make derive_impl
even better!