I'm trying to find a plugin that generates a libra...
# general
a
I'm trying to find a plugin that generates a library or a binary from a cookiecutter package. Does something like this exist?
r
You might have to write a plugin to do that yourself. https://www.pantsbuild.org/docs/plugins-overview
w
We don't have a curated list of 3rd party plugins. Many of the plugins that get created end up getting mainstreamed, or are highly proprietary (and are thus, closed source). Fortunately, plugins are generally pretty straightforward once you start to grok the plugin ecosystem. https://www.pantsbuild.org/docs/create-a-new-goal https://www.pantsbuild.org/docs/advanced-plugin-concepts https://sureshjoshi.com/development/first-pants-plugin ALSO! I can't recommend enough the awesome
adhoc_tool
approach (https://www.pantsbuild.org/docs/adhoc-tool). It's effectively a "plugin lite" concept. I am currently using it in an entire dep, build, install, deploy workflow. https://github.com/pantsbuild/example-adhoc https://gist.github.com/sureshjoshi/98fb09f2a340f7c1dad270c4887865a0#file-build-pants-sveltekit
a
Why is the plugin system so under-developed?
b
I don't know it was your intent, but that questions feels diminutive. Can you phrase it another way?
w
Yeah, "under-developed" seems like a strange phrase, given that basically everything that currently runs in Pants is basically a backend + plugins.
a
I was asking wether the plugin ecosystem is non-existant because Pants is not popular as other build systems or because it isn't a micro-kernel and all plugins eventually end up in main
b
A little bit of column A, a little bit if plugins are on main, it's easy for everyone to profit, and a little bit the Plugin API is still rapidly changing so having them in main means external stability
a
I see.
What are the open questions regarding the plugins API?
b
I'm not sure what you mean by "open questions"? Individual slices of the API change as we find out newer/better ways of doing things. Overall the plugin architecture has changed less, but nonzero. For instance we changed it to support the "do-things-in-a-docker-image" feature. It'll likely change again for other features/ideas. Overall I think it'll see stability in a few years time, but until then the profit from change outweighs the cost (my own opinion)