Oh yeah, I forgot to mention: one of the reasons we love engines so much is that we can control the load order! For what it's worth, I think it's a horrible idea not be able to control it. We have several instances where we need engine x in before y ... am I the only one?
On Dec 8, 2006, at 6:34 PM, James Adam wrote: > Hello all, > > Firstly, thanks again for all your support with the development of > this plugin; arguably one of the most complex extensions of Rails, it > would be much harder to keep it all together without your feedback. > > I thought it might be a good idea to fulfil the purpose of this list > by sharing some of my plans for the next release of Rails (1.2). > Rather than being an incremental release, I'm starting with a fresh > codebase, a fresh & clean API and some possibly-significant changes in > functionality. > > Engines are dead, long live engines > ------------------------------------------------- > > Probably the biggest change that I'd like to undertake (and have > already started developing) is the obliteration of the notion of 'an > engine'. It seems clear now, a year in, that the biggest hurdle people > have when thinking about the extra functionality we're aiming at with > engines is the notion of 'installing an engine'. It feels big, it > feels clunky, and basically it paints the wrong picture. So engines > are to be no more. > > Instead, I'd like to open up the functionality of the engines plugin > to *every* plugin the user has. If a plugin has an /app directory, > then it'll get added to the appropriate load paths. If it has a > /public folder, it'll get synced into the public space and the > action_view helpers will work with that. Now, you and I know that the > only thing that really makes, say, the 'login engine' different from > any other plugin is the fact that it needs to include an > 'init_engine.rb' file. This will be one of the biggest changes that > I'm proposing: init_engine.rb will revert to being a vanilla-flavoured > init.rb. > > > And yes, Vanilla, not Neopolitan > -------------------------------------------- > > Here's the other significant change. The reason why init_engine.rb > exists is so that we could control the load order of enginized > plugins, and the reason behind this was twofold: > > 1. So that the engines plugin would be loaded before any plugins > (engines) that needed it > 2. So that engines could require code from other engines > > Feature 1 should no longer be an issue, thanks to some extra work I > can do, but I'm proposing that feature 2 should be abandoned. What I > mean is - unless Rails Core deems to allow controlling of plugin load > order, I won't be providing any guarantees that plugin_x is loaded > before plugin_y. In our experience with the only existing layering of > engines (login + user), it leads to more complication than anything > else. Shucks! Who knew. > > > Other stuff too > ------------------- > > Some other stuff will be changing too, including some nifty tricks > with migrations and routing, but those two changes above are the most > significant and I thought it best to let folks know my plans before > 1.2 really comes out. > > Any thoughts, anyone? Bueller? Anyone? > > -- > * J * > ~ > _______________________________________________ > engine-developers mailing list > [email protected] > http://lists.rails-engines.org/listinfo.cgi/engine-developers-rails- > engines.org _______________________________________________ engine-developers mailing list [email protected] http://lists.rails-engines.org/listinfo.cgi/engine-developers-rails-engines.org
