-
Notifications
You must be signed in to change notification settings - Fork 5
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
Implement support for externally developed plugins #2
Comments
Adding a link to my fork where I am testing out some of these concepts - https://github.com/jpower432/compliance-to-policy-go/tree/feat/v2-module/v2 |
@yana1205 @yuji-watanabe-jp If you are in support of this change, I am wondering how to get started on working on a contribution. I realize that I am currently using a / I'm think there are a couple approaches we could take for this change:
Your input on the approach would be greatly appreciated. |
@jpower432 Thanks. The first one is reasonable because it avoids the overhead of managing multiple modules. v0 in Go is considered unstable, so users expect potential breaking changes when moving to v1. If the project needs some time before v2 is fully ready, I can add v1.0.0 tag to the current repository and it would be better to treat the v2 codes as v2.x version. |
@yana1205 I appreciate your input and clarifications. I found the projects you linked helpful. Another project that manages this similarly to what you proposed is oras-go. I agree the most straightforward solution while allowing for clear separation would be to tag the current repository with a
I am advocating to create the |
@jpower432 |
Continuing the conversation originating from oscal-compass/compliance-to-policy#23. The goal would be enable plugins to be developed externally without having to recompile C2P and reuse the plugins being developed in C2P Python.
Objectives
Define a plugin interface will allow externally developed plugins to be used with C2P core while allowing the reuse of existing plugins being developed in C2P Python.
Based on previous conversation with @yana1205, proposing the core plugin management logic be implemented in Go and the use of RPC based plugins.
Rationale
Completion Criteria
I have added some high-level features I am proposing to support below. Some are brand new to C2P and some are based on the features of C2P Python for consistency.
Parity with C2P Python
New
oscal-sdk-go
as a transformation from Component Definitions to Assessment Plans)EDITED BELOW
Additional Notes:
go-plugin
is being considered, a license exception is in place with CNCF. We may need to submit alicense exception
with our use case information.The text was updated successfully, but these errors were encountered: