Search for requirements specifications in the Plone build setup

I have a Plone site (something around 4.2.4 telling from version.txt in the root directory) that I would like to upgrade to the latest version (I found this way ) (currently 4.3.4 ); I have inherited many chained versions that are not documented and may be outdated.

When commenting on my versions.cfg , instead of http://dist.plone.org/release/4.3-latest/versions.cfg and restarting buildout with -vvv , I get:

 Develop: '.../src/collective.mathjax' in: '.../src/collective.mathjax' /tmp/tmpbXsnpD -q develop -mxN -d .../develop-eggs/tmp2yhe9ubuild ... Installing 'zc.recipe.egg'. We have the best distribution that satisfies 'zc.recipe.egg<2dev'. Picked: zc.recipe.egg = 1.3.2 ... There is a version conflict. We already have: zc.recipe.egg 1.3.2. While: Installing. Getting section test. Initializing section test. Installing recipe zc.recipe.testrunner. 

Thus, there is some need for the sub-2 zc.recipe.egg , but I cannot find it. (In my versions.cfg it is attached to 2.0.1 - which worked for work, surprisingly.)

I searched the tree with find and grep , looking for rc.recipe.egg in the version*.cfg and setup.py files, but I could not find anything except the project root directory. I even searched every file below .../src/collective.mathjax without success.

How can I find out this dependency? Thanks!

+7
buildout plone
source share
5 answers

There are basically three places to search for versions:

1.) The necessary files of eggs released on PyPi, as noted by Luca Fabbri, which you can look for such contacts:

 grep -r --include=requires.txt "dependency.to.search.for" path/to/eggs-cache 

2.) setup.py files for development eggs, similar to search, for example:

 grep -r --include=setup.py "dependency.to.search.for" path/to/dev-eggs-cache 

3.) [versions] -part of configuration files, where in this case version.cfg pulls out more versions-config, through its extends -option, and pulled out can also specify more configurations through extends .

You are lucky, I admired M. v. Reese shared a fragment on how to get all the features of all versions of Plone: https://gist.github.com/mauritsvanrees/99cb4a25b622479e7dc3

+3
source share

The dependency is probably located inside a third-party egg (like this: no setup.py in it). Repeat the search inside ./eggs/*/EGG-INFO/requires.txt (if your egg directory is inside the assembly root).

+2
source share

but the best way to upgrade an existing installation is probably to get a standard build for the version of plone you want to upgrade, and then add non-standard eggs to that build. Finally, move your database and blobs to a new installation and follow the upgrade instructions.

+2
source share

Perhaps you have builds on your configuration to not look for a newer version if you already have it locally. There should be a line like this:

 newest = false 

You can try either to delete the local egg cache, or explicitly set so as not to use the global one, but use a specific (empty) one.

Something like:

 [buildout] eggs-directory = /home/USER/SOMEWHERE/eggs download-cache = /home/USER/SOMEWHERE/downloads extends-cache = /home/USER/SOMEWHERE/extends 
+1
source share

You can use "eggdeps" (look for pypi for it) to get a tree of all the dependencies in your buildout - maybe this can be useful. Add an egg to your construction and reassemble. Do this in your original working configuration before making the changes you mentioned. (Generating an eggdeps script requires the build to complete successfully).

add this to the build configuration:

 parts += eggdeps 

...

 [eggdeps] recipe = zc.recipe.egg eggs = tl.eggdeps ${instance:eggs} scripts = eggdeps 

Run buildout again. You now have a script bin / eggdeps that prints a tree of all the dependencies. Run it:

 ./bin/eggdeps -n 

Output Example:

 zope.app.pagetemplate 3.11.2 setuptools 8.0.2 zope.browserpage 3.12.2 ... zope.component 3.9.5 [hook] ... zope.configuration 3.7.4 ... zope.dublincore 3.7.0 pytz 2013b0 setuptools 8.0.2 zope.component 3.9.5 ... zope.datetime 3.4.1 ... zope.interface 3.6.7 ... zope.lifecycleevent 3.6.2 ... zope.location 3.9.1 ... zope.schema 4.2.2 ... zope.security 3.7.4 ... [test] zope.annotation 3.5.0 ... zope.testing 3.9.7 ... zope.i18nmessageid 3.5.3 ... zope.interface 3.6.7 ... zope.pagetemplate 3.6.3 ... zope.schema 4.2.2 ... 
+1
source share

All Articles