Re: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Jeff Shell
On 7/25/07, Philipp von Weitershausen [EMAIL PROTECTED] wrote:
 Florian Lindner wrote:
  Hello,
  I use a Zope3 svn checkout for developement. What is the best way to
  make this working with the zc packages? I don't want to easy_install
  the entire Zope checkout but I also want my code to work with
  easy_install'ed versions of these packages. (don't want to change
  import statements and so on...)  My favorite way would be to just
  do a svn checkout of the zc packages too but it seems to me that it
  won't work this way (or am I missing something?)

$ mkdir zc
$ touch __init__.py
$ cd zc
$ svn co /zc.resourcelibrary/trunk/src/zc/resourcelibrary

And then additional checkouts. Basically:

- Create an empty 'zc' package with an empty ``__init__.py``
- Go into that directory
- When making checkouts from the zc packages in the subversion repository, go
  into the 'src' instead of getting the root which has the 'setup.py'. So if
  it's zc.resourcelibrary, typically you will want to check out
  `trunk/src/zc/resourcelibrary`.

 Of course you can get a checkout of any package you wish from
 svn.zope.org, including the zc.* packages. However, they'll likely have
 dependencies which you will have to resolve as well. Some might also
 define entry points which means they really want to be installed as eggs.

 Why do you use checkouts? Do you actually change the packages while
 you're developing with them?

FWIW, we use checkouts at Bottlerocket because that's how we use our
own packages. And there are many packages which don't have eggs, or
don't have good releases as eggs. For example, there's
zc.resourcelibrary - release 0.6 had a serious bug, and I haven't
checked to see if there's been a fixed release made since then.

For packages like that, we don't do blind checkouts, but we stick with
a certain revision number so that we don't get surprised if the code
starts using Zope 3.4 features while we're still using 3.3.

We handle dependencies semi-manually, semi-automatically. I ended up
writing our own build-ish system, inspired by Ruby's Rake, primarily
to automate all of the SVN and CVS checkouts, their associated tags,
and so on.

 Have you looked at zc.buildout? Checkout the tutorial [1]. Also, pretty
 much any zope.* or zc.* package's sandbox is set up using buildout these
 days, providing you with lots of examples.

Last time I checked, which I admit has been a while, buildout didn't
provide any examples of how to transition into buildout style
development.

NONE of our internal code - at least, none of our Zope-focused code is
in egg style format. I've been checking out or exporting or
unzipping/untarring into either $INSTANCE_HOME/Products or
$INSTANCE_HOME/lib/python for nearly a decade. I don't know how to
write a new product or library in this style. I don't know how to
safely and securely deploy it so that it's only accessible by our
internal, deployment, and home and office machines (cvs over ssh has
worked fine for us, again, for six-plus years).

Even more overwhelming - I don't know how to transition our existing
code - internal frameworks and customer projects - into an egg-ish
format. And I really don't know where we'll find the time.

I still don't know how Eggs work. setuptools documentation, while
comprehensive, is about as clear as mud in many places. I don't
understand development eggs. And it looks like only subversion is
supported for those anyways, am I right?

``zc.buildout`` is something that I'd like us (my company) to start
using. But at present, it's overwhelming. It was overwhelming enough
that it was easier to write our own automation system that fit in with
the way we've worked for so many years than to try to figure out
buildout, eggs, all of the various half documented recipes, etc. I
feel like I need a training course or consultancy to move to buildout,
which requires time and money that we just don't have.

-- 
Jeff Shell
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


AW: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Roger Ineichen
Hi Jeff,

 Betreff: Re: [Zope3-Users] Re: Using svn checkout with zc packages
[...]

 I feel like I need a training course or consultancy to move to buildout, 
 which requires time and money that we just don't have.

Same belongs to me.

I'm sitting here and have to debug code like: 

def foo(self, foo):
  bar = self.getBar(foo)
  return getMultiAdapter(bar, self.request)

and bang I have to get a dev egg for the package
which implements getMultiAdapter just that I can 
debug into getMultiAdapter.

I don't know how somebody can say that's a good concept.
For me as a heave *pdb* user it's defently not.

Is there another option wich allows me not to checkout the 
half of the Zope trunk as dev eggs for serious debugging?


Regards
Roger Ineichen

 --
 Jeff Shell
 ___
 Zope3-users mailing list
 Zope3-users@zope.org
 http://mail.zope.org/mailman/listinfo/zope3-users
 

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: AW: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Gary Poster


On Jul 30, 2007, at 10:46 AM, Roger Ineichen wrote:


