Skip to content
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

vote: A new repository for creating framework for notation plugin #45

Closed
priteshbandi opened this issue Jul 21, 2023 · 13 comments
Closed

Comments

@priteshbandi
Copy link

priteshbandi commented Jul 21, 2023

Hi @notaryproject/notaryproject-governance-maintainers ,
To simplify the creation of notation-plugin and as per discussion in the last community meeting(07/17), I would like to propose the creation of a new repository which will contain plugin base or framework code.

  1. This would house code similar to https://github.com/priteshbandi/notation-plugin-base code but with removed dependency on cobra and some other improvements.
  2. It will also contain an example plugin implementation, similar to https://github.com/priteshbandi/notation-plugin-base/tree/main/exampleplugin
  3. After the creation of this pkg, notation-go will also be modified to take a dependency on newly created interfaces and structs so that we don't have to maintain duplicate code.

This way users will only need to maintain one implementation of the plugin and that can be used as both library and executable.

I am proposing the name of the new repository to be notation-plugin-framework-go but open to suggestions

@notaryproject/notaryproject-governance-maintainers If you agree with creating a new repository for the Notation Plugin Base/Framework, please comment LGTM below.

Thanks!

@priteshbandi priteshbandi changed the title vote: Create a repository for creating framework for notation plugin vote: A new repository for creating framework for notation plugin Jul 21, 2023
@shizhMSFT
Copy link

Since this plugin framework is for golang, should the repo name have a suffix -go?

@priteshbandi
Copy link
Author

Since this plugin framework is for golang, should the repo name have a suffix -go?

Good point, updated the recommended name to notation-plugin-framework-go

@sajayantony
Copy link

/LGTM.
But IANAM.

@SteveLasker
Copy link
Contributor

LGtM

@rgnote
Copy link

rgnote commented Jul 21, 2023

LGTM

@gokarnm
Copy link
Contributor

gokarnm commented Jul 21, 2023

LGTM!

@iamsamirzon
Copy link
Contributor

What benefits will this repo provide? Is it just a framework with sample code or an actual repository for approved plugins ?

@yizha1
Copy link
Contributor

yizha1 commented Jul 23, 2023

I have a similar question as @iamsamirzon. What is the problem that this framework is going to solve? Do we have a real case where users couldn't solve the problem using existing framework, or is it purely code refactoring for simplicity and code maintenance?

@FeynmanZhou
Copy link
Member

Will this notation-plugin-framework-go repo be a sample Notation plugin implementation for plugin developers? Is the purpose of this repo to lower the barrier to develop a plugin?

@zosocanuck is requesting a dedicated Plugin Developer documentation with reference implementations in select languages such as Golang, .NET, etc. as described in notaryproject/notaryproject.dev#305.
@priteshbandi Do you think this notation-plugin-framework-go will be beneficial for @zosocanuck's request?

@shizhMSFT
Copy link

LGTM

@priteshbandi
Copy link
Author

@iamsamirzon
What benefits will this repo provide? Is it just a framework with sample code or an actual repository for approved plugins ?

This will remove cross-cutting concerns for plugin implementers like exposing cli, duplicating structs, having implementation which can be used to generate executable and as a plugin library in notation-go.
Also, we will be providing an example plugin, which will serve as a reference for new implementers.


@yizha1
I have a similar question as @iamsamirzon. What is the problem that this framework is going to solve? Do we have a real case where users couldn't solve the problem using existing framework, or is it purely code refactoring for simplicity and code maintenance?

It is indeed solving real usecase, look at https://cloud-native.slack.com/archives/CQUH8U287/p1689247327932749 thread with 40 replies, having well defined interface to work with and a reference implementation would have helped. For benefits, please look at the reply to Samir's question.


@FeynmanZhou
Will this notation-plugin-framework-go repo be a sample Notation plugin implementation for plugin developers? Is the purpose of this repo to lower the barrier to develop a plugin?

It'll be both (see reply to Samir's and Yi's question.

@priteshbandi Do you think this notation-plugin-framework-go will be beneficial for @zosocanuck's request?

It will help with some of the painpoints pointed out in notaryproject/notaryproject.dev#305.

@yizha1
Copy link
Contributor

yizha1 commented Jul 25, 2023

Thanks @priteshbandi

LGTM

@yizha1
Copy link
Contributor

yizha1 commented Dec 21, 2023

Close as completed.

@yizha1 yizha1 closed this as completed Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests