Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D5CFC102CB for ; Wed, 5 Jun 2013 03:46:02 +0000 (UTC) Received: (qmail 51338 invoked by uid 500); 5 Jun 2013 03:46:01 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 51300 invoked by uid 500); 5 Jun 2013 03:45:59 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 51281 invoked by uid 99); 5 Jun 2013 03:45:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jun 2013 03:45:56 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of jason.h.smith@gmail.com designates 209.85.214.172 as permitted sender) Received: from [209.85.214.172] (HELO mail-ob0-f172.google.com) (209.85.214.172) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jun 2013 03:45:49 +0000 Received: by mail-ob0-f172.google.com with SMTP id wo10so1803195obc.17 for ; Tue, 04 Jun 2013 20:45:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=DhYmjs3UDdM7rg4oHBU4grqNzvlhPz2wbmwUkjstcQ0=; b=YL+KRQHcsKurwlNxdUwEt6SaUT7VMm2kNtL//btRCm1d6B0jEw8MZs8eqV4dRtpk6c xe7CxmSeGDBrgy9nXAqqtQ+G9EHlXMN0S1oBZnYohmExNkHvSUgJtoaz/cZ1SL0MqgAj uKhpnRU3vNKKCcUz/ZsOHdNB8eweoQZ9t/rgR+ddAmC0pG2thxFkjph2i9mPE2qbaZ/q lKGM807ir0JuXwvkTqe9vLIWKq0NwVVSXI9rqrHCW6BWvm0t1kbsepS62p2TFGjEFIX6 B1CwO9m2KTaOHEh2kzklQpSPZzZjiChDPd4MlwFEJ2XPVj7ila5yn0ujOofr4zisi+7h uFkg== X-Received: by 10.60.162.70 with SMTP id xy6mr13986272oeb.117.1370403928824; Tue, 04 Jun 2013 20:45:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.103.133 with HTTP; Tue, 4 Jun 2013 20:45:08 -0700 (PDT) In-Reply-To: <20130604224035.GA31324@atypical.net> References: <20130604224035.GA31324@atypical.net> From: Jason Smith Date: Wed, 5 Jun 2013 10:45:08 +0700 Message-ID: Subject: Re: [PROPOSAL] Capability identification To: dev@couchdb.apache.org Content-Type: multipart/alternative; boundary=047d7b41400c60642704de600734 X-Virus-Checked: Checked by ClamAV on apache.org --047d7b41400c60642704de600734 Content-Type: text/plain; charset=UTF-8 On Wed, Jun 5, 2013 at 5:40 AM, Joan Touzet wrote: > Today, if I GET http://localhost:5984/ , I get: > > > {"couchdb":"Welcome","uuid":"b1b1dbe964914a9cb1467bfd4f297fed","version":"1.3.0","vendor":{"version":"1.3.0","name":"The > Apache Software Foundation"}} > > If I GET from http://mozauto.iriscouch.com/ , I get: > > > {"couchdb":"Welcome","uuid":"bac168113808f7ed357fb53f3a7a68bc","version":"1.3.0","vendor":{"version":"1.3.0r1","name":"Iris > Couch"}} > > And if I GET http://wohali.cloudant.com/ , I get: > > {"couchdb":"Welcome","version":"1.0.2","cloudant_build":"1202"} > > I believe I get further still different responses from Pouch and Touch > and other CouchDB-alikes, provided they even have an equivalent of > GET /. > > Long ago, in a galaxy far far away, the developers of Internet Relay > Chat daemons faced a similar problem. While they were bound by a single > RFC (and later, its twin), each developer wanted to extend the program > in interesting and unique ways. Some of those features became > commonplace and built a shared understanding, others were unique > capabilities of specific implementations, and yet others indicated > specific incompatibilities introduced for nefarious purposes. > Chris Anderson used to say, "IRC is the only network which can tolerate netsplits. Also, it is the only network that has netsplits." :P Anyway, I really like this idea. It will be easy to implement in a federated way (everybody fleshes out their own implementation, plus central work on ASF CouchDB). And maybe this could even encourage feature development. Instead of a nasty "nonstandard fork" I can work on a pleasant "new capability." Great example: https://github.com/iriscouch/pingquery_couchdb I exercise this from probe_couchdb I don't even remember how I test for compatibility. What is the starting point? If I just brainstorm a list of potential capabilities to this thread, does that help anybody? --047d7b41400c60642704de600734--