Hi Frans!
Proposal is creating a COM directory ‘src/com’ where the module manufacturer and module name are used. (Similar to mainboard). In this src/com directory common module support is placed. mainboard will use this COM module and contains the ‘variant’ code.
Sounds like a good idea to me; I wouldn't call the directory src/com though since my first association with that name would be some sort of communication device support. Maybe src/som (system on module)?
I think I talked with Nico and siro on that some months ago on IRC, so it would be good if they could also comment on this.
I think the other option we talked about was having the module as a base and the official carrier board as mainboard variant and then use the module code in a mainboard with the vendor being the vendor of the carrier module which is a variant of the other mainboard code. Putting this into a separate directory is probably the cleaner option though.
If the variants approach works well for that, I'd like to keep using that and not introducing some new infrastructure; if that causes some major pain, it might also be worth investigating how to improve things there.
Regards Felix