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

Reply via email to