I like this solution, with the constraint, that if false is specified, fpm should deny to combine it with any other project. So what do you think about the following:
-
If nothing is specified, fpm assumes that the module-namespace is the project name and enforces that each module name is prefixed by module-namespace string.
-
If
module-namespaceis a string, fpm uses that as module namespace string and enforces that each module name is prefixed by that string. -
if
module-namespaceisfalse, fpm does nothing check anything.
When combining projects, fpm should check for collisions and stop if two projects have the same module namespace (delcared explicitely or derived it implicitely from the project name). Fpm should refuse to combine a project without module name space string (which set module-namespace explicitely to false) with anything.
This way, you could still build a non-conforming project with fpm as standalone, but you would not be able to combine it with other projects.