Hi Michael,

Thanks so much for a great series of emails. With my PMC hat on:

> Is this actually worthy of a 3.0 moniker; it seems like it could be
> (breaking changes and dropping 1.X compatibility)?

This is part of the to-come Branding discussion, but yes, there will
be a clear delineation between the current "CouchDB Classic" and the
new FDB-based CouchDB, which may actually be CouchDB 4.0, or "CouchDB
Next 1.0".

There's a strong desire from everyone I've talked to so far to release
"the best CouchDB Classic we can before we release the FDB-based
CouchDB", and if more API deprecations need to occur, I wouldn't
be surprised if that new release line would be CouchDB 3.0.

> Some general, higher level, thoughts (that probably mimic what you
> guys
> have already been thinking):

As to your wishlist - let's break that off to a different discussion,
in the to-be-posted Current Roadmap discussion. The items in the
Current Roadmap are things that the committer base + the PMC agreed
to take as development priorities about 24 months ago:
https://s.apache.org/couch2xroadmap

I would love to see as many of these land in that 3.0 (prior to
FoundationDB) timeframe as possible. Some, like replacing our
dependency on mochiweb (Erlang HTTP server module), must necessarily
be deferred in the interest of retaining maximum backward
compatibility. Adding to that backlog is certainly possible, but
we already have a pretty deep list of topics to deal with.

I don't mean to sound defensive, but we (well, IBM, but I mean the
general active committer community) have been adding incremental
features to CouchDB for a while now - Mango, pluggable storage
engines, the replicator scheduler, and just this past week
partitioned databases. That's been the motivation behind moving from
2.0 -> 2.1 -> 2.2 -> 2.3 -> to-be released 2.4 for partitioned DBs.
They may not be the features that you asked for, but they are the
features people contributed code for ;)

I agree that we need to do better at encouraging the community to
propose these sorts of things, and contribute the code to them, just
as IBM is graciously offering with this FDB proposal. My soon-to-be-
posted RFC proposal should help improve the process by which we get
these proposals out into the community, discussed, and reviewed before
code starts being written. I don't want to see someone in the
community write a full implementation for their new idea, then post
a pull request against our code repository just to have a more
experienced developer reject it on technical grounds. (We have
found ourselves in this situation a few times since 2.0, sadly.)

And as Robert mentions, FoundationDB at the bottom should actually
improve our ability to do exciting things by abstracting away some
of the problems. That said, we can't ignore the FoundationDB code
base itself - one more of the to-come 8 posts is targeted at this
very topic.

Thanks for the posts - keep them coming!

-Joan

Reply via email to