On the other hand, the core becomes bigger and messier…maybe “we” should think about a way for a “plug-in” functionality for modules. So the core can stay clean and small, but users can plug-in the modules they like and need:
I am thinking about a “ansible way” doing that like a command line app.
You can already have your own directories of modules, and the modules in core are meant to be there.
The batteries included philosophy is GREAT for contribution, they don’t take up space, they are already well organized, and are only transferred to remote systems as needed.
If you’re talking roles, that’s different, and this is the purpose of the Galaxy project that we are releasing this November (knock on wood).
It should be possible to include a library path in the roles dir, but we strongly will encourage contribution of modules to core – I don’t like the concept of downloaded content containing arbitrary code and it makes too many different points for people to track and contribute to.
I can't say I'm a fan of the solution proposed by René, which seems
too heavy for Ansible especially since there's already library/,
filter_plugins/, lookup_plugins/, etc for people to drop things into.
However, I do think it'd be nice to have a central source for
modules/plugins that don't live up to the standards for being included
in core, wouldn't serve a wide-enough audience, and/or are rejected
for other reasons (incompatible licenses?).
When it makes sense, we want modules in core. I don’t want the default to be “we’re just going to put these on the tubes”, because that will result in modules that are less maintained.
However, if a module is not going to be widely used by enough people to help maintain it, we don’t want it in core.