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

Proposal: support third party extensions #13

Open
nat-n opened this issue Oct 21, 2020 · 0 comments
Open

Proposal: support third party extensions #13

nat-n opened this issue Oct 21, 2020 · 0 comments
Labels
enhancement New feature or request Seeking feedback

Comments

@nat-n
Copy link
Owner

nat-n commented Oct 21, 2020

Poe the Poet is already quite modular by design, and easy to extend with new task or executor types. However I can imagine that there may be use cases for kinds of tasks or ways of executing them that I wouldn’t relate to so easily or wouldn’t know enough about the context. For example defining tasks in terms of plumbum scripts, or executing them in an environment managed with nix.

To support this poe could be made to support specifying a plugin as a python module referenced by a global config option (e.g. tool.poe.plugins = ["poethepoet_contrib_pipenv.executor"]). Providing such a config would cause poe to load the specified module on every run, with the expectation that the module will define and register PoeExecutor/PoeTask classes that may then be used by tasks defined in the same file.

One caveat is that the python module containing the plugin would have to be available from the same environment as poe itself, and so not have any dependencies that require activating a different virtual environment for instance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Seeking feedback
Projects
None yet
Development

No branches or pull requests

1 participant