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 5163ADD11 for ; Wed, 26 Sep 2012 08:06:15 +0000 (UTC) Received: (qmail 34048 invoked by uid 500); 26 Sep 2012 08:06:10 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 33904 invoked by uid 500); 26 Sep 2012 08:06:06 -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 33847 invoked by uid 99); 26 Sep 2012 08:06:04 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 08:06:04 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of bchesneau@gmail.com designates 209.85.215.180 as permitted sender) Received: from [209.85.215.180] (HELO mail-ey0-f180.google.com) (209.85.215.180) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 08:05:57 +0000 Received: by eaa1 with SMTP id 1so89734eaa.11 for ; Wed, 26 Sep 2012 01:05:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ZPdyY/5q1fdExNeJ/FQXcfZLXLWHgzX6yOwb6rgouzM=; b=BcbyT1cS3Fb0YCNJGQez0AsOBCL6pu06+HsR2GGWr0dEb0R914+gafizbYucTxsHoA nJCkyjrpUhmMF9PLSoiz5Z+M4gGmbrArZqBDAyQ88CPo/13m1SPX6t7EsFpNT1HX+lgS TV+pkSILt6vgAdX4cCfWuq/9tZaD56uFHHgx4HOWCMNuOteGCUzjXCXzR3rSkdI83Nn9 T82Zo0hKASTNW/AR+qBB6ibiVe+0hlmmwbWd2idf3lDUkgkfMzz6UFP02o3dLx0wIy2F K01KK/l6j66HEEUAxFxWRh8bak5GqhAG3N7q5UiC60fSp79m5iValP2D1akF4csCPzeV HIWQ== MIME-Version: 1.0 Received: by 10.14.213.201 with SMTP id a49mr24251009eep.4.1348646736339; Wed, 26 Sep 2012 01:05:36 -0700 (PDT) Received: by 10.14.175.196 with HTTP; Wed, 26 Sep 2012 01:05:36 -0700 (PDT) In-Reply-To: References: <5060B9C0.7010903@gmail.com> Date: Wed, 26 Sep 2012 10:05:36 +0200 Message-ID: Subject: Re: Part2: What's up dev? About couchapps. From: Benoit Chesneau To: dev@couchdb.apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org On Wed, Sep 26, 2012 at 7:58 AM, Eli Stevens (Gmail) wrote: > On Tue, Sep 25, 2012 at 10:25 PM, Ryan Ramage wrote: >> 1) We have to decide on the directory structure. Based on what benoit >> and dale have brought up. I have opinions, along with others. Lets not >> rattle sabres around this yet. But pick something relatively user >> friendly, and straightforward. This can be actioned in our weekly irc. > > Would it make sense to have the directory structure be something that > isn't couchapp specific, and instead dump/load *entire databases* > to/from disk? I could see that actually making it a simpler tool, > since there would be a natural tendency to resist a bunch of > special-case handling for corner cases, ease of use, etc. Instead, > you'd end up with a directory full of: > > my_doc_id.json > my_doc_id.attachments/my_bin_file.dat > my_doc_id.attachments/my_image_file.jpg > etc. > > Then the various couchapp tools could focus on various workflows to > make creating the simple structure and calling the default DB load > tool. > > I'm not a couchapp user, so feel free to discard this idea if it > doesn't make sense or if it doesn't gain any traction. > > Cheers, > Eli The current structure isn't couchapp specific. In fact you can clone/push a doc using erica or couchapp (py the original). The structure reflect JSON properties on a doc, eg.: folder/item -> {"folder": {"item": "value"}} some.json will be addeded as {"some": contentofsomejson} _attachments/ will contains all attachements. Specific to ddoc : views/vname/{map,reduce}.js shows/ lists/ and even that is just the result of the structure above. The original idea is to allow anyone to create a couch app using the editor he want. That why you have plugin in eclipse, standalone editor on top of it it's really easy. Somehow it also follow the plan9 idea of having everything on the fs. Also as a side note the couchapp fs schema is widely deployed around. Even pubished a doc about it [1] - benoit [1] http://www.ibm.com/developerworks/opensource/tutorials/os-couchapp/index.html