[Product-Developers] Package versions, Plone 3, Plone 4

Radim Novotny novotny.radim at gmail.com
Thu Mar 18 15:17:14 UTC 2010


Hi all,

I'm wondering how to handle add-on package versions if package is 
different for Plone 3 and Plone 4.

Situations:

1) dependencies - package requires some add-on which is obsolete in 
Plone 4, eg. collective.js.jquery - this adds jQuery 1.3.2 which is in 
Plone 4 by default. I don't want this package installed if my package is 
installed on Plone 4

2) separate versions for Plone 3 and Plone 4 - for example: I want to 
release the same package for Plone 3 only and for Plone 4 only. How 
should I declare dependencies ? How should I tell users my.package 1.x 
is for Plone 3 and 2.x for Plone 4 only ?

Example:
- there is working Plone 3.3.5 buildout extending Plone 3.3.5 versions.cfg
- there are several add-ons including my.package. Latest (and used) 
version is 1.4
- instance admin decides to add new package and run bin/buildout -n
- my.package 2.0 has been released few days ago (but it is Plone 4 only 
reelase). This package is picked, downloaded and breaks everything.

What are solutions for my.package author?
- declare dependency 'Plone > 4.0a1' - wrong - nobody wants to update 
instance to Plone 4 automatically
- write extensive documentation where everything is explained in 
**bold** including supported version numbers - wrong nobody reads 
documentation
- leave everything as is and teach users they should pin all existing 
versions and check compatibility matrix before update of any version - 
hard, BFU don't use dumppickedversions and pins versions IMO.

Do we have something like "Install me only if there is Plone 3.999 or 
lower" which can be declared in setup.py ?

Thoughts ?
Radim





More information about the Product-Developers mailing list