Open ayufan opened 4 months ago
Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html
There are some steps that you can take now:
Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.
Best regards, ~ Your friendly GitIssueBot
PS: I'm just an automated script, not a human being.
@ayufan I see this has been untouched for some time now, are you planning to complete this? I think this would be a good addition to klipper
I did not get a feedback. I would love to get this merged, if there is agreement on this. So, if get preliminary approval will finish it.
On Sat, 23 Mar 2024 at 11:28, Nelson Graça @.***> wrote:
@ayufan https://github.com/ayufan I see this has been untouched for some time now, are you planning to complete this? I think this would be a good addition to klipper
— Reply to this email directly, view it on GitHub https://github.com/Klipper3d/klipper/pull/6492#issuecomment-2016441569, or unsubscribe https://github.com/notifications/unsubscribe-auth/AASOSQKZRCLYIYPIS2QWF5TYZVKMTAVCNFSM6AAAAABDKIMGWGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWGQ2DCNJWHE . You are receiving this because you were mentioned.Message ID: @.***>
I would get it ready to be useable and merged into master, without being marked as a draft, ensure the checks pass, self review etc, I don't think anyone will look into something marked as a draft
I started a discussion on something similar at https://klipper.discourse.group/t/possible-klipper-plugins-instead-of-macros/9819 .
It would be important for me that a "plugin" system have a well understood and stable API. Otherwise, I fear "plugins" could inadvertently destabilize other parts of Klipper, and minor changes in Klipper could inadvertently break 3rd-party code. The Klipper "extras" system was never intended as a "plugin" system, and I don't think it meets those requirements.
Cheers, -Kevin
I started a discussion on something similar at https://klipper.discourse.group/t/possible-klipper-plugins-instead-of-macros/9819 .
Thank you for making me aware of if will have a look and drop my feedback, I'm interested in helping in a solution
It would be important for me that a "plugin" system have a well understood and stable API. Otherwise, I fear "plugins" could inadvertently destabilize other parts of Klipper, and minor changes in Klipper could inadvertently break 3rd-party code. The Klipper "extras" system was never intended as a "plugin" system, and I don't think it meets those requirements.
Yeah, this is always a problem. However, there's not a good solution. There are ways to maintain out of system information about the compatibility with Klipper, and also making Klipper more aware of what is happening.
The problem today is that the are vendors, and users that simply already have to mess with extras
, which is likely even worse.
@KevinOConnor As a good example you can see this working pretty well in Home Assistant
and ESPHome
ecosystem, where there's a big repository of built-in components, but equally big of external components. Quality of external varies, but I doubt people would drop those things at random. And if they do, they would be themselves to blame.
It become quite common for Klipper users to create custom components and create a dance to symlink them into
extras
folder. This PR provides a first class support forcustom_components
that can be loaded as part ofprinter.cfg
:custom_component
, component name to load, and path where the component is loaded.custom_component
load module is only compatible with Python 3.5+, for older versions there's no support forcustom_component
.printer.cfg
hello_world.py
GET /printer/objects/query?custom_component%20hello_world
Considerations
custom_component
function.References