rave-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Franklin <m.ben.frank...@gmail.com>
Subject Re: Require.js in 0.22
Date Wed, 19 Jun 2013 22:43:05 GMT
On Wed, Jun 19, 2013 at 10:25 AM, Chris Geer <chris@cxtsoftware.com> wrote:

> On Wed, Jun 19, 2013 at 6:28 AM, Erin Noe-Payne <erin.noe.payne@gmail.com
> >wrote:
>
> > Specifically, the idea of require js is to take all references off of
> > the global namespace and to build out and resolve a dependency tree
> > for your client side code.  So if we made it optional, then someone
> > who wanted to take advantage of the feature would need to overlay any
> > place where there is a reference to the global rave object. That
> > includes jsps where there is a script block that uses rave.*, and wrap
> > that in a require block. You would also need to overlay the java class
> > that inserts rave.registerWidget(...) onto the page and wrap those in
> > require blocks. Also any jsp that has an onclick="rave.*" event
> > handler, those would need to be moved to jquery bindings and wrapped
> > in require blocks. Once you had that you would overlay the
> > rave_script.js tag so that instead of link all the scripts, you just
> > reference require.js with a data-main attribute pointing to your
> > bootstrapping script. (See http://requirejs.org/docs/start.html).
> >
> > If instead we make a breaking change, then we would do all of the
> > above work on trunk. An implementer who wanted to go to 0.22 would
> > then be responsible for updating their scripts to be written as AMD
> > modules (http://requirejs.org/docs/api.html#define). The script is
> > wrapped in a require block, remove all references to global namespace
> > objects and instead require those in. Any additional third party
> > scripts you use will need to be added to the require config
> > (http://requirejs.org/docs/api.html#jsfiles).
> >
>
> Thanks Erin, my gut says if we make it optional no one (but maybe Mitre)
> would use it in 0.22 due to the complexity of enabling it. Making it
> optional is a breaking change but it sounds like it's a manageable amount
> of work on implementors. I'll stick by my position that I'm ok with making
> it required in 0.22 since it will be breaking eventually and the optional
> track won't help get people prepared (just cause extra work).
>


+1



>
> Chris
>
> >
> >
> > On Tue, Jun 18, 2013 at 6:24 PM, Chris Geer <chris@cxtsoftware.com>
> wrote:
> > > What would be required exactly?
> > >
> > > On Tuesday, June 18, 2013, Erin Noe-Payne wrote:
> > >
> > >> If we make it optional, we will basically be conditionally AMD
> > >> defining the rave js, and to actually use require it would be on an
> > >> implementer to overlay every file that has script tags or inline
> > >> "onclick" events. In other words it would be a big pain and not really
> > >> worth it unless you really wanted the value of require.js immediately
> > >> - at MITRE we would do that though. It would mostly just be giving 1
> > >> release warning that the old method will be deprecated.
> > >>
> > >> Personally I think the breaking change will be cleaner and more
> > >> consistent with the end state of the angular application. But as it
> > >> will force some amount of work on current implementations wanting to
> > >> go to 0.22, I don't want to go that route unless there is buy-in.
> > >>
> > >> On Tue, Jun 18, 2013 at 6:10 PM, Chris Geer <chris@cxtsoftware.com
> > <javascript:;>>
> > >> wrote:
> > >> > On Mon, Jun 17, 2013 at 5:32 AM, Matt Franklin <
> > m.ben.franklin@gmail.com<javascript:;>
> > >> >wrote:
> > >> >
> > >> >> On Mon, Jun 17, 2013 at 8:29 AM, Sean Cooper <secooper@apache.org
> > <javascript:;>>
> > >> wrote:
> > >> >>
> > >> >> > I am ok with a breaking change as long as it is clearly called
> out
> > in
> > >> the
> > >> >> > release notes.  I am worried that someone will get caught
off
> > guard by
> > >> >> this
> > >> >> > break.
> > >> >> >
> > >> >>
> > >> >> IMO, if it isn't a significant effort we should deprecate the
old
> > way in
> > >> >> 0.22 and go with the optional support for Require.js.
> > >> >>
> > >> >
> > >> > How hard will it be to turn on the feature? If it's overly
> complicated
> > >> > there might not be much value in even putting it in as an optional
> > >> feature.
> > >> > If it's not too bad and we can document it well then optional is
> fine.
> > >> > Otherwise I wouldn't be against the breaking change since we are
> still
> > >> > pre-1.0 and breaking changes are pretty normal (0.21 was breaking
as
> > >> well).
> > >> >
> > >> > Chris
> > >> >
> > >> >>
> > >> >>
> > >> >> > On Jun 16, 2013 11:08 PM, "Erin Noe-Payne" <
> > erin.noe.payne@gmail.com<javascript:;>
> > >> >
> > >> >> > wrote:
> > >> >> >
> > >> >> > > Hey All,
> > >> >> > >
> > >> >> > > As I mentioned in the rave-angular thread, Require.js
will be
> an
> > >> >> > > important part of the angular branch architecture. I
am
> thinking
> > it
> > >> >> > > would be reasonable to introduce AMD support into the
trunk
> even
> > >> >> > > before we release the angular branch, to offer the performance
> > >> >> > > benefits sooner and to introduce the new paradigm. 
My initial
> > >> thought
> > >> >> > > is to make AMD support optional and off by default,
to avoid
> > >> breaking
> > >> >> > > changes.  That would involve...
> > >> >> > >
> > >> >> > > - A couple new rave core and rave portal js files introduced
to
> > >> align
> > >> >> > > with require.js modules, jsp tags updated accordingly.
> > >> >> > > - Each of those js files checks for the existence of
requirejs
> in
> > >> the
> > >> >> > > environment and wraps itself in a define() if yes, otherwise
> acts
> > >> the
> > >> >> > > same as before.
> > >> >> > >
> > >> >> > > In this scenario anyone who wanted to take advantage
of
> > require.js
> > >> >> > > would need to do some amount of overlaying to introduce
> require,
> > >> >> > > update the script jsp tags, and so on.
> > >> >> > >
> > >> >> > > Alternatively, if there is interest we could introduce
require
> > as a
> > >> >> > > breaking change for 0.22 and integrate the require.js
optimizer
> > into
> > >> >> > > the build process. The advantage would be no need to
overlay to
> > get
> > >> >> > > AMD support, the disadvantage is any implementation
updating to
> > 0.22
> > >> >> > > would need to update their container scripts to be compatible
> > with
> > >> >> > > AMD. In either case this would have no impact on gadgets.
> > >> >> > >
> > >> >> > > Thoughts?
> > >> >> > >
> > >> >> >
> > >> >>
> > >>
> >
>

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