Possible Klipper "plugins" instead of macros?

I wholeheartedly back this initiative and find myself aligned with @mhier’s insights. Speaking from the standpoint of an end-user and not a developer, I believe the following considerations are crucial:

Minimizing Fragmentation

As identified here, the Klipper ecosystem is increasingly dispersing. It is vital for any upcoming system to actively discourage this trend.

Maintaining Quality

Hosting extras or plugins outside the core Klipper repository, devoid of a dedicated review process, introduces a significant risk of compromised quality control and documentation. This, in turn, promotes the fragmentation discussed earlier. There’s also a probability of multiple contributions accomplishing the same function in various manners. This signifies the necessity of retaining a broader perspective.

Streamlining Support

It’s essential for the sake of support that extras/plugins remain centralized and incorporated into the Klipper mainline. Dedicating resources to trace the origin of a contribution and then redirecting the user to the respective owner detracts from the holistic experience.

Review Process and Workload Management

I propose that extras/plugins be housed in the primary repository (or a separate repository overseen by the project), with a flexible review process:

  1. Identify any potential pitfalls that might impact the fast path (guidelines could be set on which areas/functions/methods to sidestep or approach with caution).
  2. Ascertain that the extras/plugins can be swiftly disabled - if a problem arises, disable them and see if the issue persists. If it does, the faulty extra remains deactivated until rectified (by the contributor or a volunteer); if not, the troubleshooting continues.
  3. Establish a warning system for malfunctioning plugins/extras - these would remain flagged until they are fixed.
  4. Once points 1, 2, and 3 are met, adopt a “merge first, rectify later” approach.

Conclusion

I’m convinced that this strategy could balance the best aspects of both scenarios:

  1. Swift and efficient acceptance of new contributions.
  2. Centralized access with thorough documentation and support to counter fragmentation and avoid redundant efforts.
3 Likes