-
Notifications
You must be signed in to change notification settings - Fork 847
Description
Like stackage-cli and lein, it would be nice if Stack provided a plugin system. The most obvious use of it would be to provide new stack subcommands for doing things that aren't natively built in.
There's a whole other category of potential plugins, though, and it may demand its own separate issue: plugins that don't add subcommands but rather alter other behavior. For example, assuming the existence of a stack new command which sets up a basic skeleton of code, it would be useful to allow plugins to provide different templates (e.g. a yesod scaffold template).
This may just be up to the individual tools to provide, but the reason I bring this up in the same ticket is this: like Lein, it would be great if Stack managed the use of all plugins in a homogenous way. For example, it would be great if you could specify plugins to depend on in ~/.stack/plugins.yaml (or whatever a good name for a user-wide stack configuration file would be), as well as in $PROJECT/stack.yaml in a plugins key. Of course, it should only be necessary to specify the name/version of the plugin you want, as stack can take care of automatically downloading and installing them for you! And whether these plugins provide subcommands or alter other behavior shouldn't matter; they should be enabled by the user in the same way.