-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Plugin System Design #258
Comments
Thank you for this suggestion; it is indeed an interesting avenue to explore that aligns with the goal of creating Weaver as a platform. I see a few elements to delve into:
I don't see anything insurmountable here; we just need to delve a bit more into the details. |
I also think it’s important to consider that the mechanism for resolving a semconv registry is still evolving and remains a fairly complex process. Therefore, this resolution should stay within the Weaver command itself, offloading this type of processing from subcommands, which would be unnecessary to reimplement in each command and is definitely error-prone. This makes me think of another alternative that is already supported with the current implementation: weaver registry resolve --registry <registry-path> --format yaml | gogen
# registry-path can be a local folder, a git repo, a git archive
# policy check could also be enabled, etc.
# --format json is also supported
Note: A resolved semconv registry is a self-contained registry where all the refs, extends, and overrides have been replaced/resolved by the appropriate definitions. |
Great points @lquerel. I think weaver commands should take precedence over subcommand for name clashes. Great suggestion about Could we add |
Adding a Note that by default, if the To better understand your needs, could you please detail the motivations behind this request? Adding @jsuereth to this thread for awareness. |
Description
Firstly, really like where
weaver
is going. Great stuff.As mentioned in the project readme - weaver might support a WASM-based plugin system. I am personally not familiar with WASM, or what building a custom WASM plugin might look like - and I also selfishly don't want to learn it.
A more simple, and extensible solution might be proxying to subcommands, such as how Git does.
Solution thoughts
Any binary in the host path prefixed with
weaver-
would be executed when run asweaver ${subcommand} args
Reasons
I think this way, you wouldn't be dictating which technologies, frameworks and languages an organisation would have to use. The end result would be that so long as you had an executable or alias with the right name, the behaviour is then completely up to the third-party.
It would also be much simpler to implement and maintain than anything WASM related (probably).
The text was updated successfully, but these errors were encountered: