cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian LeRoux...@brian.io>
Subject Re: Proposal for cli and plugman code rearrangement
Date Thu, 17 Apr 2014 21:01:12 GMT
this is great stuff, thanks everyone, I'm going to kick up threads for the
three open questions


On Thu, Apr 17, 2014 at 1:23 PM, Steven Gill <stevengill97@gmail.com> wrote:

> Looks great!
>
> https://issues.apache.org/jira/browse/INFRA-7596
>
>
> On Thu, Apr 17, 2014 at 12:07 PM, Michal Mocny <mmocny@chromium.org>
> wrote:
>
> > Great showing, everyone.  Here's a quick summary:
> >
> > - Steve will file INFRA ticket to create a single new cordova-lib repo.
> > - We will create node_modules/ folder inside cordova-lib, and Ian will
> use
> > git magic to create two node modules: cordova-cli, and plugman, importing
> > the full git history for each dir.
> > - We will remove the CLI bits from cordova-lib as a secondary patch [TBD:
> > exactly how much can we remove]
> > - We will remove the cordova-lib bits from cordova-cli and plugman [TBD:
> > same question as above], updating the require() paths and adding
> > cordova-lib-cordova-cli and cordova-lib-plugman to npm deps.
> > - At this point, all the code should be 100% the same, the paths just
> > changed a bit.
> > - Over time, we dedup and break out code from cordova-lib-cordova-cli and
> > cordova-lib-plugman into dedicated npm modules.
> > - At first, cordova-cli and cordova-plugman continue to depend only on
> > cordova-lib, and cordova-lib interface routes to correct npm modules, but
> > eventually we refactor CLI's to directly consume the top-level npm module
> > entry points (i.e. perhaps like cordova-lib-project-create,
> > cordova-lib-plugin-publish)
> > - At that point, we can consider which npm modules are not really
> > cordova-lib, but really generic npm modules to live in dedicated repos
> > (perhaps even entirely outside of cordova project, but not sure how to do
> > that..).
> >
> > Some open questions:
> > - How exactly are we going to version / tag / apache release process
> > cordova-lib modules?
> > - How much of CLI's stay in cli: is it a *really* dumb wrapper that
> parses
> > input in a generic fashion and turns it into dumb require() calls with
> > opt's?  Or does it understand the full spec and massage opts into the
> forms
> > cordova-lib-* expect  (both options have value!)
> > - Do CLI's have deps on specific versions of cordova-lib-*, so an apache
> > release means pushing updated package.json deps?
> >
> > In case it isn't clear to everyone, some of the net benefits of this new
> > approach, we think, are:
> > - We have a saner model for code sharing between all the CLI (not just
> > plugman and cordova-cli, but also phonegap, cca, bb, ibm, etc downstream
> > distributions).
> > - We are not impeded by overhead to create a new npm module, which is
> > easier to test and reason about.
> > - We don't push any specific CLI binary onto users if all they want is
> some
> > lib feature.
> >
> >
> > Anything else?
> >
> >
> >
> > On Thu, Apr 17, 2014 at 2:11 PM, Victor Sosa <sosah.victor@gmail.com>
> > wrote:
> >
> > > Are you planning to live stream the hangout?
> > >
> > >
> > > 2014-04-17 12:56 GMT-05:00 Michal Mocny <mmocny@chromium.org>:
> > >
> > > > On Thu, Apr 17, 2014 at 1:28 PM, Andrew Grieve <agrieve@chromium.org
> >
> > > > wrote:
> > > >
> > > > > Some points of discussion for evaluating one repo vs multiple
> repos:
> > > > >
> > > > > - Git Tags
> > > > > - Atomic commits
> > > > > - Going back in time (checking out points in history)
> > > > > - Co-ordinating Pull Requests
> > > >
> > > > Also:
> > > > - Expectations from external contributors
> > > > - Transitioning from what we have today
> > > > - Overhead of breaking out code into an npm module
> > > >
> > > > And some specific questions to discuss today:
> > > > - should plugman module contain the CLI interface only -- forward
> calls
> > > to
> > > > dedicated plugin management npm modules (same as cordova), or should
> it
> > > > itself implement those modules?
> > > > - If we start with a single code repo for npm modules:
> > > >   - do we include cordova and plugman CLI interfaces or just
> > > > implementations?
> > > >   - How do we import module implementation and retain history (git
> > magic)
> > > > - node_modules/ folder suggestion from Isaacs on twitter -- protip or
> > > joke?
> > > > - name for "cordova-lib" -- whats common on npm?
> > > > - Testing
> > > >
> > > >
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Apr 16, 2014 at 4:14 PM, purplecabbage <
> > > purplecabbage@gmail.com>
> > > > > wrote:
> > > > > > Oops, I am okay with anytime tomorrow.
> > > > > > How can they not list time zones in the UI?
> > > > > >
> > > > > > Sent from my iPhone
> > > > > >
> > > > > >> On Apr 16, 2014, at 3:05 PM, Victor Sosa <
> sosah.victor@gmail.com>
> > > > > wrote:
> > > > > >>
> > > > > >> Great!! Thanks Mark
> > > > > >>
> > > > > >>
> > > > > >> 2014-04-16 17:02 GMT-05:00 Mark Koudritsky <kamrik@google.com>:
> > > > > >>
> > > > > >>> I'll arrange a hangout invite link several minutes before
the
> > > start.
> > > > > >>>
> > > > > >>>
> > > > > >>> On Wed, Apr 16, 2014 at 5:44 PM, Victor Sosa <
> > > sosah.victor@gmail.com
> > > > >
> > > > > >>> wrote:
> > > > > >>>
> > > > > >>>> Is this agreed? Are we going to have the meeting
on Thursday,
> > > April
> > > > > 17,
> > > > > >>>> 14:00 ET?
> > > > > >>>> Who's going to send the hangout invite?
> > > > > >>>>
> > > > > >>>>
> > > > > >>>> 2014-04-16 16:40 GMT-05:00 tommy-carlos williams
<
> > > > tommy@devgeeks.org
> > > > > >:
> > > > > >>>>
> > > > > >>>>> Cruel.
> > > > > >>>>>
> > > > > >>>>> The only difference in the Doodle between 2pm
PST and 4pm+
> PST
> > is
> > > > > Jesse
> > > > > >>>>> and Brian.
> > > > > >>>>>
> > > > > >>>>> This won't be forgotten. You two are on my list
now ;)
> > > > > >>>>>
> > > > > >>>>> 4am on Good Friday, here I come. Yay?
> > > > > >>>>>
> > > > > >>>>> - tommy
> > > > > >>>>>
> > > > > >>>>>> On 17 April 2014 at 6:51:47 am, Mark Koudritsky
(
> > > > kamrik@google.com)
> > > > > >>>>> wrote:
> > > > > >>>>>
> > > > > >>>>> Ok, according to the doodle <
> > http://doodle.com/uvyr9454pvepz3a3>
> > > > > >>>> tomorrow
> > > > > >>>>> 14:00 Eastern = 11:00 Pacific seems to be an
ok time. (I
> hope I
> > > got
> > > > > the
> > > > > >>>>> time zones right).
> > > > > >>>>> Let's organized a hangout tomorrow.
> > > > > >>>>>
> > > > > >>>>> For the calendars:
> > > > > >>>>> Thursday, April 17, 14:00 ET
> > > > > >>>>> Thursday, April 17, 11:00 PT
> > > > > >>>>>
> > > > > >>>>>
> > > > > >>>>>
> > > > > >>>>>> On Wed, Apr 16, 2014 at 4:23 PM, Brian LeRoux
<b@brian.io>
> > > wrote:
> > > > > >>>>>>
> > > > > >>>>>> To clear up my intent, I'm proposing
> > > > > >>>>>>
> > > > > >>>>>> 1. Keep the Plugman and Cordova/CLI as separate
repos that
> we
> > > > > publish
> > > > > >>>> as
> > > > > >>>>>> discreet modules (and use npm / package.json
to manage deps)
> > > > > >>>>>> 2. Create a new placeholder repo for staging
common module
> > > > > extraction
> > > > > >>>>>> called cordova-lib
> > > > > >>>>>> 3. Publish many modules from this one git
repo called
> > > cordova-lib
> > > > > and
> > > > > >>>>>> prefix any module from it with `cordova-lib`
(for example
> > > > > >>>>>> cordova-lib-app-create would be a great
module for sharing)
> > > > > >>>>>> 4. Evaluate if any modules can graduate
from cordova-lib to
> > more
> > > > > >>>>> generally
> > > > > >>>>>> useful status and get their own git repos
> > > > > >>>>>>
> > > > > >>>>>> Thoughts?
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>> On Wed, Apr 16, 2014 at 12:28 PM, Carlos
Santana <
> > > > > >>> csantana23@gmail.com
> > > > > >>>>>>> wrote:
> > > > > >>>>>>
> > > > > >>>>>>> Brian
> > > > > >>>>>>> yep I agree with directory "cordova-lib",
"node_modules",
> > > > "common".
> > > > > >>>>>>> "common-lib"
> > > > > >>>>>>> I think we are on the same page.
> > > > > >>>>>>>
> > > > > >>>>>>> What do you mean by "published"? in
"-package.json
> (published
> > > as
> > > > > >>>>>>> cordova-lib-plugin-install)"
> > > > > >>>>>>>
> > > > > >>>>>>> no actually publishing to npm registry,
but just having a
> > > > > >>> convention
> > > > > >>>>> for
> > > > > >>>>>>> the naming of the modules all starting
with "cordova-lib-*"
> > and
> > > > > >>>>> matching
> > > > > >>>>>>> location within repo?
> > > > > >>>>>>>
> > > > > >>>>>>> {
> > > > > >>>>>>> "version": "0.0.1",
> > > > > >>>>>>> "name": "cordova-lib-plugin-install",
> > > > > >>>>>>> ..
> > > > > >>>>>>> }
> > > > > >>>>>>>
> > > > > >>>>>>> {
> > > > > >>>>>>> "version": "0.0.1",
> > > > > >>>>>>> "name": "cordova-lib-util-a",
> > > > > >>>>>>> ..
> > > > > >>>>>>> }
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>>> On Wed, Apr 16, 2014 at 3:11 PM,
Brian LeRoux <b@brian.io
> >
> > > > wrote:
> > > > > >>>>>>>>
> > > > > >>>>>>>> I'm thinking a clean path might
look something like this:
> > > > > >>>>>>>>
> > > > > >>>>>>>> plugman
> > > > > >>>>>>>> '-package.json -> cordova-lib-plugin-install
> > > > > >>>>>>>>
> > > > > >>>>>>>> cordova-cli
> > > > > >>>>>>>> '-package.json -> cordova-lib-plugin-install
> > > > > >>>>>>>>
> > > > > >>>>>>>> cordova-lib
> > > > > >>>>>>>> |-plugin-install
> > > > > >>>>>>>> | '-package.json (published as cordova-lib-plugin-install)
> > > > > >>>>>>>> etc
> > > > > >>>>>>>>
> > > > > >>>>>>>> Wherein all the 'meat' ends up in
cordova-lib and
> > > > > >>>> plugman/cordova-cli
> > > > > >>>>>>>> become light CLI wrappers. I don't
see any reason we
> > > > > >>> change/remove
> > > > > >>>>> the
> > > > > >>>>>>>> already extracted repos for the
CLI and Plugman.
> > > > > >>>>>>>>
> > > > > >>>>>>>>
> > > > > >>>>>>>>
> > > > > >>>>>>>>
> > > > > >>>>>>>> On Wed, Apr 16, 2014 at 11:58 AM,
Carlos Santana <
> > > > > >>>>> csantana23@gmail.com
> > > > > >>>>>>>>> wrote:
> > > > > >>>>>>>>
> > > > > >>>>>>>>> I was going to suggest node_modules
but I think it
> doesn't
> > > work
> > > > > >>>> for
> > > > > >>>>>> us
> > > > > >>>>>>>>> since we have two top level
npm pacakges. If one top
> level
> > > npm
> > > > > >>>>>> pacakge
> > > > > >>>>>>> in
> > > > > >>>>>>>>> the repo then its fine.
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> |cli
> > > > > >>>>>>>>> | '-package.json
> > > > > >>>>>>>>> | '-node_modules/util_a
> > > > > >>>>>>>>> |plugman
> > > > > >>>>>>>>> | '-package.json
> > > > > >>>>>>>>> | '-node_modules/util_a
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> means "util_a" will be duplicated
in repo
> > > > > >>>>>>>>> plugman/node_modules/util_a
> > > > > >>>>>>>>> cli/node_modules/util_a
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> or
> > > > > >>>>>>>>> if you have
> > > > > >>>>>>>>> node_module/util_a at the root,
npm link
> > > ../node_modules/util_a
> > > > > >>>>> still
> > > > > >>>>>>>> needs
> > > > > >>>>>>>>> to be done for cli and plugman
node modules.
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> that's why I suggested to do
the node_modules at
> > dev/publish
> > > > > >>> time
> > > > > >>>>> to
> > > > > >>>>>>>>> populate the both node_modules
one for cli and one for
> > > plugman
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> Or maybe I missed something.
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> The tag for smaller modules,
might be tricky but at the
> > same
> > > > > >>> time
> > > > > >>>>> not
> > > > > >>>>>>>>> necessary if they are consider
bundle/private and living
> in
> > > > > >>> same
> > > > > >>>>> repo
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> Thanks Brian for putting the
question out there on
> twitter
> > > > > >>>>>> interesting
> > > > > >>>>>>>>> feedback.
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> --Carlos
> > > > > >>>>>>>>>
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> On Wed, Apr 16, 2014 at 2:10
PM, Brian LeRoux <
> b@brian.io>
> > > > > >>>> wrote:
> > > > > >>>>>>>>>
> > > > > >>>>>>>>>> I thought the node_modules
comment might have been
> cheeky.
> > > > > >>>>>>> (Suggesting
> > > > > >>>>>>>> we
> > > > > >>>>>>>>>> use npm to manage deps.)
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>> Crap. Totally forgot about
Good Friday. I have a one
> hour
> > > > > >>>> window
> > > > > >>>>>> open
> > > > > >>>>>>>> on
> > > > > >>>>>>>>>> Thu. =(
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>> On Wed, Apr 16, 2014 at
10:51 AM, Mark Koudritsky <
> > > > > >>>>>> kamrik@google.com
> > > > > >>>>>>>>
> > > > > >>>>>>>>>> wrote:
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>>> The tip about placing
the deps under node_modules right
> > > > > >>> away
> > > > > >>>>>> sounds
> > > > > >>>>>>>>> very
> > > > > >>>>>>>>>>> useful. This way the
dev environment will be ready
> right
> > > > > >>>> after
> > > > > >>>>>> git
> > > > > >>>>>>>>> clone;
> > > > > >>>>>>>>>>> npm install with no
extra magic.
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> This Friday is a holiday
in Canada (Good Friday).
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> On Wed, Apr 16, 2014
at 1:45 PM, Steven Gill <
> > > > > >>>>>>> stevengill97@gmail.com
> > > > > >>>>>>>>>
> > > > > >>>>>>>>>>> wrote:
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>>> Git tags are not
something we have talked about yet.
> > > > > >>> Thanks
> > > > > >>>>> for
> > > > > >>>>>>>>> sharing
> > > > > >>>>>>>>>>>> Brian!
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>> On Wed, Apr 16,
2014 at 10:39 AM, Brian LeRoux <
> > > > > >>> b@brian.io
> > > > > >>>>>
> > > > > >>>>>>> wrote:
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> hey guys could
we add Fri to that doodle?
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> I asked around
for opinions and got some interesting
> > > > > >>>>>> responses
> > > > > >>>>>>> to
> > > > > >>>>>>>>> add
> > > > > >>>>>>>>>>> to
> > > > > >>>>>>>>>>>>> the discussion:
> > > > > >>>> https://twitter.com/brianleroux/status/456242928298381312
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> (Nothing really
negative or positive.)
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> On Apr 15, 2014
6:34 PM, "Andrew Grieve" <
> > > > > >>>>>> agrieve@chromium.org
> > > > > >>>>>>>>
> > > > > >>>>>>>>>> wrote:
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> We didn't
have time to cover this today, but I think
> > > > > >>>> it's
> > > > > >>>>>>>> better
> > > > > >>>>>>>>>> off
> > > > > >>>>>>>>>>>>>> as its own
hangout anyways.
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> Created
a doodle for Wed/Thurs. Add yourself if
> you'd
> > > > > >>>>> like
> > > > > >>>>>> to
> > > > > >>>>>>>>>>>>>> participate
in the discussion.
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> http://doodle.com/uvyr9454pvepz3a3
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> On Tue,
Apr 15, 2014 at 11:19 AM, Mark Koudritsky <
> > > > > >>>>>>>>>> kamrik@google.com
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> wrote:
> > > > > >>>>>>>>>>>>>>> A short
proposal<
> > > > > >>>
> > > > >
> > > >
> > >
> >
> https://docs.google.com/document/d/1GVtG6BD266dqRURKaS-GEDefb0tBYt56acxrJEKAfmE/edit
> > > > > >>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>> for
> > > > > >>>>>>>>>>>>>>> how
to rearrange cli and plugman code. Let's
> > > > > >>> discuss
> > > > > >>>> it
> > > > > >>>>>>>> during
> > > > > >>>>>>>>>> the
> > > > > >>>>>>>>>>>>>> hangout
> > > > > >>>>>>>>>>>>>>> today.
Feel free to comment.
> > > > > >>>>>>>>>
> > > > > >>>>>>>>>
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> --
> > > > > >>>>>>>>> Carlos Santana
> > > > > >>>>>>>>> <csantana23@gmail.com>
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>> --
> > > > > >>>>>>> Carlos Santana
> > > > > >>>>>>> <csantana23@gmail.com>
> > > > > >>>>
> > > > > >>>>
> > > > > >>>> --
> > > > > >>>> Victor Adrian Sosa Herrera
> > > > > >>>> IBM Software Engineer
> > > > > >>>> Guadalajara, Jalisco
> > > > > >>
> > > > > >>
> > > > > >>
> > > > > >> --
> > > > > >> Victor Adrian Sosa Herrera
> > > > > >> IBM Software Engineer
> > > > > >> Guadalajara, Jalisco
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Victor Adrian Sosa Herrera
> > > IBM Software Engineer
> > > Guadalajara, Jalisco
> > >
> >
>

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