[dev] Branches (again), Horde 4.1/5, recent IMAP changes

Michael M Slusarz slusarz at horde.org
Tue Nov 1 00:45:01 UTC 2011


Quoting Michael J Rubinsky <mrubinsk at horde.org>:

> Quoting Michael M Slusarz <slusarz at horde.org>:
>
>> this up again, but I will again raise my frustrations with working  
>> on IMP, especially as it relates to critical code changes.  *NO*  
>> other application relies so heavily on Horde-level code - e.g.  
>> MIME, IMAP, Text_Filtering code - and that makes it extremely  
>> difficult to fix certain items.  It takes me many times longer to  
>> fix an issue, simply because I have to go through the mental  
>> gymnastics of having to figure out how not to break existing APIs.   
>> IMP should not be less stable, or less able to be bugfixed, simply  
>> because it has more of a reliance on global Horde libraries but  
>> unfortunately, that is the case.
>
> What would you suggest the solution to this be? A BC break is a BC  
> break. While your frustration is well deserved and understood,  
> wouldn't this be trading ease of fixing bugs (making things easier  
> for you/us) for less API stability (something that would negatively  
> impact consumers of our code)?

The short answer is "nothing can be done about this".  This is just  
inevitable given our architecture.

The long answer is "Michael S tends to be yelled at the most, because  
he works exclusively on IMP, fixes the largest bugs in IMP, and these  
bugs can't be fixed internally to IMP because (broadly speaking) IMP's  
core is the most dependent on core Horde features.  So he gets  
frustrated and is allowed to b**** about it."

IMP can really be thought of as a frontend to IMAP.  The IMAP code is  
entirely contained within a framework package (and the IMAP code  
(in)directly implicates MIME, MIME Viewer, and Text filtering code, to  
name a few, which are also all part of framework packages.)  Compare  
this with Kronolith (frontend to calendar data defined/stored within  
Kronolith itself), Turba (frontend to contacts data defined/stored  
within Turba itself), Nag (frontend to notes data defined/stored  
within Nag itself), or Ingo (frontend to filters data defined/stored  
within Ingo itself).

End rant.

Gollem is probably the only equivalent application out there that  
relies exclusively on a framework package for its core functionality  
(VFS).

michael

___________________________________
Michael Slusarz [slusarz at horde.org]



More information about the dev mailing list