[zc.buildout] repeatable buildouts
wow, I'm on a roll tonight ;-) So: http://pypi.python.org/pypi/zc.buildout/1.0.6#repeatable-buildouts-controlli... I just don't really follow this... Is the 'versions' name in the [buildout] section meaningful to buildout? what are the keys in a version section? just egg versions or something else? fwiw, most of the time I seem to use an egg recipe or something similar to lock specific egg versions. Having the release number in the section name seems odd, I'd expect something more like [buildout] versions = versions [versions] spam = 1 eggs = 2.2 ...and then just keep the versions stuff correct on different svn branches/tags of the buildout. What am I missing? cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
On Jul 15, 2008, at 4:31 PM, Chris Withers wrote:
wow, I'm on a roll tonight ;-)
So:
http://pypi.python.org/pypi/zc.buildout/1.0.6#repeatable-buildouts-controlli...
I just don't really follow this...
Is the 'versions' name in the [buildout] section meaningful to buildout?
The versions option in the buildout section specifies the name of a section containing version information.
what are the keys in a version section? just egg versions or something else?
project names
fwiw, most of the time I seem to use an egg recipe or something similar to lock specific egg versions. Having the release number in the section name seems odd,
That was just an example. buildout doesn't care what the section name is.
I'd expect something more like
[buildout] versions = versions
[versions] spam = 1 eggs = 2.2
That is a common pattern.
...and then just keep the versions stuff correct on different svn branches/tags of the buildout.
What am I missing?
Nothing really. The example assumed you might want to keep multiple sets of versions in the same buildout. That isn't a pattern that has caught on though. Jim -- Jim Fulton Zope Corporation
Jim Fulton wrote:
Is the 'versions' name in the [buildout] section meaningful to buildout?
The versions option in the buildout section specifies the name of a section containing version information.
OK.
what are the keys in a version section? just egg versions or something else?
project names
Not sure what a "project name" is in buildout parlance. As best I can tell, it seems to be a recipe name used in a part. What's the different between: [buildout] parts = foo versions = versions [versions] spam = 1 [foo] recipe = spam ...and: [buildout] parts = foo [foo] recipe = spam == 1 cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chris Withers wrote:
Jim Fulton wrote:
Is the 'versions' name in the [buildout] section meaningful to buildout? The versions option in the buildout section specifies the name of a section containing version information.
OK.
what are the keys in a version section? just egg versions or something else? project names
Not sure what a "project name" is in buildout parlance.
It is distutils speak: distributions are "releases" of projects. The project name oftent, but not always, corresponds to the name of the Python package which makes up the project's guts. 'setup.py' is what defines a project, actually, and the 'name' argument passed to the 'setup()' command is the project name. I'll stay mute on the parts bit, as I understand it less than you do. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFIfS7z+gerLs4ltQ4RAoyqAKCjVoKkaZ+QF2IKS+eiAP+dA7PV4gCePiM/ ugNVRS7J2rlzYkcjYvzZp4Q= =2lnf -----END PGP SIGNATURE-----
On Jul 15, 2008, at 6:24 PM, Chris Withers wrote:
Jim Fulton wrote:
Is the 'versions' name in the [buildout] section meaningful to buildout? The versions option in the buildout section specifies the name of a section containing version information.
OK.
what are the keys in a version section? just egg versions or something else? project names
Not sure what a "project name" is in buildout parlance.
See Tres' explanation.
As best I can tell, it seems to be a recipe name used in a part.
No.
What's the different between:
[buildout] parts = foo versions = versions
[versions] spam = 1
[foo] recipe = spam
...and:
[buildout] parts = foo
[foo] recipe = spam == 1
There is no effective difference between these two examples. Often a buildout refers to the same project more than once. Using versions affects all uses. Using versions also applies to dependencies. Jim -- Jim Fulton Zope Corporation
Jim Fulton wrote:
As best I can tell, it seems to be a recipe name used in a part.
No.
So the versions specified in a versions section apply to all uses of a "project"? (regardless of whether the project is an egg, a recipe, or something else?)
What's the different between:
[buildout] parts = foo versions = versions
[versions] spam = 1
[foo] recipe = spam
...and:
[buildout] parts = foo
[foo] recipe = spam == 1
There is no effective difference between these two examples. Often a buildout refers to the same project more than once. Using versions affects all uses. Using versions also applies to dependencies.
Okay, what happens if I don't use a versions section and some egg has a dependency incompatible with a version of an egg I've specified elsewhere? (say in an egg recipe section?) Some to think of it, what happens if I *do* use a versions section and this happens? cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
On Jul 16, 2008, at 10:07 AM, Chris Withers wrote:
Jim Fulton wrote:
As best I can tell, it seems to be a recipe name used in a part. No.
So the versions specified in a versions section apply to all uses of a "project"? (regardless of whether the project is an egg, a recipe, or something else?)
Yes. A recipe is installed as an egg. The value of a recipe option is just a distribution (i.e. egg) requirement specification.
Okay, what happens if I don't use a versions section and some egg has a dependency incompatible with a version of an egg I've specified elsewhere? (say in an egg recipe section?)
You'd get an error. This can happen whether or not you have a versions section. Jim -- Jim Fulton Zope Corporation
(apologies for half sent mail, emacs save file and thunderbird send message have the same key mapping :-S) Okay, so I had a simple buildout config as follows: [buildout] parts = eggs versions = versions [versions] setuptools-version = == 0.6c8 zc.buildout-version = == 1.0.6 [eggs] recipe = zc.recipe.egg eggs = BeautifulSoup == 3.0.7a interpreter = py extra-paths = . Now, from what Jim's said, it would seem like the versions section would be a good thing to use, so I tried changing the above recipe to: [buildout] parts = eggs versions = versions [versions] setuptools = 2 zc.buildout = 2 BeautifulSoup = 4 [eggs] recipe = zc.recipe.egg eggs = BeautifulSoup interpreter = py extra-paths = . Now, I could have sworn this ran without barfing on the (deliberately) non-existent versions. However, paranoidly re-checking before (*cough*) I sent the mail, it seems to work now. Are there any situations where this would fail? cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
On Jul 16, 2008, at 10:22 AM, Chris Withers wrote:
(apologies for half sent mail, emacs save file and thunderbird send message have the same key mapping :-S)
Okay, so I had a simple buildout config as follows:
[buildout] parts = eggs versions = versions
[versions] setuptools-version = == 0.6c8 zc.buildout-version = == 1.0.6
This isn't correct syntax. It should be just: setuptools-version = 0.6c8 zc.buildout-version = 1.0.6
[eggs] recipe = zc.recipe.egg eggs = BeautifulSoup == 3.0.7a interpreter = py extra-paths = .
Now, from what Jim's said, it would seem like the versions section would be a good thing to use, so I tried changing the above recipe to:
[buildout] parts = eggs versions = versions
[versions] setuptools = 2 zc.buildout = 2 BeautifulSoup = 4
These are non-existent versions.
[eggs] recipe = zc.recipe.egg eggs = BeautifulSoup interpreter = py extra-paths = .
Now, I could have sworn this ran without barfing on the (deliberately) non-existent versions. However, paranoidly re- checking before (*cough*) I sent the mail, it seems to work now.
I have no idea what you are trying to say.
Are there any situations where this would fail?
Your buildout should fail as long as you have invalid versions for projects used in the buildout. Jim -- Jim Fulton Zope Corporation
Wow, what a total FAIL of a mail, apoliges for that :-( Okay, let me try this again from the top... So, I had a buildout that looked like this: [buildout] parts = eggs setuptools-version = == 0.6c8 zc.buildout-version = == 1.0.6 [eggs] recipe = zc.recipe.egg eggs = BeautifulSoup == 3.0.7a interpreter = py extra-paths = . ...using the (apparently soon to be deprecated) setuptools-version and zc.buildout-version options. From what Jim said, I changed this to be: [buildout] parts = eggs versions = versions [versions] setuptools = 2 zc.buildout = 2 BeautifulSoup = 4 [eggs] recipe = zc.recipe.egg eggs = BeautifulSoup interpreter = py extra-paths = . I deliberately picked non-existent versions in the hope that I'd see error messages saying these versions didn't exist. I could have sworn that the first time I ran buildout after this, nothing happened. But, given my recent finger clumsiness, I'm not so sure. Especially as now when I try, I get error messages about not being able to find distributions until I've changed the buildout to: [buildout] parts = eggs versions = versions [versions] setuptools = 0.6c8 zc.buildout = 1.0.6 BeautifulSoup = 3.0.7a [eggs] recipe = zc.recipe.egg eggs = BeautifulSoup interpreter = py extra-paths = . So I think everything's working as I expected, but I'm still left wondering if there are any situations where a [versions] section won't be checked and/or acted upon? cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
On Jul 16, 2008, at 10:44 AM, Chris Withers wrote:
So I think everything's working as I expected, but I'm still left wondering if there are any situations where a [versions] section won't be checked and/or acted upon?
No. Jim -- Jim Fulton Zope Corporation
participants (3)
-
Chris Withers
-
Jim Fulton
-
Tres Seaver