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

Extract plugin interfaces in their own package ? #7608

Open
MichaelMure opened this issue Aug 19, 2020 · 1 comment
Open

Extract plugin interfaces in their own package ? #7608

MichaelMure opened this issue Aug 19, 2020 · 1 comment
Labels
kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding

Comments

@MichaelMure
Copy link
Contributor

Writing a go-ipfs plugin at the moment imply to import go-ipfs itself to get the interfaces to implement and expose. This create a circular dependency which, while it works imply to update every plugins for each go-ipfs release otherwise go modules start to mess up the dependencies.

It'd be great if those interfaces could be extracted into their own package/repo to break this cycle.

Now I'm well aware that I dug my own grave with 2a9e500 as this PluginDaemonInternal can't be extracted but it might be the exception to the rule.

@MichaelMure MichaelMure added the kind/enhancement A net-new feature or improvement to an existing feature label Aug 19, 2020
@aschmahmann
Copy link
Contributor

This could be nice to do, but might require a bit of work to actually do the refactoring.

High level, I agree the working with plugins (especially when they're not built in tree) can be a big pain as a result of the various issues associated with Golang's plugin system. We should probably figure out a better way to deal with plugins then we currently do.

@aschmahmann aschmahmann added the need/analysis Needs further analysis before proceeding label Sep 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding
Projects
None yet
Development

No branches or pull requests

2 participants