couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Kocoloski <kocol...@apache.org>
Subject Source code layout
Date Thu, 01 Nov 2012 01:02:36 GMT
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
Mime
View raw message