couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <paul.joseph.da...@gmail.com>
Subject Re: Dependencies in SVN
Date Thu, 06 Aug 2009 06:06:22 GMT
On Thu, Aug 6, 2009 at 12:45 AM, Curt Arnold<carnold@apache.org> wrote:
> The CouchDB now has at least snapshots of three non-ASL licensed, non-ASF
> developed projects in the SVN.  The following message suggests that mochiweb
> in the CouchDB repo is forked and incompatible with the main distribution:
>
> http://mail-archives.apache.org/mod_mbox/couchdb-user/200907.mbox/%3C000001ca0dbe$72ac9220$5805b660$@grice@logosworld.com%3E
>

Couple quick notes:

First, I'm still perplexed by that linked email. Perhaps I didn't
follow the original thread close enough but the two big things would
be that our version of MochiWeb is installed into
'/usr/local/lib/couchdb/mochiweb-$(VERSION)' by default which is in a
quite non-Erlangian location. How it conflicted with a different
install was suggestive of a complex user scenario. My assumption was
that it was mostly a conflict of versioning rather than some CouchDB
modification to the MochiWeb code base.

That said, we do have a slightly different JSON representation. This
came about during a conversation between Damien Katz, Joe Armstrong,
and Bob Ippolito on the CouchDB dev mailing list [1]. In essence it
refers to switching from {struct, PROPLIST} to {PROPLIST}. I am
uncertain why this change was never included upstream in MochiWeb.
Given their extremely accommodating responses to CouchDB's HTTP needs
I only assume it was because we never put the patch in their issue
tracker.

[1]  http://mail-archives.apache.org/mod_mbox/couchdb-dev/200807.mbox/%3c5C63EDBB-B530-4D08-9CA1-3C484E74F1C7@apache.org%3e

> Having an external code base in the SVN is an invitation to fork which
> results in the ASF effectively publishing software under a license other the
> the ASL v2.  That is a whole different animal than having a dependency on an
> non-ASL'd licensed piece of software.
>

To my knowledge, none of the third party code in CouchDB svn has
undergone active development. While there may have been an occasional
bug fix in anticipation of upstream inclusion, I don't have explicit
knowledge of anything diverging greatly from upstream trunk. And to
that matter, there have been multiple merges from upstream which I
would hope indicates our commitment to staying in line with those
projects.

> erlang-oauth was introduced into the SVN yesterday to support the
> couch_http_oauth authentication handler.  It is optional, the recently added
> oauth authentication handler would fail to load without it but that should
> be all.  There was no mention that the patch included third-party developed
> software, no dev list discussion or vote or Incubator PMC clearance.  I have
> requested that it be removed from the SVN pending review.
>
> ibrowse was added initially added to the SVN in January and is an HTTP
> client used in replication.  I was unable to find any mailing list
> discussion or Incubator review on the addition of this code base.
>
> mochiweb was added in March 2008 and provides the http server included in
> CouchDB.  The Incubator PMC was aware of this dependency based on the April
> 2008 Incubator PMC board report.  In addition to the http server, CouchDB
> also uses mochiweb routines for parsing query strings, url encoding, etc.
>
> Most of the other dependencies are used in the Futon management client.
>
> To minimize the amount of effort that a user has to perform to satisfy their
> license issues, I think we should consider modularizing couchdb so that a
> user who isn't interested in OAuth does not have to research its license,
> etc.
>
> I'd see the parts as:
>
> core: The database and non-network core of CouchDB.  I would hope this code
> have no dependencies other than OTP.
>
> http: The http server dependent on MochiWeb's http services and core.
>
> replicator: dependent on core and ibrowse
>
> futon: HTTP admin console
>
> oauth: OAuth authenticator, dependent on erlang-oauth
>
> Ideally, the interfaces with mochiweb, ibrowse and the like should be
> designed so that other providers could be substituted without huge effort.
>
> I do think the Incubator PMC should review the situation, but it would be
> good to understand the issues and discuss a path forward before asking for
> review.
>

Thank you for taking the time to review our third party contributions.
I appreciate the effort you're putting forth to make sure that CouchDB
complies with ASF policies for code contributions.

Paul J. Davis

Mime
View raw message