Hi everybody,

For background, we discussed this on IRC almost a fortnight ago & I
wrote up a proposal.

Situation:
The user experience for installing CouchDB from packages, or building
from source, is at best painful, due to dependency drift of our 2 core
pre-requisites, Erlang/OTP and SpiderMonkey.

- Installing from packages typically delivers you an out-of-date
erlang, possibly unsuitable for production, or relying on backports.

- Building from source leads you to a bewildering array of wiki links,
blog posts, INSTALL.* in github/ASF git, and a variety of other
options.

Neither of these are good outcomes, and even as developers we (at
least I) struggle to remember the exact incantation and sacrifices for
an older release.

Proposal:

1. Consolidate all the install documentation we have into just 2 places:

- INSTALL.* for the steps/dependencies required to build from a source
release. These will have been tested by devs & community during a
release cycle so we can be sure this is appropriate.

2. rst / online docs:

- a .rst doc that lists typical package dependencies and supported
releases. As these are in a 1.2.x or similar branch, and subsequently
generated on http://docs.couchdb.org/ they can be easily amended and
updated over time, whilst still preserving the history that we lose on
the wiki. This would include what packages are recommended, and how to
obtain them.

The wiki pages would be retired, and in practice the bulk of updates
here comes from the usual suspects anyway.

Specifically, for spidermonkey and Erlang, I am proposing that we
recommend using:

- erlang releases from Erlang Solutions [esl]
- spidermonkey from cloudant [cloudant]

This will not prevent those who wish to, to use only bundled packages
in their OS, but it *will* ensure that building from a recent source
will actually work reliably, and repeatably, and can be tested as part
of the CI work that Jan's been leading.

Comments & criticism welcomed!

A+
Dave

Background:
The version of CouchDB available in recent & current distribution lags
our latest release significantly. In many cases, the dependencies
required for CouchDB are not ideal, or in some cases, even compatible,
and neither maintainers nor ourselves are able to address this easily.

Lucid (LTS):  ok, but doesn't support NIFs
Oneiric: amd64 has R14B02, which is not usable at all.
Precise & Quantal: good (yay)
Squeeze: r14a (wat)
Wheezy: r15b01 good - yay

And in all cases, spidermonkey is typically a hit-and-miss fiasco.
This again, is not due to a specific failure, just a reality that we
rely on a library that's primary purpose  is a web browser, as opposed
to an embeddable component like libcurl or icu.

[ubuntu]: http://packages.ubuntu.com/search?keywords=erlang-base
[debian]: http://packages.qa.debian.org/e/erlang.html and
http://packages.debian.org/search?suite=all&arch=any&searchon=names&keywords=erlang-base
[cloudant]: http://packages.cloudant.com/
[esl]:https://www.erlang-solutions.com/downloads/download-erlang-otp

Reply via email to