*** benji has quit IRC | 00:00 | |
*** dunny has joined #zope3-dev | 00:00 | |
*** gumpa has left #zope3-dev | 00:15 | |
*** hazmat_ has joined #zope3-dev | 00:16 | |
*** hazmat__ has joined #zope3-dev | 00:21 | |
*** hazmat has quit IRC | 00:22 | |
*** replicant has quit IRC | 00:23 | |
*** zbir has quit IRC | 00:26 | |
*** nathany has quit IRC | 00:33 | |
*** fcorrea has quit IRC | 00:33 | |
*** ktwilight has quit IRC | 00:35 | |
*** ktwilight has joined #zope3-dev | 00:45 | |
*** timte has quit IRC | 00:49 | |
*** torkel_ has quit IRC | 01:18 | |
*** yota has quit IRC | 01:34 | |
*** rocky is now known as rocky|Zzz | 01:35 | |
*** whit has quit IRC | 01:41 | |
*** xenru has quit IRC | 01:42 | |
*** xenru has joined #zope3-dev | 01:43 | |
*** J1m has quit IRC | 01:46 | |
*** hazmat_ has quit IRC | 01:48 | |
*** vlado has quit IRC | 01:51 | |
*** jinty has quit IRC | 01:52 | |
*** batlogg has quit IRC | 01:55 | |
*** hazmat__ is now known as hazmat | 02:25 | |
*** ChanServ sets mode: +o hazmat | 02:25 | |
*** replicant has joined #zope3-dev | 02:37 | |
*** markup_ has quit IRC | 03:29 | |
*** replicant has quit IRC | 03:37 | |
*** niemeyer has quit IRC | 03:48 | |
*** niemeyer has joined #zope3-dev | 03:49 | |
*** zbir has joined #zope3-dev | 04:23 | |
*** romanofski has quit IRC | 04:52 | |
*** Theuni has quit IRC | 04:53 | |
*** romanofski has joined #zope3-dev | 05:17 | |
*** Theuni has joined #zope3-dev | 05:21 | |
*** niemeyer has quit IRC | 05:48 | |
*** stub has joined #zope3-dev | 05:53 | |
*** MiUlEr has joined #zope3-dev | 05:53 | |
*** MiUlEr has left #zope3-dev | 05:53 | |
*** elbixio has joined #zope3-dev | 06:54 | |
*** dobee has joined #zope3-dev | 07:52 | |
*** flox_ has quit IRC | 07:54 | |
*** elbixio has quit IRC | 08:03 | |
*** dunny_ has joined #zope3-dev | 08:06 | |
*** dunny has quit IRC | 08:07 | |
*** dobee has quit IRC | 08:07 | |
*** eins has joined #zope3-dev | 08:11 | |
eins | hi | 08:11 |
---|---|---|
*** romanofski_ has quit IRC | 08:18 | |
*** rocky|Zzz has quit IRC | 08:19 | |
*** srichter has quit IRC | 08:22 | |
*** dobee has joined #zope3-dev | 08:30 | |
*** alecm has quit IRC | 08:43 | |
*** zagy has joined #zope3-dev | 08:49 | |
*** srichter has joined #zope3-dev | 08:53 | |
*** ChanServ sets mode: +o srichter | 08:57 | |
*** wrobel has joined #zope3-dev | 09:03 | |
*** replicant has joined #zope3-dev | 09:18 | |
romanofski | moin | 09:30 |
*** stub has quit IRC | 09:48 | |
*** dunny_ has quit IRC | 09:51 | |
*** replicant has quit IRC | 09:52 | |
*** MJ has quit IRC | 09:53 | |
*** philiKON has quit IRC | 09:55 | |
*** flox_ has joined #zope3-dev | 09:56 | |
*** timte has joined #zope3-dev | 10:08 | |
*** flox_ is now known as flox | 10:12 | |
*** jhauser has joined #zope3-dev | 10:15 | |
*** dlk has joined #zope3-dev | 10:21 | |
*** yota has joined #zope3-dev | 10:24 | |
*** batlogg has joined #zope3-dev | 10:25 | |
*** zagy has quit IRC | 10:27 | |
*** scherand has joined #zope3-dev | 10:36 | |
*** philiKON has joined #zope3-dev | 10:37 | |
*** philiKON has quit IRC | 10:42 | |
*** philiKON has joined #zope3-dev | 10:42 | |
*** jinty has joined #zope3-dev | 10:54 | |
*** dlk has quit IRC | 10:58 | |
*** MJ has joined #zope3-dev | 11:03 | |
*** hdima has joined #zope3-dev | 11:05 | |
*** Aiste has quit IRC | 11:13 | |
*** kobold has joined #zope3-dev | 11:19 | |
*** volvox has joined #zope3-dev | 11:22 | |
*** stub has joined #zope3-dev | 11:29 | |
*** flox has quit IRC | 12:16 | |
*** jinty has quit IRC | 12:24 | |
*** faassen has joined #zope3-dev | 12:25 | |
*** mgedmin has joined #zope3-dev | 12:29 | |
*** volvox has quit IRC | 12:38 | |
*** zbir has joined #zope3-dev | 13:01 | |
*** dobee has quit IRC | 13:16 | |
*** zbir has quit IRC | 13:28 | |
*** Aiste has joined #zope3-dev | 13:32 | |
*** oferw has joined #zope3-dev | 13:34 | |
*** tiredbones has quit IRC | 13:35 | |
*** flox has joined #zope3-dev | 13:37 | |
*** mkerrin has joined #zope3-dev | 13:46 | |
*** baijum has joined #zope3-dev | 13:46 | |
*** mgedmin has quit IRC | 13:57 | |
*** J1m has joined #zope3-dev | 13:59 | |
*** J1m has left #zope3-dev | 13:59 | |
*** jinty has joined #zope3-dev | 14:01 | |
faassen | who is dobe on svn.zope.org? | 14:02 |
*** stub has quit IRC | 14:06 | |
faassen | I want to talk to him about the ldap work that he appears to be doing. | 14:08 |
faassen | Brend Dorn. Okay. :) | 14:08 |
philiKON | faassen, works for lovely systems afaik | 14:08 |
faassen | anyway, I sent him an email. | 14:10 |
faassen | I need ldap stuff for Zope 3. | 14:10 |
faassen | so I was happy to see this activity | 14:10 |
faassen | and want to know how we can help. | 14:10 |
*** rocky has joined #zope3-dev | 14:13 | |
*** regebro has joined #zope3-dev | 14:20 | |
faassen | regebro: hej | 14:20 |
regebro | Hej, faassen! | 14:21 |
flox | hi Theuni | 14:25 |
*** nathany has joined #zope3-dev | 14:29 | |
*** eins has quit IRC | 14:29 | |
*** mgedmin has joined #zope3-dev | 14:30 | |
*** eins has joined #zope3-dev | 14:31 | |
*** faasse1 has joined #zope3-dev | 14:44 | |
*** faasse1 has quit IRC | 14:44 | |
*** faassen has quit IRC | 14:46 | |
*** faassen has joined #zope3-dev | 14:46 | |
*** dobee has joined #zope3-dev | 14:50 | |
dobee | faassen: ayt? | 14:58 |
*** ignas has joined #zope3-dev | 15:07 | |
*** niemeyer has joined #zope3-dev | 15:09 | |
*** tiredbones has joined #zope3-dev | 15:12 | |
*** stub has joined #zope3-dev | 15:24 | |
*** tiredbones has quit IRC | 15:32 | |
*** tiredbones has joined #zope3-dev | 15:32 | |
*** russf has joined #zope3-dev | 15:37 | |
*** baijum has quit IRC | 15:38 | |
*** benji has joined #zope3-dev | 15:39 | |
*** mgedmin has quit IRC | 16:13 | |
faassen | dobee: now I'm there. :) | 16:23 |
dobee | faassen: hi | 16:23 |
dobee | u got mail | 16:24 |
faassen | dobee: yeah, replying to it. | 16:25 |
dobee | ok | 16:25 |
faassen | dobee: anyway.. | 16:25 |
faassen | just sent the mail. | 16:25 |
faassen | but in general.. I'll work with you on the caching issue but I am just getting started with all this, so I think you'll be doing the main work. | 16:26 |
faassen | what I'll do this week is try to get them set up for me. | 16:26 |
faassen | and see what I run into. | 16:26 |
faassen | could you describe briefly how ldapadapter and ldappas relate to each other? | 16:26 |
faassen | I mean, what does ldapadapter do? | 16:26 |
faassen | as opposed to letting this being done in ldappas? | 16:26 |
dobee | ldapadapter specifies the server and provides the connection | 16:26 |
faassen | and another question, what's the relationship to ldapauth? | 16:27 |
dobee | ldappase uses the adapter for connecting to the server | 16:27 |
dobee | ldapauth seems to be unmaintained | 16:27 |
faassen | right.. | 16:27 |
faassen | who wrote ldapadaper and ldappas? | 16:27 |
dobee | it is not designed to work with pau | 16:27 |
dobee | stephan wrote ldappas | 16:27 |
faassen | pau being Zope 3's pau, right? | 16:28 |
dobee | dunno about ldapauth | 16:28 |
dobee | jep | 16:28 |
faassen | okay. | 16:28 |
faassen | I was wondering about the namespacing of these packages. | 16:28 |
faassen | like, they're just ldappas and ldapadapter. | 16:28 |
dobee | so, ldapadapter and ldappas should work for you out of the box | 16:28 |
faassen | not something like z3c.ldappas | 16:28 |
dobee | yes, they where written before z3c | 16:29 |
dobee | maybe we should refactor it into z3c | 16:29 |
faassen | yeah, or zorg. :) | 16:29 |
* faassen grins. | 16:29 | |
faassen | anyway, I'd be willing to do the z3c refactoring. | 16:29 |
dobee | hehe | 16:29 |
faassen | also I need them as eggs. | 16:29 |
dobee | ok, that would be fine | 16:29 |
faassen | okay, that's good to know. | 16:29 |
faassen | so I'll be adding a setup.py | 16:30 |
faassen | what does the setup.cfg thing do? | 16:30 |
dobee | you mean SETUP.cfg | 16:30 |
faassen | yes, sorry. | 16:30 |
dobee | when you run make the zcml-slugs are included in the etc/package-includes | 16:31 |
dobee | if you have a checkout | 16:31 |
dobee | of zope3 | 16:31 |
faassen | ah, okay. | 16:32 |
faassen | I'll be installing them into a buildout, I expect. | 16:32 |
faassen | so that's irrelevant to me. | 16:32 |
dobee | in this case, yes | 16:32 |
faassen | anyway, which version of Zope 3 are you developing them against? I'm working with Zope 3.3. | 16:32 |
dobee | the project i use the ldap stuff is also based on 3.3 | 16:32 |
dobee | branch | 16:33 |
faassen | okay, good. | 16:33 |
faassen | same branch then. :) | 16:33 |
dobee | there are also some deprecations | 16:33 |
faassen | okay, I know enough to get involved then. I'm very happy you're oding work on that. | 16:33 |
faassen | yeah, I'll probably hunt those down. | 16:33 |
dobee | ok, cool | 16:33 |
faassen | anyway, again, I'm happy that someone else knows what's going on. :) | 16:34 |
faassen | this was on my todo list for a while. | 16:34 |
faassen | so it's good to know you're there for me to ask questions. :) | 16:34 |
dobee | np, as i said i'll work on it on monday, but feel free to contact me here | 16:35 |
faassen | okay. :) | 16:35 |
faassen | right, I'll be doing some package work mostly, I probably wont' change the logic. | 16:35 |
*** J1m has joined #zope3-dev | 16:35 | |
faassen | but might shift stuff into z3c and such. | 16:35 |
faassen | J1m: hey. | 16:35 |
J1m | hey | 16:35 |
faassen | J1m: I was wondering, would it make sense to start a 'buildout' directory on svn.zope.org in which we store some common buildouts? | 16:35 |
faassen | J1m: like, I'm about to start work on playing with the ldappas and ldapadapter stuff. | 16:36 |
faassen | J1m: and I'd set up a buildout with some svn externals to them, and such. | 16:36 |
faassen | J1m: and it'd be nice we had some common location for such things. | 16:36 |
J1m | well, to me project==buildout. | 16:36 |
J1m | I intend for all of my projects to *be* buildouts. | 16:37 |
faassen | J1m: so you recommend storing the buildout.cfg and such in the root of a project? | 16:37 |
J1m | Ala buildout itself, zc.ngi, zc.shating, etc. | 16:37 |
J1m | yes | 16:37 |
J1m | So when I checkout a project, I bootstrap it, run bin/buildout and I'm off and running. | 16:37 |
J1m | I *need* the buildout to work on the project anyway, so I can run tests, and so on. | 16:38 |
*** whit has joined #zope3-dev | 16:39 | |
J1m | On a somewhat related note though, I wonder if my decision to make the repo flat was wise. I wonder if it wouldn't be better, after all, to organize by namespace package. | 16:39 |
faassen | though sometimes it's useful to have a buildout that includes multiple projects. | 16:39 |
J1m | sure, but I consider that a project too. :) | 16:39 |
faassen | like, when you're developing a bunch of new recipes and such. | 16:39 |
faassen | J1m: or when you're developing ldappas *and* ldapadapter at the same time. you can pull in one or the other of ocurse. | 16:39 |
J1m | well, I would (and do) treat each recipe as a project. | 16:39 |
faassen | J1m: but that's going to frustrate people who don't work with buildout yet. | 16:39 |
J1m | why would it frustrate them? | 16:40 |
faassen | J1m: yes, and for such projects, which have no src of their own but pull in svn:externals | 16:40 |
J1m | why would they have no src of their own? | 16:40 |
faassen | J1m: okay, imagine Stephan Richter checking out the latest ldapauth and finding it pulls in ldapadapter using an external. | 16:40 |
faassen | J1m: and he's not working with buildout, and he's just frustrated by the external suddenly being there. | 16:40 |
faassen | J1m: and then he finds out I added it and he'll go, what did you do now? :) | 16:41 |
J1m | For the use case of working on a recioe, there would be a src directory. | 16:41 |
faassen | hm, I've been working with separate buildout projects here. | 16:41 |
faassen | that pull in stuff through external. it's often the case that I want more than one thing being pulled in as an external. | 16:41 |
*** alecm has joined #zope3-dev | 16:41 | |
J1m | OK | 16:42 |
J1m | well, I don't intend to work that way. | 16:42 |
faassen | anyway, I'd add a svn:external for ldapadapter into ldappas, but that's not how doree and srichter use it. | 16:42 |
J1m | But if you do, that's fine. :) | 16:42 |
faassen | sorry, dobee. | 16:43 |
faassen | well, yeah, I know, but I need a place to store these buildouts. | 16:43 |
J1m | I would just create a top-level project in the repo. | 16:43 |
regebro | faassen: Not knowing much of buildout, but is that a problem? | 16:43 |
faassen | okay. | 16:43 |
J1m | at least for now. | 16:43 |
faassen | regebro: I'm not sure which problem you're referring to. :) | 16:43 |
faassen | okay, I"ll do that. | 16:43 |
J1m | I really need to get off my butt and get a discussion on the ZMO/ZDP going. :) | 16:43 |
faassen | I just don't want to get into people's way unnecessary. | 16:43 |
regebro | I would have one "repo" for each "product"/"module", and make projects that svn:external all modules I need. | 16:43 |
dobee | faassen: hm, this is the first time somithing like this is done | 16:44 |
regebro | That seems to me to be the reasonable way of doing things. I'm pretty much in Zope2 world, though. :) | 16:44 |
J1m | On the subject of buildout, I've put a *lot* of work in the last few days into providing a testing API for writing recipe tests. | 16:44 |
faassen | J1m: oh, interesting. :) | 16:44 |
faassen | J1m: my main testing issue right now is running the functional tests. your addition of the extra path option makes the unittests run with zope 3 stuff now. | 16:44 |
J1m | Hopefully, I'll get that released today. | 16:44 |
faassen | dobee: yeah, all I'm trying to od is making sure I'm not in your way. :) | 16:45 |
regebro | faassen: The problem I referred to is having many svn:externals. :) | 16:45 |
J1m | faassen: ah, good point. | 16:45 |
faassen | dobee: what I'll do is make a separate ldapbuildout project | 16:45 |
faassen | J1m: it's not picking up the ftests stuff yet, basically, I think. | 16:45 |
faassen | J1m: in my case. | 16:45 |
J1m | I need to add options to the testrunner recipe to let you specify other testrunner options. | 16:45 |
*** eins has quit IRC | 16:45 | |
faassen | regebro: I'm not saying that's a problem, I just don't want dobee to have to deal with my svn externals while they're in the way for him. | 16:46 |
J1m | faassen: right, because we aren't generating the right defaults in the generated script. | 16:46 |
faassen | regebro: for the time being, until he switches to buildout too. :) | 16:46 |
J1m | I need to fix that. | 16:46 |
dobee | faassen: i do not know enough about buildout to know what's best int this case | 16:46 |
faassen | J1m: it'd be very nice to have that support. :) | 16:46 |
J1m | Yup | 16:46 |
regebro | faassen: OK, I don't see how they are in his way, so I'm missing something here. So...carry on without me. :) | 16:46 |
faassen | dobee: I will put a small readme.txt in the ldapbuildout and then you can take a look at that. | 16:46 |
faassen | dobee: you can see whether it's interesting for you to use. | 16:46 |
*** mgedmin has joined #zope3-dev | 16:47 | |
dobee | faassen: i will start use buildout anyways, so that would be fine | 16:48 |
dobee | faassen: but it seems a little odd from my point of view, that you have to include it as an external, it would be better defined as some kind of dependency, egg ors | 16:48 |
dobee | or so | 16:48 |
faassen | dobee: yes, that would be for deployment purposes. | 16:50 |
faassen | dobee: for deployment purposes, you'd just specify an egg in the buildout.cfg | 16:50 |
faassen | dobee: but while you're developing, buildout allows you to refer to these as development eggs. | 16:51 |
faassen | dobee: and if you have checkouts in the buildout directory and those checkouts have a setup.py | 16:51 |
faassen | dobee: buildout will use that to install development eggs. | 16:51 |
faassen | dobee: and since I depend on hack on those packages, I want to have a buildout for development purposes. | 16:52 |
faassen | sorry, intend to hack on those packages. | 16:52 |
faassen | dobee: and then svn:externals are useful. | 16:52 |
faassen | dobee: make sense? | 16:52 |
dobee | ah i see, then feel free to add the external if you want to | 16:52 |
J1m | faassen: I think I realized a way to make you happy without doing something I find unsavory. :) | 16:54 |
J1m | I can detect, when using an egg, whether it uses namespaces and, if it does, add setuptools as a dependency. | 16:54 |
J1m | So if a packages depends on setuptools soley by using namespace packages, then buildout will be able to handle that. | 16:55 |
J1m | faassen: would that satisfy you? | 16:55 |
faassen | J1m: cool :) | 16:55 |
faassen | J1m: yes, I think that would make the problem go away. if people use other setuptools facilities like the resource API, they should simply be stating setuptools dependency explicitly anyway. | 16:56 |
faassen | J1m: but I think that get rid of one more thing people can trip over, and that's good. | 16:57 |
regebro | On a related note I can advertise Benoist new "bundleman". | 16:57 |
regebro | http://public.dev.nuxeo.com/~ben/bundleman/ | 16:57 |
faassen | J1m: I was happy to see you picking distutils as the main channel of discussion on buildout, by the way. hopefully that means we can spread it outside of the zope world. | 16:57 |
philiKON | it was also good to see pje chime in | 16:57 |
J1m | yes | 16:58 |
regebro | (bm is Good for making tgz releases of source directories and projects..) | 16:58 |
J1m | well, we should be more aware of what's going on there too. | 16:58 |
J1m | regebro: that url doesn't work for me. | 16:59 |
faassen | J1m: it worked for me. | 16:59 |
regebro | Strange. | 16:59 |
regebro | Here is the cheeseshop url: http://cheeseshop.python.org/pypi/bundleman/1.0.0 | 17:00 |
regebro | Basically it just helps you release versions of a svn directory, and in special, a repo that consist mainly of svn:externals to other svn:directories. Quite handy. | 17:01 |
*** scherand has quit IRC | 17:04 | |
*** zagy has joined #zope3-dev | 17:07 | |
SmokeyD | philiKON: you're not covering formlib/sub page forms in the current edition of your book are you? | 17:09 |
philiKON | they weren't even around when i wrote the book | 17:09 |
SmokeyD | I can't seem to find it at least | 17:09 |
SmokeyD | :) | 17:09 |
SmokeyD | ok | 17:09 |
philiKON | new editiion will cover formlib | 17:09 |
SmokeyD | ok, do you have maybe a small preview available about sub page forms (or another good resource?) | 17:10 |
philiKON | no | 17:10 |
SmokeyD | could you give me some hints then? I want to write a sub page form, I know I have to set the prefix of the form so it does not interfere with the main form, but how do I add both forms to a page? | 17:11 |
philiKON | SmokeyD, render them? | 17:11 |
SmokeyD | yes | 17:11 |
SmokeyD | In the zcml you normally define your page and use the form= attribute to add a form to a page, but can you use it multiple times to add multiple (sub page) forms to one and the same page? | 17:12 |
philiKON | form attribute??? | 17:13 |
srichter | hi all; I am starting to write blog entries, mainly to document the work I am doing right now; where are the best places to add my blog to an aggregator? | 17:13 |
philiKON | srichter, ask d2m to add it to planetzope | 17:13 |
srichter | thanks | 17:13 |
philiKON | srichter, also have it added to planet.plone.org (ask wiggy on #plone) | 17:13 |
SmokeyD | sorry, I mean class directive philiKON | 17:13 |
srichter | ok, will do | 17:13 |
philiKON | srichter, and ask AMK or whoever it is to add it to planet.python.org | 17:13 |
SmokeyD | not form of course | 17:13 |
philiKON | srichter, that is, if you'll also be writing to the general python community | 17:14 |
srichter | sometimes | 17:14 |
philiKON | SmokeyD, well, with EditForm and AddForm, it's form=page | 17:14 |
srichter | :-) | 17:14 |
philiKON | SmokeyD, with sub page forms, page != form | 17:14 |
philiKON | so, sub page forms giv eyou the form | 17:15 |
philiKON | but not the page | 17:15 |
philiKON | you have tow rite the page yourself | 17:15 |
SmokeyD | how? I don't get it | 17:15 |
philiKON | well, how would you write a normal browser page? | 17:15 |
philiKON | class FooPage(BrowserPage): | 17:15 |
philiKON | def __call__(self): | 17:15 |
SmokeyD | Yeah, ok. | 17:15 |
philiKON | return ... | 17:15 |
SmokeyD | And in that page I would have to add both the main and the sub page formsa | 17:16 |
SmokeyD | s/formsa/forms | 17:16 |
SmokeyD | how would I do that? | 17:16 |
philiKON | yup | 17:16 |
philiKON | sigh | 17:16 |
SmokeyD | sorry | 17:16 |
philiKON | why don't you simply try? | 17:17 |
philiKON | instantiate your sub page forms and call'em | 17:17 |
philiKON | it's that simple | 17:17 |
SmokeyD | ok, thanks, didn't expect it to be that easy | 17:18 |
philiKON | ... | 17:18 |
philiKON | SmokeyD, formlib has interfaces | 17:18 |
philiKON | that tell you how to use objects | 17:18 |
SmokeyD | yeah I know, I tried to figure it out myself first, but I didn't understand it | 17:19 |
philiKON | asking specific questions helps | 17:19 |
philiKON | if you already dove into the docs, you must've had specific problems | 17:19 |
SmokeyD | Well, yes, the specific question was how to add multiple forms to one page. I didn't think about creating a browserPage class and caling the forms from there | 17:20 |
philiKON | ISubpageForm says | 17:22 |
philiKON | A component that displays a part of a page. | 17:22 |
philiKON | so, it just gives you part of a page, not a page | 17:22 |
philiKON | you have to do the page yourself | 17:22 |
*** hdima has quit IRC | 17:23 | |
*** whit has quit IRC | 17:27 | |
*** torkel_ has joined #zope3-dev | 17:27 | |
J1m | faassen: ayt? | 17:35 |
*** mgedmin has quit IRC | 17:38 | |
*** whit has joined #zope3-dev | 17:45 | |
*** dokai has quit IRC | 17:46 | |
*** ChristianGnostic has joined #Zope3-dev | 17:48 | |
*** ChristianGnostic has left #Zope3-dev | 17:49 | |
*** mnordgren has joined #zope3-dev | 17:49 | |
*** gumpa has joined #zope3-dev | 17:52 | |
faassen | J1m: now I am. | 17:54 |
*** russf has quit IRC | 18:06 | |
J1m | faassen: still there? :) | 18:06 |
J1m | I just brainstormed a recipe style issue with Benji and Gary. | 18:07 |
faassen | J1m: ah? | 18:08 |
J1m | The issue is that you have a recipe that generates something with options, such as a script or a zconfig section. | 18:08 |
J1m | The broad question was how to handle something like this. | 18:08 |
J1m | The specific question was how to handle this for testrunners. | 18:09 |
J1m | So first, the broad issue. | 18:09 |
J1m | A recipe can know what the options are and provide recipe options foe them. | 18:09 |
*** jinty has quit IRC | 18:09 | |
J1m | Or, a recipe can accept options in the native format, as some kind of string. | 18:09 |
J1m | The disadvantage of the former approach is that then you have to keep the recipe in sync with the underlying thing. | 18:10 |
J1m | For example, the testrunner recipe would have to keep up with testrunner options as they are added. | 18:10 |
J1m | Benji and Gary prefer the later option. Just let people specify options in the native format. | 18:11 |
J1m | So, for test runners, we'd use something like: | 18:11 |
*** dokai has joined #zope3-dev | 18:11 | |
J1m | defaults = ['--tests-pattern', 'f?tests'] | 18:12 |
J1m | Rather than: | 18:12 |
faassen | (I recognize the recipe in sync with the underlying thing problem; right now we maintain the config file for oooconv in its recipe, in a skeleton) | 18:12 |
J1m | tests-pattern = f?tests | 18:12 |
J1m | Thoughts? | 18:13 |
faassen | I'm thinking about this more in terms of config files. | 18:13 |
faassen | I mean, you mentioned zconf sections. | 18:13 |
J1m | another example | 18:13 |
faassen | I'm not sure I understand that fully. | 18:13 |
J1m | of a zconfig section | 18:13 |
J1m | let's take the filestorage recipe. It would accept database options and storage options. | 18:13 |
J1m | So: | 18:14 |
J1m | [data] | 18:14 |
J1m | recipe = ...filestorage | 18:14 |
J1m | database-options = cache_size 10000 | 18:14 |
J1m | vs | 18:14 |
J1m | database-cache-size = 10000 | 18:14 |
J1m | The former uses the native zconfig format | 18:15 |
philiKON | J1m, how would you specifyi more than one database-option? | 18:15 |
faassen | okay, so basically configuration information would all move into buildout.cfg? | 18:16 |
J1m | database-option = cache-size 10000 | 18:16 |
faassen | or would the real configuration be generated in the end by buildout.cfg, into the part or script? | 18:16 |
J1m | pool-size=20 | 18:16 |
philiKON | ok | 18:17 |
philiKON | gotcha | 18:17 |
J1m | Options can have newlines. | 18:17 |
philiKON | yeah, i remember now :) | 18:17 |
*** jhauser has quit IRC | 18:17 | |
J1m | faassen: the real configuration would be in buildout.cfg | 18:17 |
faassen | so how does the application get to these options? | 18:17 |
J1m | The recipe takes configuration info and generates native config files. | 18:17 |
faassen | ah, okay, native config files *are* genearted, okay. | 18:17 |
J1m | The application uses ZConfig as usual. | 18:18 |
J1m | yes | 18:18 |
faassen | and how does the recipe know where to place this config file? | 18:18 |
faassen | (or configparser, in case of oooconv, as usual) | 18:18 |
J1m | This is up to the recipe. | 18:18 |
faassen | okay. | 18:18 |
J1m | example: | 18:18 |
faassen | okay, how would you do nested config parser stuff? | 18:18 |
faassen | like, what if your application's config format is .cfg? | 18:18 |
faassen | init style format? | 18:18 |
J1m | There is a zope3instance recipe that puts the generated instance in the parts directory. | 18:18 |
J1m | It ultimately generates zope.conf. | 18:19 |
J1m | the filestorage recipe otoh just generates a text string that is used by other recipes. | 18:19 |
J1m | It doesn't put a cnfig file anywhere. | 18:20 |
J1m | different recipes handle different parts of the configuration. | 18:20 |
J1m | So, when you define an instance, you specify what part(s) define(s) the database(s) | 18:21 |
faassen | anyway, in the case of embedding the configuration format inside the buildout.cfg literally.. | 18:21 |
faassen | would you be able to handle nested ini format? | 18:21 |
faassen | i.e. | 18:21 |
faassen | foo = [xvfb] | 18:21 |
faassen | xfvb=/usr/bin/Xvfb | 18:22 |
J1m | I believe so | 18:22 |
faassen | okay, good. | 18:22 |
J1m | Although I'm not positive. | 18:22 |
faassen | anyway, that would be important, as some applications have their configuration using configparser. :) | 18:23 |
faassen | like buildout itself. :) | 18:23 |
J1m | Yup | 18:23 |
* J1m tries that.... | 18:23 | |
faassen | concerning script generation, how small can one make these scripts be? | 18:23 |
faassen | it'd be nice if my skeleton could go away. | 18:23 |
faassen | one of the things that's in my skeleton is config files. | 18:23 |
faassen | the other bit is scripts. | 18:23 |
faassen | we minimized the script to be very small. | 18:23 |
faassen | but it'd be nice it if were just non-present. I know setuptools has a way to autogenerate scripts | 18:24 |
faassen | that way my whole skeleton could disappear. | 18:24 |
*** oferw has quit IRC | 18:25 | |
J1m | Yup. works just fine. | 18:25 |
faassen | okay, good. | 18:25 |
J1m | Yes, my goal is to make skeletons disappear, except for a few bones laying around in recipes. :) | 18:26 |
faassen | basically I guess what a script needs is, the list of paths into sys.path, it needs to deduce its instance home | 18:26 |
J1m | well, it depends on the script. | 18:26 |
faassen | and it needs to have a mechanism to pass variables deduced during buildout along to the main function of the application. | 18:27 |
faassen | and it needs a way to point to where the main function is. | 18:27 |
J1m | For example, an instance-specific zopectl script needs to know where to find the config file. | 18:27 |
faassen | nah. | 18:27 |
faassen | it doesn't need that. | 18:27 |
faassen | I mean, it could defer this to the main function. | 18:27 |
J1m | Yes, entry-points tell us where the main program is. | 18:27 |
faassen | it just needs the intance home. | 18:27 |
J1m | defer what to the main function? | 18:27 |
faassen | the finding of the config file. | 18:28 |
faassen | that doesn't need to be done in a zopectl script. | 18:28 |
J1m | No, it should be told the config file imo. | 18:28 |
faassen | it just needs to pass enough information to the application's entry point so that code can find the config file. | 18:28 |
faassen | why? | 18:28 |
J1m | In many cases, there is *no point* in an instance home. | 18:28 |
*** RaFromBRC has joined #zope3-dev | 18:28 | |
J1m | For deployment, you want to spread yopur files all over the place to make sysadmins happy. :) | 18:28 |
J1m | your | 18:29 |
J1m | Rather than assuming an instance home and thus implicitly specifying the config file, it makes more sense to me to just specify where the config file is. | 18:29 |
J1m | anyway, each application is different. | 18:29 |
J1m | Zope wants to work one way, the testrunner another, | 18:30 |
J1m | Various apps will need config info and the main program needs to be told somehow how to get that config information. | 18:30 |
J1m | That's another reason easy_install isn't enough. | 18:30 |
J1m | at least for many apps. | 18:31 |
J1m | (I expect that, in many ways. zc.buildout is a prototype for future setuptools or easy_install features.) | 18:31 |
J1m | OK, I'm gonna add the defaults option to the testrunner and try to get that out today. | 18:32 |
* philiKON suspects the same thing | 18:32 | |
*** RaFromBRC has quit IRC | 18:36 | |
*** mgedmin has joined #zope3-dev | 18:39 | |
*** stub has quit IRC | 18:44 | |
*** flox has quit IRC | 18:45 | |
*** faassen has quit IRC | 18:46 | |
*** faassen has joined #zope3-dev | 18:46 | |
*** RaFromBRC has joined #zope3-dev | 18:57 | |
*** mnordgren has left #zope3-dev | 19:05 | |
*** markup_ has joined #zope3-dev | 19:13 | |
*** MJ has quit IRC | 19:16 | |
*** romanofski has quit IRC | 19:19 | |
*** WebMaven has quit IRC | 19:32 | |
*** WebMaven has joined #zope3-dev | 19:38 | |
*** batlogg has quit IRC | 19:38 | |
*** whit has quit IRC | 19:38 | |
faassen | hokay. | 19:43 |
faassen | I just learned that the twisted people have anti-plans to use eggs. | 19:44 |
faassen | right now #twisted gives me the 'not in a million years!' impression on eggs. | 19:44 |
J1m | why? | 19:44 |
faassen | because they don't like setuptools. | 19:44 |
faassen | because it destroys someone's deployment mechanism. | 19:44 |
faassen | because you should use the OS's packaging machinery. | 19:44 |
faassen | lots of opinions. just a general antibody reaction, I'd say. | 19:45 |
faassen | I just thought I'd ask. :) | 19:45 |
faassen | I think I'll ask again in a year's time. | 19:45 |
faassen | but so far they're definitely in serious disfavor of eggs. | 19:45 |
J1m | Are you sure they didn't think you said "threads"? ;) | 19:46 |
philiKON | ROFL | 19:46 |
faassen | no. | 19:46 |
faassen | but the response was very similar. | 19:46 |
faassen | it was a very twisted flavor response. | 19:46 |
philiKON | i wonder if twisted will be the new zope in terms of community wars | 19:46 |
faassen | they just don't give the most open impression as a community | 19:46 |
philiKON | well, war is such a strong word | 19:46 |
faassen | basically everything twisted uses needs to twistified. | 19:47 |
faassen | anyway, I do think part of the reason is they have fairly good support in linux distributions. | 19:47 |
J1m | I don't think they like WSGI much either. | 19:47 |
faassen | and someone mentioned they have tools that can check whether the libraries are the most recent, and such, building on the OS's packaging mechanism. | 19:47 |
faassen | which breaks if you have python specific mechanism. | 19:47 |
J1m | I have a sad impression that the wsgi support in twisted is owned by us. :( | 19:48 |
faassen | :( | 19:48 |
philiKON | hmmm :( | 19:48 |
faassen | I wish they were a bit less rabid. | 19:48 |
philiKON | that's a bad start for getting out of the server business | 19:48 |
J1m | Because wsgi is sort of thread centric. | 19:48 |
faassen | yeah. | 19:48 |
*** ianbicking has joined #zope3-dev | 19:48 | |
faassen | I guess there isn't much of an alternative. | 19:48 |
faassen | hey ianbicking | 19:48 |
J1m | I don't think they really want people to use twisted without doing it the twisted way. | 19:48 |
philiKON | hah, look who's here | 19:48 |
ianbicking | hi, opportune moment? | 19:49 |
J1m | OTOH, that is an unfair generalization. :) | 19:49 |
faassen | yeah, twisted is serious koolaid. of course we're serious koolaid as well. | 19:49 |
faassen | but at least we're trying to water down our koolaid. | 19:49 |
philiKON | ianbicking, talking about twisted and eggs and wsgi | 19:49 |
faassen | they're proud of it and add more syrop. | 19:49 |
J1m | I know that Itamar wants us to be successful using twisted. | 19:49 |
faassen | ianbicking: I just found out the twisted people have twisted antibody reactions against eggs. sort of like eggs are threads. | 19:50 |
ianbicking | ah. | 19:50 |
philiKON | J1m, which doesn't mean he necessary wants to make it easier for us, does it? | 19:50 |
faassen | basically I just want an LDAP client library I can deploy. | 19:50 |
faassen | and I found something based on twisted. | 19:50 |
faassen | but it looks like python-ldap is the way. unfortunately it all is rather hard to eggify too. | 19:50 |
ianbicking | Lots of the people who dealt with the problems that setuptools helps with, but dealt with them before setuptools, seem to really dislike setuptools | 19:50 |
philiKON | 'cept us :) | 19:50 |
philiKON | we really dislike zpkgtools | 19:50 |
faassen | ianbicking: the twisted people like OS packaging mechanisms, and of course those have advantages. | 19:51 |
J1m | philiKON: he has volunteered to encourage people to support us. I haven't had time to take him up on that. | 19:51 |
philiKON | ok | 19:51 |
faassen | J1m: you don't happen to have an OpenLDAP part lying around, do you? :) | 19:51 |
ianbicking | sure, those work great if you have an application; OS-level stuff sucks for libraries | 19:51 |
philiKON | J1m, i'm just saying, i can see how twisted may want us to be successful at using twisted, but perhaps because they like us to adopt more twisted kool aid? | 19:51 |
faassen | ianbicking: I'm not advocating their position. :) | 19:52 |
ianbicking | is it purely packaging kool aid they are trying to encourage? | 19:52 |
ianbicking | or other twisted things? | 19:53 |
faassen | philiKON: anyway, nothing we can do immediately. also, having to deal with other communities is a consequence of getting out of that particular business. it's just that the twisted community is ...unique. | 19:53 |
philiKON | yup | 19:53 |
faassen | ianbicking: oh, we were discussing twisted in general, not packaging koolaid. | 19:53 |
faassen | ianbicking: I mean, we started there. | 19:53 |
ianbicking | packaging-wise, no one else uses their techniques AFAIK | 19:53 |
faassen | anyway, I was just asking. | 19:53 |
philiKON | CherryPy has its own wsgi server, doesn't it? | 19:53 |
faassen | J1m: so, you don't have an OpenLDAP part lying about, do you? :) | 19:54 |
ianbicking | Yes, CP's is pretty well extracted | 19:54 |
regebro | Hmmmmmmm. I would generally prefer if my OS knows about what packages I have installed. | 19:54 |
faassen | J1m: I want to buildoutify openldap. | 19:54 |
ianbicking | well, not extracted, but doesn't depend on anything else in CP | 19:54 |
J1m | os-level packaging sucks is you: | 19:54 |
J1m | - want to be multi-platform | 19:54 |
regebro | So eggs should at least check if the module eists before installing the egg (does it do that now?) | 19:54 |
*** batlogg has joined #zope3-dev | 19:54 | |
J1m | - You want control | 19:54 |
J1m | Other than that, it's great. :) | 19:55 |
regebro | And even better if we can get OS-knowleadgeable easy_installs. : | 19:55 |
faassen | J1m: yeah, well, the twisted people say that people who use setuptools have no clue about serious deployment. neither do the ruby gems people, etc. | 19:55 |
ianbicking | There was an egg compromise for 2.5, where you can install a package "normally", but install the egg metadata too | 19:55 |
faassen | J1m: at least 1 twisted pesron said so. | 19:55 |
regebro | That tell the package manager that they installed the egg. :) | 19:55 |
philiKON | at least with java and perl, distrib-level packaging tools usually work together with the language's system | 19:55 |
philiKON | should be possible with python, too | 19:56 |
philiKON | i remember debian had a big dispute whether or not to deploy eggs in their packages | 19:56 |
regebro | Yeah, well, shouldn't it just be possible for the OS packaging to simply install the eggs? :) | 19:56 |
philiKON | right | 19:56 |
philiKON | that's what i thought | 19:56 |
benji | regebro: one difference is "we" (i.e., zc.buildout users) don't want to involve the OS at all, we're deploying self-contained applications | 19:56 |
philiKON | after all, it installs jars | 19:56 |
faassen | J1m: so no openldap recipe, huh? | 19:56 |
ianbicking | it's just a policy issue, and they have to manage easy-install.pth in some way | 19:57 |
J1m | faassen: I would agree with them is the standard was easy install. | 19:57 |
regebro | benji: Right, that use-case needs to be covered as well. | 19:57 |
J1m | I think we'll be able to do much better with buildout. | 19:57 |
faassen | J1m: yeah, I mentioned installing eggs locally, but I was really not up to a debate with twisted people right now. :) | 19:57 |
J1m | for me, it's all about control. | 19:57 |
benji | and reproducablility | 19:57 |
faassen | ianbicking: oh, by the way, I was thinking vaguely about workingenv and zc.buildout. | 19:57 |
J1m | yup | 19:57 |
faassen | ianbicking: trying to figure out a way to combine the strengths of both. | 19:58 |
J1m | (which buildout doesn't do yet, but will) | 19:58 |
benji | control and reproducability... and being self-contained | 19:58 |
philiKON | regebro, if you look at plone, control and reproduceability seem sto matter there, too | 19:58 |
philiKON | regebro, plone has its installers | 19:58 |
ianbicking | yeah, I haven't really decided how they overlap or what... | 19:58 |
faassen | ianbicking: easy experimentation and start of projects with workingenv, and solid deployment and such with buildout. | 19:58 |
philiKON | regebro, which pulls everything, incl zope and python afaik | 19:58 |
J1m | benji: or not, to make the SAa happier. :) | 19:58 |
J1m | SAs | 19:58 |
regebro | philiKON: right. | 19:58 |
faassen | ianbicking: I think both have their place, there should needs to be a transition from one to the other, handwave vaguely. | 19:58 |
ianbicking | I guess zc.buildout is more declarative (in buildout.cfg), where workingenv is more built on existing tools and interactive work | 19:58 |
J1m | yes | 19:58 |
regebro | I'm not gonna argue that one is better than the other. I want flexibility. | 19:59 |
ianbicking | I suppose you might be able to say "make me a buildout.cfg from the workingenv I've set up" | 19:59 |
J1m | Of course, buildout is based on existing tools too. | 19:59 |
faassen | ianbicking: yeah, that would be cool to have. | 19:59 |
J1m | buildout builds on setuptools and easy_install. | 19:59 |
J1m | They do most of the heavy listing. | 19:59 |
regebro | In a production environment, I'd definitely install my own python, and install all pieces there separately. | 19:59 |
faassen | ianbicking: and use perhaps the buildout package structure in workingenv. | 19:59 |
*** zagy has quit IRC | 19:59 | |
J1m | buildout is just aimed at a slightly different set of use cases. | 19:59 |
ianbicking | I don't 100% understand the buildout structure | 19:59 |
benji | control, reproducability, and being self-contained... I'll come in again. | 19:59 |
regebro | But for development, I want all my stuff to use the latest and greatest, usually. | 19:59 |
faassen | ianbicking: it's pretty simple, just eggs in 'eggs', development eggs in 'develop-eggs', scripts in bin and the stuff it actually produces in 'parts' | 20:00 |
regebro | So I would like to bildout separate instances with eggified everything (including twisted). | 20:00 |
faassen | ianbicking: what I meant is that if a workingenv environment could easy_install eggs into 'eggs' and such. | 20:00 |
ianbicking | well, right now eggs go in lib/pythonX.Y | 20:00 |
ianbicking | which distutils likes | 20:00 |
faassen | ianbicking: right. | 20:00 |
philiKON | J1m, you need to apply your s/s/f/ filter :) | 20:00 |
ianbicking | (or lib/python, if you configure the workingenv that way) | 20:00 |
regebro | But still be able to have one system-python with everything. And I would like my OS to know about it. :-= | 20:01 |
ianbicking | source goes in src/, which seems very conventional to me | 20:01 |
ianbicking | they aren't eggs, really, they are distributions | 20:01 |
faassen | benji: do *you* have a buildout recipe for OpenLDAP? :) | 20:01 |
J1m | ianbicking: the buildout structure is simpler than the workingenv structure because it has no need to emulate a Python install. | 20:01 |
ianbicking | and kind of eggs, once you've run "python setup.py develop" | 20:01 |
benji | faassen: I have a pre-zc.buildout-version-of-buildout recipe | 20:01 |
ianbicking | and I don't know what the equivalent of parts/ is | 20:01 |
faassen | benji: would that be useful to produce a buidout recipe? | 20:01 |
J1m | You could probably use configuration to make it more familiar if you wanted to. | 20:01 |
regebro | I have to agree that I don't understand why twisted-people would dislike eggs. Having eggs does not exlude them from having RPMs and PKGs. | 20:02 |
ianbicking | J1m: but because it doesn't emulate a Python install, buildout needs to be the intermediary for all the setup of the environment | 20:02 |
*** whit has joined #zope3-dev | 20:02 | |
benji | faassen: probably, what's your email address, and I'll send a copy over | 20:02 |
faassen | yeah, that's the clever thing about workenv, I guess. | 20:02 |
faassen | benji: faassen@infrae.com | 20:02 |
faassen | benji: thanks! | 20:02 |
benji | np | 20:02 |
faassen | benji: one for python-ldap too by any chance? :) | 20:02 |
regebro | I definitely need to learn buildout. :) | 20:03 |
faassen | benji: I want to turn that into an egg but it has an extremely grotty setup.py | 20:03 |
benji | faassen: I believe so | 20:03 |
faassen | benji: any idea how to handle that? | 20:03 |
regebro | And make a --build-egg for bundle-man. :) | 20:03 |
faassen | benji: I mean, I could not make it an egg, and install it into a part somehow, and then place that on the pythonpath everywhere somehow. | 20:03 |
faassen | hm. | 20:03 |
benji | faassen: not really, I haven't gotten into zc.buildout as much as I'd like yet | 20:03 |
faassen | benji: okay, I'll bother Jim again then. :) I figured I'd try asking someone else. :) | 20:03 |
ignas | are there any comprehensive tutorials of Zope3 publisher traversal mechanics ? A document that would describe the way URL is turned into an actual view with descriptions of all the components involved etc. | 20:04 |
J1m | ianbicking: yes, buildout needs to be the intermediary. That's not a problem for me. :) | 20:04 |
faassen | J1m: it's a problem for starting development. | 20:04 |
J1m | I wanted buildout for other reasons, and, having it. I could choose a simpler layout. | 20:04 |
faassen | J1m: it's requiring a lot of stuff from someone who just wants to write a script using some libraries. | 20:04 |
faassen | J1m: so I think buildout would invite more people into that if we grew to support that use case. | 20:04 |
faassen | J1m: which essentially is what workingenv does well. | 20:05 |
J1m | faassen: what use case? | 20:05 |
faassen | J1m: the usecase of "hey, cool, lxml, I want to try that" | 20:05 |
faassen | J1m: and then not having to do sys.path.insert(0, 'eggs/lxml-foobar.egg') | 20:05 |
faassen | in my script trying it. | 20:05 |
J1m | isn't easy install good for that? | 20:05 |
faassen | yeah, and workingenv is even nicer as it doesn't install it into your python. | 20:06 |
faassen | anyway, slightly beyond the trying out scenario. | 20:06 |
philiKON | ignas, i started a sequence diagram once | 20:06 |
faassen | when you get started developing something. | 20:06 |
J1m | but then you have to install and set up workingenv. | 20:06 |
ianbicking | yes, but that's easy | 20:06 |
faassen | yeah, and it doesn't require you to learn much new. | 20:06 |
faassen | buildout is quick to learn, but workingenv is easier stil. | 20:06 |
J1m | anyway, I guess I should provide an example of handling that use case. It is pretty trivial. | 20:06 |
ianbicking | I certainly understand the purpose of buildout, but the overall model really isn't obvious to me | 20:07 |
faassen | J1m: the use case of not having to mess with the sys.path? or worse, writing a recipe for deployment right away. | 20:07 |
ianbicking | in terms of what gets rebuilt when, why work is being done, what all the configuration means, etc | 20:07 |
faassen | ianbicking: it's not too hard to understand. the really nice part is that recipes are eggs too. | 20:07 |
*** regebro has quit IRC | 20:07 | |
faassen | ianbicking: or perhaps your understanding is more advanced and I don't understand yet what ther isn't to understand. :) | 20:07 |
J1m | For this use case, you don't need to write anython other than a very simple config file. | 20:08 |
ignas | philiKON: where can i find it ? I want to check whether my knowledge of the mechanics are complete ... | 20:08 |
*** MJ has joined #zope3-dev | 20:08 | |
philiKON | ignas, i'm trying to find it on my harddisc | 20:08 |
philiKON | it's certainly not complete | 20:08 |
J1m | I'll add this use case to the examples in the documentation. | 20:08 |
ianbicking | faassen: it might also be that you've already tackled this problem before, so the approach buildout takes seems more familiar | 20:08 |
faassen | J1m: okay. I'm not sure how a config file helps me not having to write the sys.path.insert() manipulation. | 20:08 |
faassen | ianbicking: not really. | 20:09 |
J1m | [buildout] | 20:09 |
faassen | ianbicking: I'm quite interested in what makes it hard for you, as I'm quite interested in making it used more. | 20:09 |
J1m | parts = mypy | 20:09 |
J1m | 20:09 | |
J1m | [mypy] | 20:09 |
ianbicking | I don't really know what the right solution is, but I do know that with workingenv I don't lose momentum thinking about that part of the process | 20:09 |
J1m | interpreter = mypy | 20:09 |
J1m | eggs = lxml | 20:09 |
J1m | 20:09 | |
J1m | That's it. | 20:09 |
faassen | ianbicking: right, that's what is attractive. | 20:09 |
J1m | You run bootstrap.py | 20:09 |
J1m | run bin/buildout | 20:10 |
faassen | J1m: how is the interpreter the part mypy? | 20:10 |
J1m | and then run bin/mypy | 20:10 |
faassen | J1m: where's my script? | 20:10 |
J1m | to get a python interpreter with lxml in the path. | 20:10 |
ignas | philiKON: i had some funny troubles with zopes container.traversal.ContainerTraverser (it ignores custom view traversers apparently) | 20:10 |
J1m | the script is mypy | 20:10 |
faassen | J1m: oh, interesting. so mypy is its own interpreter somehow? | 20:10 |
ignas | philiKON: i just don't know whether it is a bug or a feature :) | 20:10 |
J1m | faassen: yes | 20:10 |
faassen | J1m: okay, I don't understand why yet. :) | 20:11 |
philiKON | ignas, the diagram doesn't cover details :) | 20:11 |
J1m | You can use it interactively, or you can use it to run scripts. | 20:11 |
faassen | J1m: how does that thing end up creating something in bin? | 20:11 |
faassen | J1m: where's the recipe used? | 20:11 |
philiKON | ignas, custom view traversers? | 20:11 |
faassen | J1m: does this use a default recipe or something? | 20:11 |
philiKON | ignas, at least browser pages implement IBrowserPUblisher themselves already | 20:11 |
faassen | J1m: I guess the same one as for the buildout section? | 20:12 |
J1m | I have found it useful, for debugging, to have a script that emulates a Python interpreter with its path set so I can try things interactively. | 20:12 |
faassen | J1m: right, that's the usecase I was looking for. | 20:12 |
*** danfairs has joined #zope3-dev | 20:12 | |
ignas | philiKON: well you can register a custom view lookup mechanism by adding an ITraversable adapter with the name 'view' | 20:12 |
faassen | J1m: cool | 20:12 |
J1m | oh, faassen , I forgot the recipe = zc.recipe.egg | 20:12 |
faassen | J1m: ah, okay. | 20:12 |
philiKON | ignas, ITraversable has nothing to do with url traversal | 20:12 |
philiKON | ignas, it has a very bad name | 20:12 |
philiKON | ignas, oh, wait | 20:12 |
ignas | philiKON: and Zope3 traversal mechanism will gladly pick it up with namsepaceLookup() | 20:12 |
philiKON | ignas, for namespace traversal it is used, which sucks | 20:12 |
faassen | J1m: that makes it fairly easy to do this. very similar to what workingenv does, though you write what eggs you want in the .cfg file instead of easy_installing them in. | 20:13 |
ignas | so queryMultiAdapter (done by a lot of custom traversers) ignores the view namespace | 20:13 |
J1m | faassen: right | 20:13 |
ignas | thus ignores any custom view lookup mechanisms | 20:13 |
philiKON | ignas, ITraversable shouldn't be used by url traversal anyways | 20:13 |
faassen | benji: thanks for those old-style recipes. I'll look on how to turn them into buildout recipes soon. | 20:13 |
benji | faassen: glad to help | 20:14 |
ignas | philiKON: so what should namespaceLookup use then ? | 20:14 |
faassen | J1m: oh, by the way, I'm going to go to a little grok sprint at Gocept in october. | 20:14 |
philiKON | ignas, namespaceLookup shouldn't be used either :) | 20:14 |
philiKON | ignas, url traversal shouldn't use zope.traversing at all | 20:14 |
philiKON | zope.traversing has a bad name | 20:14 |
philiKON | it should be zope.pathresolve | 20:14 |
ignas | oh ? then what should be used instead ? | 20:14 |
philiKON | or something like that | 20:14 |
philiKON | IPublishTraverse prolly | 20:14 |
ignas | to perform a correct View lookup | 20:14 |
philiKON | J1m, btw, i realized this the other day. zope.traversing just has a bad name | 20:15 |
philiKON | J1m, i should've named it zope.pathresolve | 20:15 |
*** whit has quit IRC | 20:15 | |
philiKON | because it's about resolve paths, e.g. paths in TALES expressions | 20:15 |
ignas | IBrowserPublisher performs normal traversal while @@ are lookuped with namespaceLookup('view', ...) | 20:15 |
philiKON | ignas, yes | 20:15 |
philiKON | ignas, that's the part that sucks and will hopefully be change din 3.4 | 20:15 |
ignas | will i be able to implement my custom view lookup for objects in 3.4 then? | 20:16 |
philiKON | sure, i wonder why you can 't in 3.3 | 20:16 |
philiKON | isn't there a default IPublishtraverse for objects? | 20:17 |
ignas | well because most traversers assume that view lookup is performed with queryMultiAdapter | 20:17 |
philiKON | hmm | 20:17 |
philiKON | "most traversers" is who? | 20:17 |
mgedmin | ignas's laptop just crashed | 20:18 |
*** ignas has quit IRC | 20:19 | |
*** ignas has joined #zope3-dev | 20:20 | |
ignas | philiKON: traversers like container.traversal.ContainerTraverser | 20:20 |
philiKON | ok | 20:21 |
philiKON | hmm | 20:21 |
ignas | the logic that should be performed as i understand should be like try to get an item with name, if there is no such item - try to do same thing as foo/@@name would do | 20:21 |
ignas | but queryMultiAdapter is not the thing that @@name performs | 20:21 |
faassen | benji: hm, it might also be useful to see buildout.GnuAutoconf | 20:21 |
philiKON | ignas, hmmm | 20:22 |
philiKON | ignas, @@name does queryMultiAdapter by default, though, right? | 20:22 |
ignas | @@name expands into namespaceLookup('view', name, context, request) | 20:22 |
faassen | benji: and what's youre strategy for making LD_LIBRARY_PATH available later? | 20:22 |
J1m | (I hope someone will help me explain buildout more clearly. :) ) | 20:22 |
ignas | and namespaceLookup does queryMultiAdapter((context, request), ITraversable, name='view') | 20:22 |
faassen | benji: to say, Zope? | 20:22 |
ignas | and then the traverser performs the queryMultiAdapter | 20:22 |
faassen | J1m: eventually I intend to write a document. :) | 20:23 |
ignas | thus if i try to insert my own view lookup mechanism, it is ignored ... | 20:23 |
faassen | J1m: I think the biggest draw of buildout by far is.. so, look at this little buildout.cfg | 20:23 |
ignas | either i should not use custom view lookup | 20:23 |
ignas | or traversers should not ignore it | 20:23 |
philiKON | ignas, what's your use case anyways | 20:23 |
faassen | J1m: this setups up zope 3, openoffice, oooconv, 157 eggs, openldap, python-ldap if you just run bin/buildout | 20:23 |
philiKON | ignas, i guess we could argue that view lookup just simply happens thru getMultiAdapter | 20:24 |
faassen | J1m: the more recipes we have, the bigger the attraction. | 20:24 |
*** flox has joined #zope3-dev | 20:24 | |
ignas | i want to perform custom view lookup depending on the NavigationData stored in some place (tm) | 20:24 |
*** ChrisW has joined #zope3-dev | 20:24 | |
faassen | J1m: maybe you know.. in oldbuildout. | 20:24 |
*** torkel_ has quit IRC | 20:24 | |
J1m | faassen: sure, but there are two extremes. I also find buildout really useful for dealing with a single package. | 20:24 |
faassen | J1m: nah, I'll just mail Benji with my questions. | 20:24 |
ChrisW | is there any particular interface that event subscribers have to subscribe to? | 20:24 |
ChrisW | gah, subscribe to -> implement | 20:25 |
philiKON | faassen, i've been wanting to write some zope 2 related recipes :) | 20:25 |
*** alga has quit IRC | 20:25 | |
faassen | J1m: sure, that needs to be written up too. | 20:25 |
J1m | ChrisW: no | 20:25 |
*** alga has joined #zope3-dev | 20:25 | |
ignas | philiKON: i will need to lookup views depending not just on url but on permission settings | 20:25 |
*** torkel_ has joined #zope3-dev | 20:26 | |
ChrisW | cool | 20:26 |
ignas | philiKON: that do not translate to Interfaces | 20:26 |
ChrisW | okay, philiKON likely knows where I'm going with this... how would I set up a subscriber in Zope 2 land such that objects got catalogued in a ZCatalog on IObjectModified? | 20:26 |
ignas | philiKON: but if you say that Zope3.4 will not have a mechanism of pluggable view lookup traverser, I will think of something else | 20:27 |
ignas | philiKON: just that i had it already working ;) | 20:27 |
ChrisW | I could just acquire the catalog from the object-being-added's new container, but is that the right thing to do? | 20:29 |
faassen | philiKON: coolabout the z2 recipes, that'd be very useful | 20:29 |
philiKON | ChrisW, yeah, i guess that's the only choice you have in z2 | 20:30 |
philiKON | ChrisW, in z3 we just find the utility | 20:30 |
philiKON | meaning, we find the catalog as a utility | 20:30 |
*** jinty has joined #zope3-dev | 20:30 | |
philiKON | faassen, i've been talking to rocky about this, i'd like to demo installing python packages for five with a buildout in zope 2 | 20:31 |
ChrisW | hmm, why can't a persistent object be an event listener? | 20:31 |
philiKON | faassen, so that the whole zcml slug story, fo rexample, becomes a no brainer | 20:31 |
faassen | philiKON: yes, that'd be cool. | 20:31 |
philiKON | ChrisW, it could be | 20:31 |
faassen | philiKON: it'd be nice if there were some way to support old-style products as well. | 20:31 |
philiKON | sure | 20:32 |
philiKON | you know how plone has those bundles | 20:32 |
philiKON | it'd nice to demo a recipe that works like installing a bundle | 20:32 |
philiKON | well, i guess youd' have a product recipe | 20:32 |
ChrisW | philiKON: okay, would would you do it? | 20:32 |
philiKON | and a bundle becomes a buildout.cfg | 20:32 |
ChrisW | (I'm guessing the problem is the equivalent of the "subscriber" directive) | 20:32 |
philiKON | ChrisW, prolly not. i'd just acquire the catalog | 20:32 |
faassen | philiKON: righ,t I think you'd need a product recipe. | 20:32 |
philiKON | anyways, gotta catch my tram | 20:33 |
philiKON | see y'all | 20:33 |
*** philiKON has quit IRC | 20:33 | |
ignas | philiKON: so what will replace namespaceLookup then ? | 20:33 |
ignas | ouch :/ | 20:33 |
faassen | J1m: concerning buildout and LD_LIBRARY_PATH | 20:34 |
faassen | J1m: it'd be nice if the zope 3 instance recipe picked up extra paths to place on LD_LIBRARY_PATH from buildout. | 20:34 |
*** ignas has quit IRC | 20:34 | |
faassen | J1m: do you have any thoughts about that? | 20:34 |
*** Aiste has quit IRC | 20:36 | |
*** gumpa has quit IRC | 20:36 | |
ChrisW | okay, anyone else think of a way to make a persistent object a subscriber? | 20:36 |
faassen | ChrisW: in zope 2 or zope 3? | 20:36 |
ChrisW | should there be a difference? | 20:37 |
ChrisW | the problem I see is that <subscriber> directive | 20:37 |
*** gumpa has joined #zope3-dev | 20:37 | |
faassen | ChrisW: well, fundamentally your subscriber is always going to be a function, but it can delegate to a persistent object, for instance a utility. | 20:37 |
faassen | ChrisW: basically the idea is that the function is going to do the dispatching to persistent objects. it could do a catalog query and find 100 of them and call methods on them, etc. | 20:37 |
ChrisW | why couldn;t the subscriber be a method? | 20:38 |
ChrisW | and why not a method of a persistent object? | 20:38 |
faassen | ChrisW: how are you going to express that? | 20:38 |
faassen | ChrisW: like, which one of the 5 million persistent objects? | 20:39 |
ChrisW | yeah, but subscribers register themselves for events, right? | 20:39 |
faassen | ChrisW: you register them for events, I'd say. | 20:39 |
faassen | ChrisW: anyway, there is no systme in Zope 3 at present that allows persistent objects to subscribe themselves to events. you could build such, for instance using an index. | 20:40 |
faassen | ChrisW: on top of the subscriber system. | 20:40 |
ChrisW | hmm, I'm trying to get my head around what the problem is | 20:42 |
ChrisW | it's annoying when persistency suddenly becomes non-transparent ;-) | 20:42 |
ChrisW | how does local utility lookup work? | 20:42 |
ChrisW | you have to provide a context to start from and then it works it's way up the __parent__ hierarchy? | 20:43 |
*** RaFromBRC has quit IRC | 20:43 | |
faassen | ChrisW: no, in Zope 3 you don't. | 20:44 |
faassen | ChrisW: don't know about the local utility support in Zope 2, but I imagine it works the same way. | 20:45 |
ChrisW | how does it work in Zope 3 then? | 20:45 |
faassen | ChrisW: you just do getUtility and will have a concept based on the site you traversed into. | 20:45 |
faassen | ChrisW: basically the site context is set thread-globally when you traversei nto a site. | 20:45 |
ChrisW | yeah, so you start with a context object ;-) | 20:45 |
faassen | ChrisW: you don't need to specify any context object and it doesn't traverse up anything, unless the utility is not found in that site. | 20:45 |
faassen | ChrisW: in which case it does traverse up to the site above that. | 20:46 |
ChrisW | and I do hope you mean thread-local: ie: local to the one thread only... | 20:46 |
faassen | ChrisW: yeah, sorry, global but thread local. | 20:46 |
benji | faassen: sure, one minute | 20:46 |
ChrisW | hmmm | 20:46 |
faassen | benji: gosh, now what did I ask, I forgot. :) | 20:46 |
ChrisW | I'm sure the failure to admit that there is a context in a web app is a good thing ;-) | 20:47 |
faassen | ChrisW: I don't understand what you mean. | 20:48 |
benji | faassen: more details about those old-style recipes | 20:48 |
faassen | ChrisW: of course there's a context, it's just, as I said, you don't need to specify any context object and the __parent__ walk doesn't take place. | 20:48 |
ChrisW | s'ok | 20:48 |
ChrisW | I've dropped a quick mail to the list to kick off a discussion, sadly I need to get going... | 20:49 |
faassen | ChrisW: so I was trying to create an accurate mental model in your mind, not deny the existence of any context. I denied that you provide the context. | 20:49 |
ChrisW | thanks for the ideas though :-) | 20:49 |
*** ChrisW has left #zope3-dev | 20:49 | |
faassen | benji: right.. can you mail them? I'm off to home now. :) | 20:49 |
faassen | benji: but thanks in advance! | 20:49 |
faassen | benji: see you! | 20:49 |
faassen | benji: feel free to answer that LD_LIBRARY_PATH question too, Jim didn't wake up to answer it here. :) | 20:50 |
* faassen grins. | 20:50 | |
* faassen waves. | 20:50 | |
*** faassen has quit IRC | 20:50 | |
*** romanofski has joined #zope3-dev | 20:52 | |
*** danfairs has quit IRC | 20:55 | |
*** kobold has quit IRC | 20:55 | |
*** whit has joined #zope3-dev | 20:57 | |
*** zagy has joined #zope3-dev | 21:00 | |
*** reco has quit IRC | 21:01 | |
*** mkerrin has quit IRC | 21:06 | |
*** rocky is now known as rocky|away | 21:15 | |
*** dobee has quit IRC | 21:15 | |
*** natea is now known as natea|away | 21:16 | |
*** whit is now known as whit|pairing | 21:20 | |
*** srichter has quit IRC | 21:23 | |
*** nathany has quit IRC | 21:27 | |
*** dunny has joined #zope3-dev | 21:31 | |
*** flox has quit IRC | 21:42 | |
*** flox has joined #zope3-dev | 21:43 | |
*** gumpa is now known as gumpa_afk | 21:50 | |
*** bradb has joined #zope3-dev | 22:03 | |
*** flox has quit IRC | 22:05 | |
*** flox has joined #zope3-dev | 22:06 | |
*** MJ has quit IRC | 22:14 | |
*** MJ has joined #zope3-dev | 22:16 | |
*** ofer has joined #zope3-dev | 22:20 | |
febb | hello ! | 22:26 |
*** philiKON has joined #zope3-dev | 22:37 | |
*** danfairs has joined #zope3-dev | 22:39 | |
ofer | philiKON: the z3 trainning is full :( | 22:44 |
philiKON | i know | 22:45 |
philiKON | :) | 22:45 |
ofer | I didn't but now I know | 22:45 |
philiKON | ok | 22:45 |
ofer | you have days for next one? | 22:45 |
philiKON | not yet | 22:46 |
ofer | ok | 22:47 |
philiKON | J1m, are we having a 3.3 final this week? | 22:53 |
J1m | Lets :) | 22:56 |
J1m | Friday? | 22:56 |
philiKON | J1m, ok. i have plans for friday night (euro time), so i won't be able to make the announcements till saturday | 22:58 |
J1m | I'll try to do it tomorrow if I can. | 22:58 |
philiKON | ok. | 22:58 |
J1m | were there any changes since the last release? | 22:58 |
*** markup_ has quit IRC | 22:58 | |
philiKON | no | 22:58 |
philiKON | J1m, onet hing though | 22:58 |
philiKON | there was a zpkgtools bugfix | 22:58 |
J1m | cool, then maybe I can make it go faster. | 22:58 |
J1m | but zpkgtools isn't part of the release. | 22:59 |
philiKON | ./configure --unknownoption didn't show an error msgs | 22:59 |
philiKON | well, zpkgsetup or whatever | 22:59 |
philiKON | the thign that provides the configure script | 22:59 |
philiKON | so, if you're using a newer zpkgtools now (svn HEAD), it'll use the new configure | 22:59 |
J1m | ah, ok | 23:00 |
philiKON | that's the only change i count | 23:00 |
philiKON | no modifications on the 3.3 branch since last release | 23:00 |
philiKON | so, tomrorow or friday works for me, i just can't promise to be there immediately for the announcements. | 23:01 |
philiKON | i have a day job and the book deadline is monday | 23:01 |
philiKON | :) | 23:01 |
J1m | k, I'll try to do it tomorrow. | 23:01 |
philiKON | ok | 23:02 |
*** zagy has quit IRC | 23:03 | |
*** danfairs has quit IRC | 23:18 | |
*** flox has quit IRC | 23:26 | |
*** flox has joined #zope3-dev | 23:26 | |
*** mgedmin has quit IRC | 23:29 | |
*** ofer has quit IRC | 23:31 | |
*** rocky|away is now known as rocky | 23:32 | |
*** flox has quit IRC | 23:33 | |
*** natea|away is now known as natea | 23:37 | |
*** flox has joined #zope3-dev | 23:38 | |
*** flox has quit IRC | 23:42 | |
*** flox_ has joined #zope3-dev | 23:42 | |
*** flox_ is now known as flox | 23:43 | |
*** dobee has joined #zope3-dev | 23:47 | |
*** ignas has joined #zope3-dev | 23:56 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!