New submission process for feature enhancements

I believe that this is a commendable strategy. However, I’d like to offer some additional thoughts from my support perspective:

Handling Macro Utilization

My interpretation is that a primary objective in the design is to ensure that the intricacy of features and settings remain manageable. Regrettably, the current frequent usage of macros by users to circumvent absent features or enhance flexibility seems to contradict this goal. To illustrate, many of the klippy.logs we encounter (even from novices) exceed 1000 lines of configuration, whereas a standard printer.cfg has about 130 lines. This circumstance creates various issues:

  • Configurations that are excessively lengthy and complicated
  • Mostly undocumented macros
  • Sourced from a spectrum of quality, from reliable to questionable
  • Most users struggle to comprehend the mechanisms behind these macros.

Derivative Works

There’s a rising trend of derivative works that provide extra modules or reintroduce rejected features. I feel this could potentially pose a risk to the continuity of the Klipper mainline:

  • These features are unavailable in the mainline
  • They are neither officially documented nor supported
  • Updates or modifications to the mainline can be inconsistent for users and heavily depend on the feature creator’s motivation and ability to sync with the latest Klipper code.
  • Combining these extras or features can be challenging for average users and may lead to unintended consequences, particularly in the context of the macro situation.

Features and Flexibility

While your suggested “focus items” are impressive, I perceive them as somewhat technical features that may not directly impact everyday use. Despite not requiring most of them myself, I suggest considering the following additions:

  • Adjustable fan controls, like heating, cooling, nevermore filters, heated chambers, varying trigger points, PID, etc.
  • More comprehensive heated chamber support
  • Gradient color mixing capability
  • CNC support
  • Enhanced laser support (partially included) with proportional support (yet to be addressed)
  • Additional axes

Miscellaneous Thoughts

  • Emphasis should be placed on implementing features that reduce macro dependence, both in terms of integration and new development.
  • Could we consider a feature voting system to capture user preferences?
  • Perhaps it’s just my observation, but many PRs seem to focus narrowly on specific aspects of a feature set. For instance, linear scaling for fans but not a broader scope like flexible fan controls. Would it be beneficial to publish a catalog of requested features, accompanied by a brief specification detailing expectations and potential pitfalls for that specific feature?
3 Likes