Hi Jeff,


Betreff: Re: [Zope3-Users] Re: Using svn checkout with zc packages

[...]

I feel like I need a training course or consultancy to move to  
buildout,

which requires time and money that we just don't have.


Same belongs to me.

I'm sitting here and have to debug code like:

def foo(self, foo):
  bar = self.getBar(foo)
  return getMultiAdapter(bar, self.request)

and bang I have to get a dev egg for the package
which implements getMultiAdapter just that I can
debug into getMultiAdapter.

I don't know how somebody can say that's a good concept.
For me as a heave *pdb* user it's defently not.

Is there another option wich allows me not to checkout the
half of the Zope trunk as dev eggs for serious debugging?


short term hack: use eggs.  go to your eggs directory and rm all of  
your pyc files.  pdb will then work.


long term: yeah, this needs to be fixed.  Jim's aware of it.  Has to  
do with how eggs are built.  AIUI, fixing it would probably happen in  
setuptools.


Gary

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Stephan Richter
On Monday 30 July 2007 09:59, Jeff Shell wrote:
 Last time I checked, which I admit has been a while, buildout didn't
 provide any examples of how to transition into buildout style
 development.

I agree we are totally lacking  At the one end we push hard for people to use 
eggs -- even make the Zope 3 trunk checkout totally useless -- and on the 
other hand we are providing zero documentation on how to get started.

The common answer you will get is: Look at all the SVN packages, there are 
many examples. I think this is a horrible thing to say. Unfortunately there 
is a big push behind using egg-based development without taking care that all 
bases are covered. I think this is because most development is driven by 
customer requirements these days and not by the academic purity (as people 
called it) with which we started developing Zope 3. I guess this is a good 
and a bad thing.

Here are some documents that should get you started (in order I would look at 
them):

- zc.buildout presentation slides:
http://svn.zope.org/zc.buildout/trunk/doc/tutorial.txt?rev=76281view=auto

- z3c.formdemo as an example of a small egg-based application:
http://svn.zope.org/z3c.formdemo/trunk/?rev=76281

- PEAK setuptools:
http://peak.telecommunity.com/DevCenter/setuptools

I hope this helps!

Regards,
Stephan
-- 
Stephan Richter
CBU Physics  Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: AW: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Benji York

Gary Poster wrote
long term: yeah, this needs to be fixed.  Jim's aware of it.  Has to  
do with how eggs are built.  AIUI, fixing it would probably happen in  
setuptools.


Right, setuptools builds the pycs in a temporary directory and then 
moves them to the final location.  Because the pycs include the full 
path as of the time they were built, they then point to the wrong place. 
 Gary's suggestion forces them to be rebuilt with correct paths.

--
Benji York
Senior Software Engineer
Zope Corporation
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: AW: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Philipp von Weitershausen

On 30 Jul 2007, at 16:46 , Roger Ineichen wrote:

Betreff: Re: [Zope3-Users] Re: Using svn checkout with zc packages

[...]

I feel like I need a training course or consultancy to move to  
buildout,

which requires time and money that we just don't have.


Same belongs to me.

I'm sitting here and have to debug code like:

def foo(self, foo):
  bar = self.getBar(foo)
  return getMultiAdapter(bar, self.request)

and bang I have to get a dev egg for the package
which implements getMultiAdapter just that I can
debug into getMultiAdapter.


Martijn and I ran into this issue the other day as well. The quick  
fix (=deleting the outdated .pyc files) has already been described by  
Gary and Benji. I've documented this on my blog [1] now so that  
others will hopefully find it when they Google.


[1] http://www.z3lab.org/sections/blogs/philipp-weitershausen/ 
2007_07_30_pdb-ing-to-eggs


___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Benji York

Jeff Shell wrote:

Getting started as eggs is one thing. Moving code that is not in an
egg format is another, particularly in a system like CVS which is
brain dead about directories. But I think I just need to revisit the
CVS manual for this.


Normally little or nothing more than giving your code a setup.py is 
required to eggify it.  You can use CVS checkouts to create develop 
eggs as a transitional step.



We're stuck with CVS for now, for better or worse. And my vague
understanding of development eggs (which is next to nil) is that
they're biased towards SVN.


Not that I'm aware of.  You should be able to use CVS just fine.
--
Benji York
Senior Software Engineer
Zope Corporation
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Philipp von Weitershausen

On 30 Jul 2007, at 17:19 , Stephan Richter wrote:

On Monday 30 July 2007 09:59, Jeff Shell wrote:

Last time I checked, which I admit has been a while, buildout didn't
provide any examples of how to transition into buildout style
development.


I agree we are totally lacking  At the one end we push hard for  
people to use

eggs -- even make the Zope 3 trunk checkout totally useless --


How is it useless? It still works, no?

and on the other hand we are providing zero documentation on how to  
get started.


Zero documentation is a bit unfair. zc.buildout has had a README.txt  
and a CheeseShop homepage for a long time ( half a year). There are  
dozens of zc.* and z3c.* packages in svn.zope.org for which the same  
doesn't hold true.


The README.txt may have been spartan in the beginning, but even the  
version in the half-year old 1.0.0b17 release (the oldest one  
available on the CheeseShop) explains how to


* install an egg and an interpreter launcher that has that egg on its  
sys.path


* work with a development egg

Apart from a testrunner, this is usually everything you need to know  
to get started with simple packages. Of course you need to know about  
eggs, but those are well-documented, too (heck, even in my book).


Jim also wrote a tutorial (you link to it below). Admittedly it's not  
very visible. We should change that. You, I and the others who know  
about it already are all equally guilty of not having spoken up and  
promoted it so far.



Baiju M, by the way, has written two blog posts with code examples on  
how to deploy a Zope 3 web application from eggs and how to make life  
easier with zc.buildout [1,2].


[1] http://baijum81.livejournal.com/19795.html
[2] http://baijum81.livejournal.com/20551.html


So, in all fairness, there's stuff out there (apart from the numerous  
packages that are in svn.zope.org and that can serve as good  
examples). Though I agree it needs to be consolidated a bit, brushed  
up and publicized.



Here are some documents that should get you started (in order I  
would look at

them):

- zc.buildout presentation slides:
http://svn.zope.org/zc.buildout/trunk/doc/tutorial.txt? 
rev=76281view=auto


- z3c.formdemo as an example of a small egg-based application:
http://svn.zope.org/z3c.formdemo/trunk/?rev=76281

- PEAK setuptools:
http://peak.telecommunity.com/DevCenter/setuptools

I hope this helps!




___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Philipp von Weitershausen

Jeff Shell wrote:

On 7/30/07, Stephan Richter [EMAIL PROTECTED] wrote:

On Monday 30 July 2007 09:59, Jeff Shell wrote:

Last time I checked, which I admit has been a while, buildout didn't
provide any examples of how to transition into buildout style
development.

I agree we are totally lacking At the one end we push hard for people
to use eggs -- even make the Zope 3 trunk checkout totally useless --
and on the other hand we are providing zero documentation on how to
get started.


Getting started as eggs is one thing. Moving code that is not in an
egg format is another, particularly in a system like CVS which is
brain dead about directories. But I think I just need to revisit the
CVS manual for this.


I don't think you really need to move anything. Just add a setup.py to 
your package. THis may be a bit unusual (usually the setup.py lives in 
the parent folder, next to the package, or even higher if you have a 
'src' directory), but having it in the package should work, too.



We're stuck with CVS for now, for better or worse. And my vague
understanding of development eggs (which is next to nil) is that
they're biased towards SVN. With good reason, I guess, since SVN
changeset numbers apply to whole checkouts versus CVS's individual
file versioning. But I may be wrong about this.


You're confusing

* an egg that is downloaded not from a tarball but by checking out some 
svn repository URL (I find this a weird feature of setuptools), and


* a development egg which is just a package somewhere in your 
development sandbox that has a setup.py. This package gets a symlink 
somewhere in site-packages so that setuptools recognizes it as an egg, 
but the source stays wherever you want to work on it. You can maintain 
the source in CVS, svn, bzr, ...



--
http://worldcookery.com -- Professional Zope documentation and training
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Florian Lindner
Am Montag, 30. Juli 2007 schrieb Stephan Richter:
 On Monday 30 July 2007 09:59, Jeff Shell wrote:
  Last time I checked, which I admit has been a while, buildout didn't
  provide any examples of how to transition into buildout style
  development.

 I agree we are totally lacking  At the one end we push hard for people to
 use eggs -- even make the Zope 3 trunk checkout totally useless -- and on
 the other hand we are providing zero documentation on how to get started.

 The common answer you will get is: Look at all the SVN packages, there are
 many examples. I think this is a horrible thing to say. Unfortunately there
 is a big push behind using egg-based development without taking care that
 all bases are covered. I think this is because most development is driven
 by customer requirements these days and not by the academic purity (as
 people called it) with which we started developing Zope 3. I guess this is
 a good and a bad thing.

 Here are some documents that should get you started (in order I would look
 at them):

 - zc.buildout presentation slides:

 http://svn.zope.org/zc.buildout/trunk/doc/tutorial.txt?rev=76281view=auto

Here is a PDF version of the slides:

http://www.zope.de/redaktion/dzug/tagung/potsdam-2007/folien/introduction-to-zc-buildout.pdf/download



Florian
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Philipp von Weitershausen

On 30 Jul 2007, at 19:14 , Florian Lindner wrote:

Am Sonntag, 29. Juli 2007 schrieb Philipp von Weitershausen:

On 29 Jul 2007, at 21:06 , Florian Lindner wrote:

Am Mittwoch, 25. Juli 2007 schrieb Philipp von Weitershausen:

Florian Lindner wrote:

Hello,
I use a Zope3 svn checkout for developement. What is the best  
way to make this working with the zc packages? I don't want to  
easy_install the entire Zope checkout but I also want my code  
to work with easy_install'ed versions of these packages. (don't  
want to change import statements and so on...) My favorite way  
would be to just do a svn checkout of the zc packages too but  
it seems to me that it won't work this way (or am I missing  
something?)


Of course you can get a checkout of any package you wish from  
svn.zope.org, including the zc.* packages. However, they'll  
likely have dependencies which you will have to resolve as well.  
Some might also define entry points which means they really want  
to be installed as eggs.


Why do you use checkouts? Do you actually change the packages  
while you're developing with them?


Have you looked at zc.buildout? Checkout the tutorial [1]. Also,  
pretty much any zope.* or zc.* package's sandbox is set up using  
buildout these days, providing you with lots of examples.


I'm fine with easy_install for installing Zope3 and the z3c  
packages but at this time I don't want to use it for my own  
projects. But when I install Zope3 (for example by easy_install  
zope.component) I don't find any mkzopeinstance. I know about  
zopeproject but that creates an egg what I don't want. How can I  
get mkzopeinstance with easy_install? I haven't found anything in  
PyPi.


It seems that you you want to install Zope 3 from eggs but don't want
your own projects to be eggs (hence you reject zopeproject). I don't
quite see the point of that reasoning. The whole idea of Zope being
available in egg form is that we can use egg machinery (deployment,
dependency management, etc.) for your own projects.

Anyway, mkzopeinstance isn't available when you install Zope 3 from
eggs because it's not egg-aware. It's completely geared towards the
full tree installation (from tarball or checkout). And frankly, as I
pointed out in the paragraph above, it doesn't make that much sense
in an egg-centric world anyway. I suggest zopeproject or the
zc.buildout recipes from zc.zope3recipes as alternatives.


Hi!
What I want is:
- have an runnable Zope3. I don't care if it is an SVN checkout, a  
released

version or as an egg


Then why don't you get a checkout if the other stuff troubles you so  
much? In my very first response to you I wrote:


Of course you can get a checkout of any package you wish from  
svn.zope.org, including the zc.* packages. However, they'll likely  
have dependencies which you will have to resolve as well.


I think those a very clear instructions: get the package you want  
from subversion and also get its dependencies so that it works.  
What's the problem?



- be able to use the z3c packages
- don't need to work in a new build architecture

It seems that these requirements are diametrically opposed. I  
suppose working
in the zc.buildout appears to be the least evil (or even a good at  
the end)

in your eyes, isn't it?


I'm not sure what working in the zc.buildout is supposed to mean. I  
don't consider zc.buildout evil. Not totally at least :).




___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Using svn checkout with zc packages

2007-07-30 Thread Tobias Rodäbel

Am 30.07.2007 um 19:37 schrieb Philipp von Weitershausen:

I'm not sure what working in the zc.buildout is supposed to mean.  
I don't consider zc.buildout evil. Not totally at least :).


I benefit from zc.buildout in two ways for my zope projects since i  
figured it out:


  - every-time-and-every-place reproducable development environments
  - only install what is really necessary

But sometimes:
  - I am bothered by that .installed.cfg (I always stumble over it,  
because it's hidden).

  - Someone already mentioned the .pyc-file misery.
  - And it's not easy to find the right order for including  
the .zcml-files in larger projects. Maybe there is a recommended  
order somewhere which I didn't recognize until now. I thought about  
extracting it from the DEPENDENCIES.cfg and import-statements.


Altogether it is really worth to dive into zc.buildout (but you  
should take a deep breath ;-)


___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users