On 1/10/13 4:15 AM, Olemis Lang wrote:
>> I commited patches in r1430768.
> I see . I'll try to explain something we've being doing since long
> time ago (based on Gary's suggestions) and I think is very helpful .
>
> Commits should be focused considering their intent . The more focused
> the better . That's exactly why I developed three patches for
> (related) features : 1. product environments , 2. product config , 3.
> test code . Therefore each patch should be applied in a separate
> changeset (e.g. like in #146 [1]_ )
>
> You might say «that's insane» ... but take as example #341 [2]_ which
> is a regression after #146 . As I've also followed the same approach
> to build the patches I submit , it's possible to identify the exact
> point [3]_ where this very same issue was fixed once upon a time (...
> so let's all hail Gary ! )
Ok, thanks for the explanation, sounds reasonable, will follow these
guidelines in the future ;)
>> I started integrating ProductEnvironment with the database proxy (#288),
> good .
>
>> environment factory (#322)
> I'll take a look to see what's been done about this ... is there
> anything already in svn repos ?
>
>> and global hooks (#323).
>>
> :)
All the work done in integrating #115 with #288 and work done on #322
and #323 is in the svn repo on bep_0003_multiproduct branch.
>> A question re ProductEnvironment class - is there a specific reason for
>> that class not being derived directly from trac.env.Environment?
> We've been talking about this via #bloodhound @ freenode . Could you
> please post a summary ?
Short summary would be that even though trac.env.Environment and
ProductEnvironment share the same interface they are semantically
different. That and because the intent is to keep the product
environments transient (lightweight) they're implemented as a separate
class (and not derived from trac.env.Environment). Only methods/props
that require special handling are implemented/overriden in
ProductEnvironment, the rest is forwarded to the global
trac.env.Environment.
>> I'm
>> asking this as I was planning on replacing (monkey patching)
>> trac.env.Environment with our implementation of the environment. This
>> way we have control over database connection in all environments (global
>> and per product).
> I've mentioned this before and mentioned that the way to go should be
> to install product-specific DB proxies in each instance of
> ProductEnvironment class . In order to do that (and in general)
> there's no need to extend Environment class at all . ProductEnvs are
> wrappers .
>
>> Making that (our env) a base class for
>> ProductEnvironment would make things more consistent.
>>
> I don't think so .
Agree now that some more light has been shed on the ProductEnvironments :)
Cheers,
Jure
|