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
Use a python-standard approach for plugins architecture #3778
Comments
Thinking about this, I will propose a renaming:
|
I don't oppose to using python conventions, as long as it is not necessary that such modules are installed with python/pip, but can be bare files put somewhere in the system or conan cache folder. |
Currently we have But, what about a...? pip install conan-mercurial and then from conans import ConanFile
class MyLib(ConanFile):
scm = {
'type': 'mercurial',
'url': 'auto',
'revision': 'auto',
}
... or... from conans import ConanFile, build_helper
class MyLib(ConanFile):
def build(self):
generator = build_helper.MegaBuild(self)
....
... |
I agree with hooks. plugins sounds like separated python packages |
I agree that what has been discussed so far are hooks. Based on these examples and use-cases, I have suggested using existing conan distribution machinery, because I didn't see anything that warranted the invocation of PIP. Honestly, even the custom "scm type" proposed by @jgsogo should be possible to achieve through something like a However, in support of @jgsogo 's point, if Conan were to support the more traditional type of "Plugin" (i.e. something which fundamentally alters a core behavior of Conan) then this would very likely require PIP to distribute. Jenkins Plugins for example, can alter the UI of the job navigation screens, the build page, and even add new "blocks" to the Jenkinsfile format. It's extremely powerful (and difficult to support I imagine). Looking back, we now have these new A key characteristic of Conan today, which seems really important, is that a With Plugins, I could see a future where organizations are writing |
See #3867: Rename Plugins as Hooks |
Need to read about the different plugins approaches, and think very carefully about this comment from @solvingj:
|
In the Python packaging user guide, there is one related to plugins, we should think about it and maybe adopt a standard approach for plugins architecture and discovering.
Creating and discovering plugins:
Please everybody (ping @conan-io/barbarians), read and give your opinion.
The text was updated successfully, but these errors were encountered: