An rbm workspace can contain a number of different projects. In some cases it can be useful to share some of those projects between multiple workspaces. This can be done using modules.
A module is a subdirectory in the modules directory. If you are using git, it is possible to store each module directory using a separate git-submodule.
A module directory structure is similar to the main workspace structure: each module includes a projects directory containing the projects, a keyring directory containing the gpg keyrings used by the projects, and a rbm.module.conf containing rbm configuration related to the projects included in the module.
The rbm configuration from a module (the rbm.module.conf and the project config files) can define any configuration option. However, for clarity and to avoid name collisions with other modules or with core rbm options, it is recommended to prefix all option names
The workspace configuration (rbm.conf) has priority over the modules configuration (rbm.module.conf). Module configuration is used in alphabetical order: configuration from a module named A will have priority over a module named B. See rbm_config(1) for more details.
The keyring directory in a module contains gpg keyring files (see the gpg_keyring option). If a keyring file is available in multiple modules, the one from the first module in alphabetical order will be used. If a keyring file is also available in the main workspace’s keyring directory, then it will be used.
rbm(1), rbm_config(7), rbm_layout(7).