cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Braden Shepherdson <bra...@chromium.org>
Subject Re: Moving www into an app folder
Date Mon, 25 Mar 2013 22:01:49 GMT
I agree that this recreation is a goal, but I don't think moving plugins/
under app/ is the right way to do it.

I think the right way to do it is to specify the plugin dependencies of the
app in app/. Currently that means in the documentation or a script, in the
future probably in config.xml.

Braden


On Mon, Mar 25, 2013 at 4:09 PM, Filip Maj <fil@adobe.com> wrote:

> I think the issue here is: how far do we want to dictate the project
> structure for a cordova-cli-generated app?
>
> Merges kind of "evolved" out of an actual user who needed a viable use
> case covered (thanks Michael Wolf!). It is where it is for really no
> reason other than "this is a good feature to have." Consider it like a
> first pass at an implementation. We can iterate on it to make it better.
>
> One thing about the app/ proposal is that the stated objective is to
> enable shipping a single directory to be able to recreate the native
> projects. If that is the case, wouldn't we also have to move the plugins
> into app/ ?
>
> On 3/25/13 11:25 AM, "Braden Shepherdson" <braden@chromium.org> wrote:
>
> >They are, right now, a kind of middle ground. If you rm -rf'd the
> >directory, it wouldn't be all better on the next cordova prepare; that's
> >where we hope to reach soon.
> >
> >On the other hand, you definitely shouldn't be having code in them -
> >native
> >or otherwise - that didn't come from a plugin or from www/. So they could
> >be reconstructed from data stored elsewhere, which makes them mostly a
> >build artifact, and certainly not necessary to store in your source
> >control.
> >
> >Braden
> >
> >
> >On Mon, Mar 25, 2013 at 2:17 PM, Brian LeRoux <b@brian.io> wrote:
> >
> >> While this might be our goal it is in no way true that ./platforms ia
> >> build artifact today or anytime soon.
> >>
> >> On Mon, Mar 25, 2013 at 10:55 AM, Braden Shepherdson
> >> <braden@chromium.org> wrote:
> >> > The same is /not/ true of the current structure, because one
> >>(probably)
> >> > doesn't want to be committing build artifacts like platforms/, or
> >>cached
> >> > third-party data like plugins/ into your git repo.
> >> >
> >> > The idea here is that everything under app/ is what you would keep in
> >>git
> >> > for a team working on an app: www, config.xml, docs, samples, etc.
> >> Putting
> >> > that content at the top-level instead means you have lots of extra
> >>build
> >> > artifact cruft in your git repo, or your devs just have to know that
> >> > platforms/ and plugins/ are in .gitignore.
> >> >
> >> > Braden
> >> >
> >> >
> >> > On Mon, Mar 25, 2013 at 1:45 PM, Brian LeRoux <b@brian.io> wrote:
> >> >
> >> >> But, if you go up one level, the same is true w/ the current
> >> >> structure. Its just an organizational difference? (Thats a perfectly
> >> >> ok answer of course. Aesthetics and symmetry are plenty convincing
> >> >> arguments.)
> >> >>
> >> >> In my view ./merges isn't your app. The ./merges dir is in parts of
> >> >> your app on a per platform basis. Hence the logic for having it exist
> >> >> at the same level as ./platforms.
> >> >>
> >> >> Having config.xml exist in the ../www does bother me.
> >> >>
> >> >>
> >> >> On Mon, Mar 25, 2013 at 10:33 AM, Braden Shepherdson
> >> >> <braden@chromium.org> wrote:
> >> >> > It allows easier cloning of your app (meaning the www, config.xml,
> >>and
> >> >> any
> >> >> > samples and so on) into a self-contained directory. It also lets
us
> >> keep
> >> >> > the user's app within a single top-level directory (rather than
www
> >> and
> >> >> > merges and potentially more later).
> >> >> >
> >> >> > Because only the www (and merges) would get pulled into the actual
> >> app,
> >> >> any
> >> >> > docs, samples, tests, or other miscellany in the git repo won't
be
> >> part
> >> >> of
> >> >> > the app.
> >> >> >
> >> >> >
> >> >> > On Mon, Mar 25, 2013 at 1:19 PM, Brian LeRoux <b@brian.io>
wrote:
> >> >> >
> >> >> >> Ok, let me try again. What is precisely problem we are solving
by
> >> >> >> changing the structure? To be clear, I'm not really against
or for
> >> it.
> >> >> >> I just don't understand why this is important.
> >> >> >>
> >> >> >>
> >> >> >> On Mon, Mar 25, 2013 at 10:06 AM, Braden Shepherdson
> >> >> >> <braden@chromium.org> wrote:
> >> >> >> > +1 is still a handy means of displaying your support
or
> >>otherwise.
> >> >> >> >
> >> >> >> > If you do want to version the platforms/ and plugins/
folders at
> >> the
> >> >> top
> >> >> >> > level, you can do that. If you're versioning everything,
then
> >>you
> >> >> should
> >> >> >> be
> >> >> >> > checking out that master repo, rather than the master
repo and
> >>then
> >> >> the
> >> >> >> app
> >> >> >> > repo inside it, so it should all work fine.
> >> >> >> >
> >> >> >> > Braden
> >> >> >> >
> >> >> >> >
> >> >> >> > On Mon, Mar 25, 2013 at 12:37 PM, Brian LeRoux <b@brian.io>
> >>wrote:
> >> >> >> >
> >> >> >> >> (Btw this isn't a vote thread guys.)
> >> >> >> >>
> >> >> >> >> On Mon, Mar 25, 2013 at 9:37 AM, Brian LeRoux <b@brian.io>
> >>wrote:
> >> >> >> >> > So, what if you want to version the ./platorms
folder? I
> >>don't
> >> like
> >> >> >> >> > it, but ppl will do.
> >> >> >> >> >
> >> >> >> >> > On Mon, Mar 25, 2013 at 9:10 AM, James Jong
<
> >> wjamesjong@gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> >> +1 for app folder and cordova create <app
location>
> >> >> >> >> >> I would like to see it support a git-URL
or local.  It's
> >>nice
> >> to
> >> >> have
> >> >> >> >> it all neatly in app/  but can also see arguments
for having
> >>www/
> >> as
> >> >> >> >> top-level.
> >> >> >> >> >>
> >> >> >> >> >> -James Jong
> >> >> >> >> >>
> >> >> >> >> >> On Mar 25, 2013, at 10:32 AM, Braden Shepherdson
<
> >> >> >> braden@chromium.org>
> >> >> >> >> wrote:
> >> >> >> >> >>
> >> >> >> >> >>> A big +1 from me for this world, Michal's
option 2.
> >> >> >> >> >>>
> >> >> >> >> >>> I want to be able to cordova create
<some-git-URL>, and
> >>have
> >> it
> >> >> >> create
> >> >> >> >> an
> >> >> >> >> >>> empty project where the app/ directory
is the git repo.
> >> >> >> >> >>>
> >> >> >> >> >>> Then a full project might look like
this:
> >> >> >> >> >>>
> >> >> >> >> >>> platforms/
> >> >> >> >> >>>    android/
> >> >> >> >> >>>    ios/
> >> >> >> >> >>> plugins/
> >> >> >> >> >>>    ...
> >> >> >> >> >>> app/
> >> >> >> >> >>>    merges/
> >> >> >> >> >>>        ...
> >> >> >> >> >>>    www/
> >> >> >> >> >>>        ...
> >> >> >> >> >>>    README.md
> >> >> >> >> >>>    config.xml
> >> >> >> >> >>>    docs/
> >> >> >> >> >>>    etc...
> >> >> >> >> >>>
> >> >> >> >> >>> So I can have whatever meta-information
I want inside my
> >>app/
> >> >> (and
> >> >> >> >> >>> therefore my git repo) - tests, docs,
samples, etc. - but
> >>not
> >> >> inside
> >> >> >> >> the
> >> >> >> >> >>> www that actually ships. This makes
it sane to have just
> >>the
> >> >> app's
> >> >> >> >> files in
> >> >> >> >> >>> git, but not the platforms/ or plugins/
directories.
> >> >> >> >> >>>
> >> >> >> >> >>> Braden
> >> >> >> >> >>>
> >> >> >> >> >>>
> >> >> >> >> >>> On Sun, Mar 24, 2013 at 6:02 PM, Michal
Mocny <
> >> >> mmocny@chromium.org>
> >> >> >> >> wrote:
> >> >> >> >> >>>
> >> >> >> >> >>>> So a few questions:
> >> >> >> >> >>>>
> >> >> >> >> >>>> 0. Do we want to support app distribution?
 Sample apps,
> >>Test
> >> >> >> Harness,
> >> >> >> >> >>>> working in a team, open source projects..
hint at yes,
> >>but we
> >> >> could
> >> >> >> >> just
> >> >> >> >> >>>> leave that to be done manually.
> >> >> >> >> >>>> 1. Do we want to support app documentation?
Where would
> >>you
> >> put
> >> >> it
> >> >> >> if
> >> >> >> >> you
> >> >> >> >> >>>> wanted to ship it along with a app?
> >> >> >> >> >>>> 2. Do we have any apps already using
the merges/ folder?
> >>  How do
> >> >> >> they
> >> >> >> >> ship
> >> >> >> >> >>>> it?
> >> >> >> >> >>>>
> >> >> >> >> >>>> I suspect what would happen now
is app devs would already
> >> need
> >> >> an
> >> >> >> app
> >> >> >> >> >>>> folder to keep all the pieces, would
cordova create a
> >> workspace,
> >> >> >> and
> >> >> >> >> >>>> link/copy over www/ and merges/.
> >> >> >> >> >>>>
> >> >> >> >> >>>> If we wanted to support app distribution
(such that say
> >> cordova
> >> >> >> create
> >> >> >> >> >>>> <path-to-app>), we would need
to support importing from an
> >> app
> >> >> >> folder
> >> >> >> >> (for
> >> >> >> >> >>>> the two folder merges and www reason
alone).  Yet we
> >> currently
> >> >> >> plan to
> >> >> >> >> >>>> unpack that app folder inside the
workspace.
> >> >> >> >> >>>>
> >> >> >> >> >>>> -Michal
> >> >> >> >> >>>>
> >> >> >> >> >>>>
> >> >> >> >> >>>> On Sun, Mar 24, 2013 at 5:22 PM,
Brian LeRoux <b@brian.io
> >
> >> >> wrote:
> >> >> >> >> >>>>
> >> >> >> >> >>>>> Ya no worries we'll advocate
on best for the project vs
> >>our
> >> >> >> >> particular
> >> >> >> >> >>>>> downstream. File path handling,
while tedious, is most
> >> >> certainly
> >> >> >> not
> >> >> >> >> a
> >> >> >> >> >>>>> reason to block a reasonable
change.
> >> >> >> >> >>>>>
> >> >> >> >> >>>>> I think this is reasonable but
not convinced it is a win.
> >> >> >> >> >>>>>
> >> >> >> >> >>>>> On Fri, Mar 22, 2013 at 7:35
PM, Michal Mocny <
> >> >> >> mmocny@chromium.org>
> >> >> >> >> >>>> wrote:
> >> >> >> >> >>>>>> Ah yes, I see what you are
asking.  The point being that
> >> >> phonegap
> >> >> >> >> build
> >> >> >> >> >>>>>> would need to change to
work with the new structure.
> >> >> >> >> >>>>>>
> >> >> >> >> >>>>>> Its a fair point, and its
important generally to not
> >>harm
> >> >> >> downstream
> >> >> >> >> >>>>>> distributions on purpose,
but I think we generally
> >>should
> >> do
> >> >> >> whats
> >> >> >> >> best
> >> >> >> >> >>>>> for
> >> >> >> >> >>>>>> cordova and give downstream
every opportunity to adjust.
> >>  With
> >> >> >> this
> >> >> >> >> >>>>>> particular proposal I can
only image it would not be a
> >> >> problem,
> >> >> >> >> >>>>> especially
> >> >> >> >> >>>>>> if they use the same tools
internally (but the actual
> >> phonegap
> >> >> >> build
> >> >> >> >> >>>> team
> >> >> >> >> >>>>>> should speak here).
> >> >> >> >> >>>>>>
> >> >> >> >> >>>>>> -Michal
> >> >> >> >> >>>>>>
> >> >> >> >> >>>>>>
> >> >> >> >> >>>>>> On Fri, Mar 22, 2013 at
10:27 PM, Tommy-Carlos Williams
> >> >> >> >> >>>>>> <tommy@devgeeks.org>wrote:
> >> >> >> >> >>>>>>
> >> >> >> >> >>>>>>> I just mean that build
expects config.xml to be in www,
> >> yeah?
> >> >> >> >> >>>>>>>
> >> >> >> >> >>>>>>>
> >> >> >> >> >>>>>>>
> >> >> >> >> >>>>>>> On 23/03/2013, at 1:12
PM, Michal Mocny <
> >> mmocny@chromium.org
> >> >> >
> >> >> >> >> wrote:
> >> >> >> >> >>>>>>>
> >> >> >> >> >>>>>>>> But isn't the app
incomplete without the merges
> >>folder?
> >> >>  Most
> >> >> >> apps
> >> >> >> >> >>>>>>> probably
> >> >> >> >> >>>>>>>> don't use it, but
for those that do, a zip of www
> >>isn't
> >> >> enough,
> >> >> >> >> you
> >> >> >> >> >>>>>>> already
> >> >> >> >> >>>>>>>> need to ship more
than just the www folder.  Creating
> >>an
> >> app
> >> >> >> >> folder
> >> >> >> >> >>>>> would
> >> >> >> >> >>>>>>>> actually make the
situation easier I think.
> >> >> >> >> >>>>>>>>
> >> >> >> >> >>>>>>>> project
> >> >> >> >> >>>>>>>> - platforms
> >> >> >> >> >>>>>>>> - ..
> >> >> >> >> >>>>>>>> - plugins
> >> >> >> >> >>>>>>>> - ...
> >> >> >> >> >>>>>>>> - app(s?)
> >> >> >> >> >>>>>>>> - www/
> >> >> >> >> >>>>>>>> - merges/
> >> >> >> >> >>>>>>>> - config.xml
> >> >> >> >> >>>>>>>> - README.md
> >> >> >> >> >>>>>>>> - docs/
> >> >> >> >> >>>>>>>> - etc stuff that
doesn't get copied into platform/
> >> output on
> >> >> >> build
> >> >> >> >> >>>>>>>>
> >> >> >> >> >>>>>>>>
> >> >> >> >> >>>>>>>> (oh, and hey, notice
the similarity in structure to
> >> plugins?
> >> >> >> just
> >> >> >> >> >>>>>>> sayin..)
> >> >> >> >> >>>>>>>>
> >> >> >> >> >>>>>>>>
> >> >> >> >> >>>>>>>>
> >> >> >> >> >>>>>>>> On Fri, Mar 22,
2013 at 7:00 PM, Tommy-Carlos Williams
> >> >> >> >> >>>>>>>> <tommy@devgeeks.org>wrote:
> >> >> >> >> >>>>>>>>
> >> >> >> >> >>>>>>>>> Can I just ask
a question about this?
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>> Is the config.xml
supposed to be compatible with
> >> >> >> >> >>>> build.phonegap.comat
> >> >> >> >> >>>>>>>>> all?
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>> I ask because
I could see a scenario where you might
> >> want
> >> >> to
> >> >> >> use
> >> >> >> >> >>>> the
> >> >> >> >> >>>>> cli
> >> >> >> >> >>>>>>>>> tools, but still
utilise build.phonegap.com for
> other
> >> >> >> platforms
> >> >> >> >> >>>> (or
> >> >> >> >> >>>>>>> even
> >> >> >> >> >>>>>>>>> for the ones
supported by the cli).
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>> If the cli config.xml
is "build" compatible, it makes
> >> sense
> >> >> >> for
> >> >> >> >> it
> >> >> >> >> >>>>> to be
> >> >> >> >> >>>>>>>>> in the www folder
so that the www folder can go
> >> straight to
> >> >> >> >> >>>>>>>>> build.phonegap.com.
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>> On 23/03/2013,
at 9:15 AM, Brian LeRoux <b@brian.io>
> >> >> wrote:
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>>> I'm ok with
./merges at the same level as ./www but
> >>the
> >> >> >> >> config.xml
> >> >> >> >> >>>>>>>>>> inside of
./www bugs me too. I think having a root
> >> level
> >> >> >> ./www
> >> >> >> >> >>>> just
> >> >> >> >> >>>>>>>>>> works well
mentally in that its obvious whats there,
> >> what
> >> >> it
> >> >> >> >> does,
> >> >> >> >> >>>>> and
> >> >> >> >> >>>>>>>>>> who it effects.
The ./merges folder is really just
> >> stuff
> >> >> that
> >> >> >> >> gets
> >> >> >> >> >>>>>>>>>> added to
./www in the right cases so having at the
> >>same
> >> >> >> depth is
> >> >> >> >> >>>> ok
> >> >> >> >> >>>>>>>>>> (for me).
> >> >> >> >> >>>>>>>>>>
> >> >> >> >> >>>>>>>>>> I get where
you are coming from though.
> >> >> >> >> >>>>>>>>>>
> >> >> >> >> >>>>>>>>>> The real
sticky bit is a config file hiding with the
> >> app
> >> >> >> >> >>>>>>>>>> implementation.
It seems like that would live at the
> >> root.
> >> >> >> The
> >> >> >> >> >>>> idea
> >> >> >> >> >>>>> of
> >> >> >> >> >>>>>>>>>> having it
inside of ./www is a simple zip and
> >>rename of
> >> >> ./www
> >> >> >> >> >>>> would
> >> >> >> >> >>>>>>>>>> result in
an installable package...but logically
> >>with
> >> our
> >> >> >> >> tooling
> >> >> >> >> >>>>> and
> >> >> >> >> >>>>>>>>>> such that
would be a build artifact that just lives
> >>in
> >> >> >> >> ./platforms
> >> >> >> >> >>>>>>>>>> after we
do our magic.
> >> >> >> >> >>>>>>>>>>
> >> >> >> >> >>>>>>>>>> =/
> >> >> >> >> >>>>>>>>>>
> >> >> >> >> >>>>>>>>>>
> >> >> >> >> >>>>>>>>>> On Fri,
Mar 22, 2013 at 1:24 PM, Michal Mocny <
> >> >> >> >> >>>> mmocny@chromium.org>
> >> >> >> >> >>>>>>>>> wrote:
> >> >> >> >> >>>>>>>>>>> Paraphrasing
our meeting notes today:
> >> >> >> >> >>>>>>>>>>>
> >> >> >> >> >>>>>>>>>>> * currently
www/ has to have config.xml inside it,
> >> docs
> >> >> >> inside
> >> >> >> >> >>>> it,
> >> >> >> >> >>>>>>>>> README
> >> >> >> >> >>>>>>>>>>> etc
> >> >> >> >> >>>>>>>>>>> * merges
folder is already a sibling of www/ but
> >>its
> >> >> >> logically
> >> >> >> >> >>>>> part of
> >> >> >> >> >>>>>>>>> the
> >> >> >> >> >>>>>>>>>>> app.
> >> >> >> >> >>>>>>>>>>> * So,
why not move everything that isn't the actual
> >> >> assets
> >> >> >> of
> >> >> >> >> the
> >> >> >> >> >>>>> app
> >> >> >> >> >>>>>>>>>>> itself
out of www?
> >> >> >> >> >>>>>>>>>>> * Option
1: move everything out into the root.
> >> >> >> >> >>>>>>>>>>> * harder
for git versioning your app, since cordova
> >> >> >> artifacts
> >> >> >> >> >>>>>>>>>>> (platforms,
plugins) are inside.
> >> >> >> >> >>>>>>>>>>> * Option
2: make a new top level "app/" folder that
> >> holds
> >> >> >> >> merges/
> >> >> >> >> >>>>> and
> >> >> >> >> >>>>>>>>> www/
> >> >> >> >> >>>>>>>>>>> and
manifestes etc
> >> >> >> >> >>>>>>>>>>> * then
you can just clone/install an app into one
> >> >> location
> >> >> >> >> >>>>>>>>>>>
> >> >> >> >> >>>>>>>>>>>
> >> >> >> >> >>>>>>>>>>> And
I'll throw out a third option: Create an "apps"
> >> >> folder
> >> >> >> >> which
> >> >> >> >> >>>>> can
> >> >> >> >> >>>>>>>>> have
> >> >> >> >> >>>>>>>>>>> any
number of named apps, like plugins.
> >> >> >> >> >>>>>>>>>>>
> >> >> >> >> >>>>>>>>>>>
> >> >> >> >> >>>>>>>>>>> I think
(2) should be totally doable (just change
> >>some
> >> >> >> default
> >> >> >> >> >>>>> paths
> >> >> >> >> >>>>>>> in
> >> >> >> >> >>>>>>>>> the
> >> >> >> >> >>>>>>>>>>> tooling)
and is a strict improvement (minus the
> >> hassle of
> >> >> >> >> moving
> >> >> >> >> >>>>> your
> >> >> >> >> >>>>>>>>> files
> >> >> >> >> >>>>>>>>>>> around
the first time for app devs).  (3) I think
> >>is
> >> >> >> >> interesting,
> >> >> >> >> >>>>> but
> >> >> >> >> >>>>>>>>> is a
> >> >> >> >> >>>>>>>>>>> bit
of a departure.
> >> >> >> >> >>>>>>>>>>>
> >> >> >> >> >>>>>>>>>>> -Michal
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>>>
> >> >> >> >> >>>>>>>
> >> >> >> >> >>>>>>>
> >> >> >> >> >>>>>
> >> >> >> >> >>>>
> >> >> >> >> >>
> >> >> >> >>
> >> >> >>
> >> >>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message