Definitely. Talking about changes is cool, not talking about it -- not cool.
On Tue, Sep 24, 2013 at 11:01 AM, purplecabbage <purplecabb...@gmail.com>wrote: > Q is a good choice. Not talking about it was absolutely the wrong choice. > There are no internal teams , there is only this list. > > Sent from my iPhone > > > On Sep 24, 2013, at 6:48 AM, Braden Shepherdson <bra...@chromium.org> > wrote: > > > > We debated internally at Google how much to talk about this. In the end > we > > decided that since the external APIs were not changing, this could be > > claimed as an internal refactoring. I'm not sure whether that was the > right > > call. > > > > About fetch and platforms, to be clear, those are far from the only > modules > > that have changes, they're just the examples I chose. Using almost any of > > the internal modules directly will require refactoring. > > > > Braden > > > > > >> On Tue, Sep 24, 2013 at 6:56 AM, Anis KADRI <anis.ka...@gmail.com> > wrote: > >> > >> cool. > >> > >> I don't think we're using fetch/platforms directly. > >> > >> -a > >> > >>> On Tue, Sep 24, 2013 at 11:35 AM, Brian LeRoux <b...@brian.io> wrote: > >>> Kewl. I'm down and happen to really like Q. Not sure everyone will > agree. > >>> Maybe next time a heads up to the list so we can discuss arch changes > >> like > >>> this. > >>> > >>> > >>> On Mon, Sep 23, 2013 at 8:13 PM, Braden Shepherdson < > bra...@chromium.org > >>> wrote: > >>> > >>>> Whoops, I forgot to mention, I created and pushed a cordova-3.1.x > >> branch of > >>>> both tools before merging this; fixes for the 3.1.0 release should be > in > >>>> there. I don't intend to launch the refactored code to NPM until we've > >> had > >>>> at least a week of trying it out. > >>>> > >>>> Braden > >>>> > >>>> > >>>> On Mon, Sep 23, 2013 at 2:08 PM, Braden Shepherdson < > >> bra...@chromium.org > >>>>> wrote: > >>>> > >>>>> tl;dr: Plugman and CLI now uses Q.js[1] Promises internally instead > of > >>>>> callbacks. This has significantly clarified and shortened the code. > >> The > >>>>> public API (plugman.fetch, cordova.platform, etc.) HAVE NOT changed! > >>>>> > >>>>> If you use CLI on the command line, nothing has changed. > >>>>> > >>>>> If you downstream CLI and/or Plugman, but use cordova.foo and > >>>> plugman.foo, > >>>>> nothing has changed (except possibly that a few calls are a bit more > >>>> async > >>>>> than before, so code that cheats and pretends they're sync might fail > >>>> now). > >>>>> > >>>>> If you downstream either one, but require internal modules like > >> fetch.js > >>>>> or platform.js directly, you should stop doing that and use > >> plugman.fetch > >>>>> etc. instead. If you want to continue calling them directly, you'll > >> need > >>>> to > >>>>> port to use promises. > >>>>> > >>>>> If you've been working on Plugman or CLI and I just broke everything, > >>>> feel > >>>>> free to yell at me on IRC (#cordova, shepheb) or Gtalk (braden at > >> google > >>>>> dot com) or email. It's not hard to port things to handle promises > >> (see > >>>>> below), and their basic use is not hard to understand (see the > >>>> tutorial[1]). > >>>>> > >>>>> If you really do need to port something, and you used to do a > function > >>>>> call like this: > >>>>> > >>>>> whateverFunc(args..., function(err){ > >>>>> if (err) { > >>>>> foo > >>>>> } else { > >>>>> bar > >>>>> } > >>>>> }); > >>>>> > >>>>> the correct call is now: > >>>>> > >>>>> whateverFunc(args...).done(function() { > >>>>> bar > >>>>> }, function(err) { > >>>>> foo > >>>>> }); > >>>>> > >>>>> > >>>>> [1] Q.js tutorial at https://github.com/kriskowal/q > >> >