Is there a reason for forcing verbose directory structure inside roles?

Hi,

continuing discussion from Twitter:
https://twitter.com/Teemu/status/529356262862241792

Is there a reason for forcing verbose directory structure inside roles?

When making roles for internal purposes, I often start with a playbook and after it grows more complex I move a part of the functionality inside a new role. However, most roles are rather simple and need just a couple of files or even just tasks/main.yml if I keep most of the things hardcoded in the beginning. The forced directory structure with

roles/myrole/tasks/main.yml
roles/myrole/vars/main.yml,

… seems unnecessarily deep and verbose. It seems that for simpler roles something like

roles/myrole/tasks.yml

roles/myrole/vars.yml

would be enough. Or we could go even simpler, just a single main.yml in the beginning:

roles/myrole/main.yml

and then refactor when the role grows more complex.

Yes…

This has been brought up 1-2 times before.

At some point, roles will expand and need to include other files, things like include_vars, multiple templates, etc.

This enforces a standard where everybody’s roles follow a common convention.

–Michael