Hi, I mentioned in IRC earlier today that I'd really like to see us organize
our source code so that OTP applications are wholly contained in their own
subdirectories and are organized according to the standard OTP application
layout. In a world where we've refactored the monolithic 'couch' application
into a few more focused applications the layout could look something like this:
src/
couch_core/
c_src/
include/
priv/
src/
test/
couch_config/
src/
...
ibrowse/
include/
src/
test/
We've already followed this layout for couch_index, couch_mrview and
couch_replicator -- I'd just like to "finish the job". A few of the advantages
that I see are
a) We can extract these individual applications using e.g. git-subtree and use
them on their own as we see fit.
b) We can remove the external dependencies (ibrowse, mochiweb) from our git
repository and instead have the build system check them out directly from
upstream. Of course they'd still show up directly in the release artefacts.
c) Rebar is the de facto build system for most other Erlang/OTP projects and it
expects to see this kind of layout.
If there are no objections we can set about achieving this after we branch
1.3.x. Regards,
Adam