Return-Path: X-Original-To: apmail-incubator-callback-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-callback-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1FFAEDBE6 for ; Tue, 11 Sep 2012 07:07:46 +0000 (UTC) Received: (qmail 92139 invoked by uid 500); 11 Sep 2012 07:07:45 -0000 Delivered-To: apmail-incubator-callback-dev-archive@incubator.apache.org Received: (qmail 92036 invoked by uid 500); 11 Sep 2012 07:07:45 -0000 Mailing-List: contact callback-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: callback-dev@incubator.apache.org Delivered-To: mailing list callback-dev@incubator.apache.org Received: (qmail 92016 invoked by uid 99); 11 Sep 2012 07:07:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Sep 2012 07:07:44 +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 (nike.apache.org: domain of brian.leroux@gmail.com designates 209.85.215.175 as permitted sender) Received: from [209.85.215.175] (HELO mail-ey0-f175.google.com) (209.85.215.175) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Sep 2012 07:07:36 +0000 Received: by eaad12 with SMTP id d12so63248eaa.6 for ; Tue, 11 Sep 2012 00:07:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=4J16nTJaSyXBp7R/I7YqMZKebmdovUt6BqnAMB7lyb8=; b=RaRc52Ii8G42Gt1Xv3p8yGIZQZsHTM9rpiR+DeVmA6odXeRPQoO2Lo+ScuslCgWczt aJCwDmBn/vWwEKUzGb6p0AHBYWNrCbbSq3p9EV2cNVSQLrnLRksvnQDk4dKMVqJ6xlmx YtY0QB0ZRUwC1RparN6GuCQX8bZeN5Psw6MwJFucuOJt009J6nJpoGYMLT90vmtYimlc 3MFqC0bqxWGnBIOjrChj9DskOZewcH5T0mm54YWda+kc+dhK7KuYzZ84yK9j1Mxf2S4o ZDHARbaLGEk3wJUst5gb6WtlHacmRpzbbcefh+LXoXlCr4kCZ3JtHLM8gAUmeTIwaRXL TpgQ== MIME-Version: 1.0 Received: by 10.14.179.200 with SMTP id h48mr23942634eem.12.1347347236808; Tue, 11 Sep 2012 00:07:16 -0700 (PDT) Sender: brian.leroux@gmail.com Received: by 10.14.95.75 with HTTP; Tue, 11 Sep 2012 00:07:16 -0700 (PDT) Date: Tue, 11 Sep 2012 00:07:16 -0700 X-Google-Sender-Auth: HRfIg7OsMIh2cZ0_dUBBO1e0A3w Message-ID: Subject: [DISCUSS] downstream distribution love From: Brian LeRoux To: callback-dev@incubator.apache.org Content-Type: text/plain; charset=ISO-8859-1 Currently there are a number of distributions in the wild of Apache Cordova, most notable is the origin of our Cordova source: PhoneGap. Many of the original hackers on this mess of source all believe that forking is a feature. We want to encourage distributions that augment, enhance, and otherwise make good use of the effort we put in here. As such I'd like to put forward some goals (FOR DISCUSSION) we might have for downstream distributions: 1. easy to cut a dist (like, one command to do it) 2. straightforward to start using (like, one command to do it) 3. can be composed of only the bits you need/want (configurability of platforms, and core plugins pre-installed) 4. obvious what bits are the Cordova engine and what bits are not Some comments on each. 1. An easy to build dist is somewhat in place with our Coho tool. It will need work to fulfill the other goals. 2. Getting to Hello World is hard. Our CLI tooling is putting us on a good path to getting there. Ripple is another part of this story. 3. Composed of bits meaning: we only include a bridge in our src release and plugins are separated out completely (docs, tests, and all). Coho will need to be modified to work with this use case. 4. This is a branding exercise but can drastically impact how code gets authored. If a plugin is `core` and/or vanilla then I expect it to talk about Cordova and interact with Cordova plugin API surface. If a plugin is NOT core and/or NOT targeting general Cordova platforms: sure maybe it doesn't. Maybe a downstream distribution has additional hooks on top of Cordova: and thats ok if it does. But I think our stance should be that plugins that are targeting maximum reach should only interact w/ the Cordova API. ## Only my opinion I do not want to see any bs where we start copying variables eg: var phonegap = cordova; (Or worse doing a string replace!!) That could prove fatal to project long term health. That said, I obviously support and want to see the best downstream distributions possible. Many of them, ideally. That means working together to figure out the best ways to document and outline interacting with Cordova bits. Increasingly I could imagine the downstream saying things like: 'the cordova engine that powers X'. And maybe that is enough. * * * Please share your thoughts, feedback, ideas.