[dev] [commits] Horde branch master updated. 760524934f11365acac54b36a4ced40996062ebe

Jan Schneider jan at horde.org
Tue Oct 22 13:33:52 UTC 2013


Zitat von Michael J Rubinsky <mrubinsk at horde.org>:

> Quoting Jan Schneider <jan at horde.org>:
>
>
>> This doesn't necessarily mean that we aren't allowed to bump a  
>> major version of a library inbetween major releases of Horde. If  
>> for example Horde_Imap_Client 3.0 would have been ready for IMP  
>> 6.2, we could release it, and make it a requirement in IMP. The  
>> problem is, and that's a good example of the general problem of  
>> decoupling libraries from Horde major versions: Since 3.0 is API  
>> incompatible to 2.x, *all* apps and libraries of Horde_Imap_Client  
>> would have to be updated to the new API. Otherwise users of, say  
>> IMP and Horde_ActiveSync cannot upgrade at all.
>
> I would argue against this. It's a very dangerous precedent to set.  
> With Horde_Imap_Client, we might be able to get away with every  
> library that uses it also upgrading to the new API, but that can  
> lead down a very slippery slope - every one of those libraries would  
> need to be major version bumped too, making a large number of our  
> libraries potentially not API compatible withing the same major  
> version.

Why? Just because a library uses a different major version of another  
library, doesn't mean that it has to bump its major version too.

> Isn't this one of the reasons we exclude the next major version in  
> the package.xml dependency list?

No, this is to enforce semantic versioning onto the dependency resolution.

Another issue comes to mind though: we experienced this already with  
Horde 4 -> 5. PEAR is not smart enough to upgrade within a major  
version, if there are both major and bugfix version updates of a  
package, but the major version has unresolvable dependencies. This  
means that people are not only stuck within a minor version if a  
dependency cannot be resolved, they are also stuck within the *exact*  
version they happen to have installed when we release a new major  
version of a package. Granted, this is PEAR's fault, not ours, but it  
will affect our users nonetheless.
I'd like to check if a separate PEAR server could help with this  
situation, once we release Horde 6.

Anyway, I agree that there are all kind of problems with releasing a  
new major version of a package outside of a major horde version bump,  
but for certain libraries this might be handleable.

>> Besides the technical reasons for keeping releases synchronized,  
>> there is another aspect: marketing. Horde 5 is keyword, as well as  
>> an eco system. Like Symfony2 is. If we want to encourage and  
>> propagate usage of Horde libraries, we must not get developers into  
>> dependency hell or having to learn different APIs or coding  
>> standards.
>>
>> The release of Horde_Socket is spilt milk now though. I'm not a  
>> friend of pulling releases, and I don't think releasing 2.0 without  
>> namespace, just to release 3.0 with namespaces again, once we  
>> namespace all libraries, is a good option either.
>
> Agreed.


-- 
Jan Schneider
The Horde Project
http://www.horde.org/



More information about the dev mailing list