Hi, I don't really see the order problem as a problem we have to solve. If you're registering multiple things, then it seems logical to me that if A references B, you register B first and then A. It's not clear to me where these potential complex rules would show up?
Brecht. On Sat, Jan 22, 2011 at 5:33 PM, Martin Poirier <the...@yahoo.com> wrote: > Hi, > > The problem I have with taking a decision now is that we haven't solved the > order problem. > > If it turns out to require very complex rules, it might be easier to solve > automatically than manually (or vice versa). > > What I mean is that I don't think we have all the data to take a good > decision at this point. Especially if correctly solving the problem means > changes in the RNA api layer (it might), it would be better to start early > (before the API is stabilized too much). > > Martin > > --- On Sat, 1/22/11, Ton Roosendaal <t...@blender.org> wrote: > >> From: Ton Roosendaal <t...@blender.org> >> Subject: Re: [Bf-committers] Removing auto registration >> To: "bf-blender developers" <bf-committers@blender.org> >> Received: Saturday, January 22, 2011, 11:24 AM >> Hi, >> >> Yes that sounds clean and clear. But apparently there's >> more ways to >> solve the problem, and either way has pros and cons. When >> visions on >> such problems don't align, then how to decide? The >> maintainers and >> main contributors to the code then can have a final word. >> >> -Ton- >> >> ------------------------------------------------------------------------ >> Ton Roosendaal Blender Foundation t...@blender.org >> www.blender.org >> Blender Institute Entrepotdok 57A >> 1018AD Amsterdam The Netherlands >> >> On 22 Jan, 2011, at 16:24, Martin Poirier wrote: >> >> > Hi Ton, >> > >> > I'll try to explain this as simply as possible. >> > >> > Registering python classes with the RNA system has to >> be done in a >> > specific order to solve dependency issues. >> > >> > Unregistering (when unloading) also has to be done in >> a specific >> > order (not the same, maybe not just reverse order). >> > >> > There are situations for which a good order isn't >> currently known >> > (theorically, on paper). >> > >> > This is the registration order problem. >> > >> > >> > If we choose to go with manual registration, we have >> to solve that >> > problem and have very special guidelines for python >> programmers, >> > otherwise stuff will break. >> > >> > If we choose to go with automatic registration, we >> have to solve >> > that problem and then write code that applies that >> solution (if that >> > can't be done, at last resort, there could be a way to >> turn it off >> > in specific cases and have to do it manually). >> > >> > In either case, not solving the registration problem >> is a bad thing >> > and things will break. >> > >> > In my wiki pages, I've proposed a solution to the >> problem that seems >> > simple and can easily be applied to both automatic or >> manual >> > registration (it's a simple set of rules like: UI >> first, then >> > operators, then ...), all that's needed is for other >> people to >> > validate this. >> > >> > Again, regardless of what registration method we use, >> the order >> > problem has to be fixed (before we switched to >> automatic >> > registration, people use to shuffle stuff around until >> it appeared >> > to work, that's not a solution). >> > >> > Is that clear? >> > >> > Martin >> > >> > --- On Sat, 1/22/11, Ton Roosendaal <t...@blender.org> >> wrote: >> > >> >> From: Ton Roosendaal <t...@blender.org> >> >> Subject: Re: [Bf-committers] Removing auto >> registration >> >> To: "bf-blender developers" <bf-committers@blender.org> >> >> Received: Saturday, January 22, 2011, 9:57 AM >> >> Hi Martin, >> >> >> >> Not capable of grasping your discussions with >> Campbell on >> >> this topic, >> >> I proposed to ask arbitration by a third person >> who knows >> >> this well. >> >> We're all equally stubborn fallible humans you >> know, and >> >> who's "right" >> >> or "wrong" then is less relevant than just moving >> forward. >> >> :) >> >> >> >> If you think Brecht has all information you want >> him to >> >> know, let's go >> >> for his advice. >> >> >> >> -Ton- >> >> >> >> >> ------------------------------------------------------------------------ >> >> Ton Roosendaal Blender >> Foundation t...@blender.org >> >> www.blender.org >> >> Blender Institute Entrepotdok >> 57A >> >> 1018AD Amsterdam The Netherlands >> >> >> >> On 17 Jan, 2011, at 14:20, Martin Poirier wrote: >> >> >> >>> >> >>> >> >>> --- On Mon, 1/17/11, Campbell Barton <ideasma...@gmail.com> >> >> wrote: >> >>> >> >>>> Agree panel order shouldn't be a >> >>>> factor in this discussion, it should >> >>>> be solved irrespective of registration so >> addons >> >> panels can >> >>>> be added in a logical order. >> >>> >> >>> Ideally, this should be done before going out >> of >> >> beta. >> >>> >> >>>> Though I'm still for auto-registration >> removal >> >> even if its >> >>>> bug free, >> >>>> most likely re-iterating from previous >> mails. >> >>> >> >>> It's not so much the reiteration of your same >> >> arguments that bugs me >> >>> but the fact that you've completely ignored >> the >> >> problems with the >> >>> registration order and properties registration >> that >> >> I've highlighted >> >>> many times and that has to be dealt with >> regardless of >> >> the >> >>> registration method if we want to correctly >> and >> >> cleanly handle >> >>> enabling and disabling addons (which you seem >> to think >> >> is an >> >>> argument for manual registration but is >> completely >> >> irrelevant). >> >>> >> >>>> - to me it feels mysterious that blender >> is >> >> operating on >> >>>> classes >> >>>> without being asked & errors don't >> trace back >> >> to >> >>>> authors code. >> >>> >> >>> The traceback issue can be fixed quite simply. >> The >> >> Metaclass has >> >>> more info than manual registration on the >> class >> >> definition itself >> >>> (you can have the file and line where the >> class is >> >> defined if that's >> >>> what you want). >> >>> >> >>> As for blender operating on classes without >> being >> >> asked, that's the >> >>> whole point of inheritance. >> >>> >> >>>> - in simple cases where all classes are >> registered >> >> its not >> >>>> a big win >> >>>> to have it automatic, in complicated cases >> of >> >> dynamic >> >>>> runtime registration this gets in the >> way. >> >>> >> >>> Yes, you did raise that point last time, it >> was bunk >> >> back then too. >> >>> >> >>> Can you show an example of dynamic runtime >> >> registration that deals >> >>> correctly with registration order and >> unregistration >> >> without making >> >>> a truckload of assumptions or not working at >> all? >> >>> >> >>> Registration order is tightly coupled with >> internal >> >> workings of >> >>> Blender, exposing that to python is >> completely >> >> ridiculous. >> >>> >> >>>> - it makes internals more complicated we >> need to >> >> support - >> >>>> 3 cases: >> >>>> direct execution, modules and addons. >> >>> >> >>> There's only two cases, runtime execution and >> delayed >> >> execution. >> >>> >> >>> Modules are addons that are registered >> automatically >> >> after definition. >> >>> >> >>>> - Matt Ebb and Nathan Vegdahl have >> complained >> >> about >> >>>> auto-registration >> >>>> in its current state fir renderman support >> which >> >> does >> >>>> dynamic >> >>>> generated classes from shaders, and rigify >> for rig >> >> types. >> >>> >> >>> Didn't I addressed Nathan's issues last time? >> >>> >> >>> There's nothing about autoregistration that >> prevents >> >> runtime >> >>> definition of classes. >> >>> >> >>>> It is regrettable that I accepted this >> patch in >> >> the first >> >>>> place, but I >> >>>> felt some obligation to do so since >> Martin >> >> addressed the >> >>>> issues that >> >>>> concerned me, also because Brecht and >> Andria also >> >> approved >> >>>> of this >> >>>> functionality at the time. >> >>> >> >>> It's regrettable that I tried to address the >> real >> >> problems two >> >>> months ago, after which you said you'd have to >> look >> >> into it yourself >> >>> and never came back until now, trying to force >> a >> >> decision again. >> >>> >> >>> It's regrettable that you think >> autoregistration is an >> >> opaque black >> >>> box just because there's the word metaclass in >> there. >> >>> >> >>> But most of all, it's regrettable that you >> think >> >> shoving that back >> >>> in the ands of python developers will solve >> all >> >> problems magically >> >>> when in fact it means having to write more >> >> documentation with >> >>> warnings all over the place about proper >> registration >> >> order. >> >>> >> >>> Martin >> >>> >> >>> >> >>> >> _______________________________________________ >> >>> Bf-committers mailing list >> >>> Bf-committers@blender.org >> >>> http://lists.blender.org/mailman/listinfo/bf-committers >> >> >> >> _______________________________________________ >> >> Bf-committers mailing list >> >> Bf-committers@blender.org >> >> http://lists.blender.org/mailman/listinfo/bf-committers >> >> >> > >> > >> > _______________________________________________ >> > Bf-committers mailing list >> > Bf-committers@blender.org >> > http://lists.blender.org/mailman/listinfo/bf-committers >> > >> >> _______________________________________________ >> Bf-committers mailing list >> Bf-committers@blender.org >> http://lists.blender.org/mailman/listinfo/bf-committers >> > > > _______________________________________________ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers