On Aug 30, 2010, at 1:50 PM, Jim Fulton wrote: > On Fri, Aug 27, 2010 at 4:23 PM, Gary Poster <gary.pos...@canonical.com> > wrote: >> >> On Aug 27, 2010, at 3:59 PM, Reinout van Rees wrote: >> >>> On 08/27/2010 04:12 PM, Gary Poster wrote: >>>> >>>> I realize that a system Python happened to work for you before. >>>> >>>> That's a bit awkward, because with pre-1.5.0 zc.buildout, using a system >>>> Python was not supported. >>>> >>>> Therefore, your recipe was not supported. >>> >>> "my recipe"? osc.recipe.sysegg is not something that *I* made, I'm just >>> using it. "Is not supported" sounds like a helpdesk telling me "linux is >>> not supported". >>> >>> And "not supported"? osc.recipe.sysegg installs the specific eggs I tell >>> it to find (in the system python) as develop eggs. A nice trick that works >>> pretty well. >> >> ...Not sure what to tell you there. Jim has been clear from the beginning >> that system Pythons were not supported with buildout. I added support. >> Anything before then happened to work. > > I'm not sure I agree with this. :)
LOL. Sorry to misrepresent. > Technically, you're right, in that > I didn't offer any sympathy or support for people who had trouble > using unclean Pythons (defined as Python installations that differ > from a build from source). Right, this is what I was referring to. > Still, I expected buildout to use anything found in the Python it was > bootstrapped with, with all of the advantages and disadvantages that > implied. :) OK. > This seemed the most conservative approach at the time > and didn't cost me anything because I've never found it burdonsome to > provide clean Python installes separate from the system Python. > > While, I think my decision was raesonable, I came to regret it. I > prefer the approach taken by virtualenv to provide isolation by > default and provide a way to relax it. > > My preferance is that buildout provide isolated and non-isolated modes > and that the isolation apply equally to recipes, extensions, and eggs > installed by parts. Having fought through all this, I really think having separate isolation controls for the buildout (buildout, recipes, extensions) versus the things that are built by parts is the right way to go. It's two very different domains, and the people writing the two kinds of code are often completely separate. > I'd be inclined to have buildout be non-islated > by default, for backwards compatibility, and switch the default in > buildout 2. As a meta comment, from the peanut gallery , I'm concerned about the buildout 2 plans (where "buildout 2" means "package name change") because they remind me of a couple of other similar historical changes that have permanently (or, at least, so far, often for years) divided communities. The forking is entirely your prerogative, of course. As to the practical issue of what to do now, here are options, working up to your stated preference. 1) Leave 1.5 and the trunk as it is, try to support osc.recipe.sysegg if someone directs me to the code, and move on, without a buildout 2. Unsurprisingly, that's my preference. (Post-weekend, I think I can see how to adapt the recipe Reinout listed to work with an isolated buildout, given the current way 1.5 works. I'd do the searching for eggs in a subprocess with the desired Python, and I suspect everything else would work out fine, with the added robustness of 1.5.0's general isolation. Since the recipe has no tests in the tarball and Google doesn't show me the sourcecode, I'm not yet encouraged to give it a whirl, but could be.) 2) Built eggs are non-isolated by default if you use zc.recipe.egg. Switching to z3c.recipe.scripts is an explicit gesture. However, I'm adjusting *other* recipes to use code from z3c.recipe.scripts to generate their scripts, and these (zc.recipe.testrunner and z3c.recipe.tag for now, z3c.recipe.i18n locally on my machine, djangorecipe intended to come possibly among others) are defaulting to isolation. I could make these other recipes default to not isolating. I'd regard that as a shame, because I think it is really nice for buildout to be able to be used with a system Python easily without having to know about special switches or anything else, but practically it would be pretty easy for me. 3) It would be more complex but doable to make all buildout bits (recipes, extensions, and buildout itself) default to not being isolated. Given the current architecture, which I have no desire to change myself, I think it would have to involve one bootstrap for an isolated environment and one bootstrap for a non-isolated environment, and then various changes within Buildout itself. I don't like this, but it is what I see would be needed to support the current version of osc.recipe.sysegg. 4) We can have unified isolation controls for buildout (+ recipes and extensions) and the built eggs. FWIW, I'm happy with option 1, and helping out with osc.recipe.sysegg if given some direction. I'm OK with option 2, and doing the work. I'm unhappy with option 3, but would try to do the work. I'd have to be further convinced about option 4. Gary _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig