You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by Brian LeRoux <b...@brian.io> on 2012/09/11 09:07:16 UTC

[DISCUSS] downstream distribution love

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.