sabdfldamn this stuff is well thought out12:35
sabdflhairy and poorly documented but nonetheless well thought out12:35
sabdflwhoot! phear my phorms01:21
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: good looking autogenerated edit and add forms for bugs (patch-679)01:27
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: good looks for ALL  autogenerated add and edit forms (patch-680)02:07
=== sabdfl [~mark@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad []
=== stub [~stub@dsl-] has joined #launchpad
=== BradB|out is now known as BradB
=== mdz_ [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== mdz_ is now known as mdz
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has left #launchpad ["Client]
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
jblackAny zope guys around? 06:17
stubjblack: Yo07:02
jblackstub: I'm finally starting to get zope.07:03
stubYou should see a doctor07:03
jblackHeh. Yeah. It took being sick to do it. :) 07:03
jblackBut anyways.... I've setup an object, and I can refer to attributes in the interface. That's fine and all.07:04
jblackBut I don't seem to be able to include just an object. 07:04
stubI don't get that second sentence.07:05
jblackI.E. I can do <div tal:content="context/James/name">A name</div>, but I can't do <div tal:content="context/James">Showing a whole object</div>  07:05
stuboic. 07:05
lifeless__str__ ?07:05
lifelessin the interface.07:05
=== lifeless us guessing
jblackWell, if I point at localhost:8080/James/ I get a nice html layout of the information (thanks to info.pt)07:06
stubI don't think it even needs to be in the interface - it just needs one.07:06
jblackI'd like to include that.07:06
lifelessstub: surely thats a whole in the interfaces implementation? 07:06
jblackstub: So what? Its "ok" to put html in an interface? 07:06
stubjblack: No - ignore the __str__ -- that isn't what we want in this case. That would be if you just wanted context/James to render 'James' or something.07:07
stubWhat is the name of the view that uses info.py? (The name in the page directive most likely)07:08
jblackNo clue. The only place I referenced info.pt was in configure.zcml07:09
stubIf it was 'index' for example, you should be able to do this as tal:content="structure context/James/index" or tal:content="structure context/James/@@index"07:09
jblackOh, you mean the page I'm trying to do this? yeah, index.html07:10
stubok. So first try context/James/index.html or context/James/@@index.html (the second one is more explicity - 'the index.html View on the James object')07:11
stublifeless: I would have to test to be sure. I suspect some methods are exposed by default (and should not include protected information), because otherwise things like tracebacks become impossible. Not sure what the current status is though.07:12
lifelessstub: hmm.07:13
=== lifeless thinks that is crack
jblacknope. system error for contex/James/@@index, context/James/index and context/James/@@index.html, ...@@info.pt, ...info.pt07:13
jblackOh yeah. I get a security error when I just use "context/James" 07:14
stubWhat is context btw? A container of some kind?07:16
jblackJust something I seem to need. If I don't have that, I get "Path element may not be empty in u'/James/name' 07:17
stubZope publishes a tree of objects. These objects are generally your context. You attach Views to them.07:19
stubSo you have a page foo.pt which you register as a view named 'foo.html' on an object. In this case 'context' is object. 'context/James' would be a child named 'James' of that object.07:21
jblackWhat's the difference between a view and an interface? 07:22
jblackI see that according to the graph, a view calls the interface, which defines the interface for a class.07:22
stubAn interface is an interface, like a Java interface. It just specifies a contract that object that implement the interface has to adhire to.07:22
stubCalling an interface doesn't make sense. If you see syntax like IFoo(someobject), that is actually Adaption which is something different.07:23
jblackOk. the view definitions go in configure.zcml.07:24
jblacksuch as <browser:page \n for=".interfaces.IBuddy" \n name="index.html" \n template="info.pt"  \n permission="zope.View" \n />07:24
stubA View provides a, well, view of an object. You define an object that defines data, behaviour etc. However, it shouldn't have to know how to render itself as HTML. To do that, we attach a View to it. These views are traversable, thanks to Zope, so that 'localhost:8080/James/foo.html' means 'show me the foo.html view of the James object'07:25
jblackSo why doesn't <div tal:replace="context/James/index.html"></div> work? 07:25
jblackaccording to my log, I get: 07:26
jblackNotFoundError: (<buddydemo.buddy.Buddy object at 0x4392d56c>, 'index.html')07:26
stubCan you tell me the URL you used to view 'index.html of James' and the URL you are trying to use for this example?07:26
stubok... buddy demo..07:27
jblacklynx localhost:808007:27
jblackand in index.html, I have in the body, the div tal:replace I mentioned.07:27
stubSo we have IBuddy, and an object instance that implements IBuddy called 'James'.07:29
stubWe have attached a view named 'index.html' to all objects that implement the IBuddy interface (the <browser:page directive from before)07:29
jblackyes, and yes07:29
stubYou have created a page template in the root of your Z3 tree called something, which is trying to include the index.html view of the James object07:30
jblackActually ,yes. That's correct.07:31
stubSo in this case context should be 'the root folder', and 'context/James' should refer to the James object stored in the root folder.07:32
jblackbut if I do that, I get a security error.07:32
jblack   <security proxied buddydemo.buddy.Buddy instance at 0x4392892c>07:33
jblackThat shows up in the browser. The log looks fine.07:33
stubFirst thing, before I forget, is you will need to use tal:content="structure blahblahblah" instead of tal:content="blahblahblah", or else all your HTML will be quoted.07:33
stubYou should get <security proxied buddydemo blah blah> if you do tal:content="context/James". Zope is trying its best to render the James object, and the best it can do is use the __repr__ method of its security proxy. This is correct.07:35
jblackOk. so it should be context/James/index.html.07:36
stubWhat do you get if you have tal:content="structure context/James/@@index.html" 07:36
jblackHmmm. I must have a typo then, because that gives me: NotFoundError: (<zope.app.security.principalregistry.UnauthenticatedPrincipal objectat 0x4167806c>, 'title')07:37
stubYou can fix the class definition of the James object to allow the syntax you want by defining the __call__ method I think07:37
stubLooks like something is trying to do tal:content="user/title" and this is failing.07:38
stubDoes anything look like that in info.pt ?07:39
jblackNothing that references title, no07:39
jblackbtw, if I go to http://localhost:8080/James, the object represents correctly.07:41
jblackIf it would help, I'm more than willing to tarball this for you.07:41
stubSo the name= attribute of the browser:page element in configure.zcml is definitly name="index.html" ?07:42
stubSure - tarball it and email to stuart@stuartbishop.net07:42
jblackOn its way.07:43
jblackbtw, thanks. I appreciate the help07:45
=== BradB is now known as BradB|zzz
stubjblack: And the source of the document that is trying to do tal:content="context/James/index.html" ?07:55
jblack /index.html07:56
jblackIts in the zobdb07:56
stubYou will have to cut'n'paste it07:56
jblackoh, that didn't come with the tarball? 07:57
stubNice PHP tags in there :)07:59
jblackthat's done by pastebin. its not in my script. ;) 08:00
stubAre you able to turn off View permissions on the /index.html page tempate to unauthenticated users? (I can't remember if that can be done atm in Z3)08:04
jblackI have no idea how to do that.08:05
stubDoesn't matter - I've remembered how that works. What I'm trying to work out is why the log is saying the URL is 'localhost:8080/index.html/index.html'08:13
jblackI don't get it. Isn't this a pretty basic fundamental property of zope?08:20
jblackTo be able to do stuff like this? 08:20
stubYes. I need to trace down what is trying to access the unauthenticatedprincipal, which is what is raising the exception.08:23
stubAt first glance it looks like a bug, either in the error reporting or in one of the templates that is being included08:24
stubZ3 is not focused on the TTW stuff though at the moment, so the TTW page templates could have problems.08:25
stubGoddammit I can't drive svn anymore :-(08:25
stub(Not that I ever could...)08:25
=== jblack laughs evilly
jblackI take it you mean a z3 builtin template? I haven't gotten to doing templates and metal just yet.08:27
stubYes - something builtin.08:30
jblackshould I try changing the view name from index.html to something else? 08:40
stubjblack: The syntax is correct and everything should be working. I suspect the problem is in the TTW page templates implementation. I tried it with your code with a SVN checkout of the Z3 trunk and am getting exceptions. However, I can happily add views which do the equivalent.09:22
jblackI'm confused. Other views work fine, but mine is hosed/ 09:22
stubAre you running the beta tarball or a svn checkout btw?09:24
jblackI'm running the release candidate09:25
stubWhat is happening (I think) is the TTW page templates implementation is unable to include the view inside itself - it trips over its own security implementation09:25
stub(which would be a bug)09:25
jblackhow do I work around it? 09:26
stubI'm attaching views to the interface '*' (ie. every damn object), which is not exactly an optimal work around :-)09:28
stub<browser:page for="*" name="includer.html" template="includer.pt" permission="zope.View" />09:28
jblackWith that change, I get NotFoundError: (<buddydemo.buddy.Buddy object at 0x4392d56c>, 'includer.html')09:31
jblack(yes, I renamed info.pt to includer.pt)09:32
jblackand my [top]  / index.html has the following pertinant line: <div tal:replace="structure context/James/@@includer.html"></div>09:33
stubErm... you would need to create includer, not use info.pt09:34
stub(where includer.pt contains the same code as in your TTW page template)09:34
stubI'll see if anyone bites on #zope3-dev. You are probably one of the first people to try doing this with TTW page templates. Most of the people involved don't use any of the TTW stuff so it needs lovin'.09:35
jblackWhat do people normally do instead? 09:35
jblackThey use slots instead or something? 09:36
stubWe would create a BuddyContainer object designed to hold Buddy's. Then attach Views to the Buddy container. What you have is similar, except replace ZODB root folder with Buddy container and View with TTW page template.09:37
stubWhat you are doing should work fine though09:37
stubIts being looked into by bigger brains than mine09:51
jblackThanks for digging into this, stub09:59
=== stub hands jblack a badge with the label 'Successful Z3 beta tester'
=== jblack cries
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
jblackso, when a new version of zope comes out, how do I upgrade an instance? 10:02
jblackOk. So make a folder, put buddies in there instead.10:05
stubjblack: You just install the new Z3 code and it all happily keeps working (well... if it doesn't it is a major bug :-) )10:25
jblackOh, didn't realize instances depended on the install10:26
=== Kinnison [~dsilvers@81-178-251-195.dsl.pipex.com] has joined #launchpad
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
stubjblack: Your code works just fine on a checkout of the Z3X branch (so it has either been fixed in rc3 or later). It is still broken in the Z3 trunk though, so it was a good catch.10:40
jblackdoesn't c1 postdate rc3? 10:41
stub svn co svn://svn.zope.org/repos/main/Zope3/branches/ZopeX3-3.010:41
stubI though you said rc2 before10:42
=== sabdfl [~mark@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
SteveAlifeless, stub: __repr__ is public by default.  __str__ generally is not.10:57
SteveAIf your application depends on particular behaviour from __str__, then it should be in the interface.  The case with __repr__ is arguable either way, but I think that if your application depends on a *particular* __repr__ representation, it is broken, and it should be in the interface.11:00
stubjblack: Your code works just fine on my ZopeX3-3.0c2 installation11:02
jblackHuh. That's what I'm using. ZopeX3--3.0.0c211:03
stubYup. So I don't know what is wrong at your end :-)11:03
sabdflmorning all11:05
sabdflstub: i've got the pretty-forms stuff working in a shoddy way, will clean it up today11:07
SteveAour forms are pretty shoddy11:07
sabdflbug-addform is as it should be?11:07
sabdflsorry, no ? required11:08
sabdflSteveA: why?11:08
stubYup. So how did you go with the form machinery stuff? PITA or did it grow on you?11:08
SteveAsabdfl: bad pun.  you said "i've got the pretty-forms stuff working in a shoddy way"11:08
sabdflstub: there was no documentation to do what i wanted to do, so it was a weekend of groping in the dark11:08
sabdflah :-)11:08
sabdflstub: found what i think was your work (default-addform, default-editform) and built on that11:09
sabdfli think we can get it relatively pretty for relatively little work now11:10
sabdflbut eventually we are going to need qute a few custom widget classes11:10
sabdflstill, should be doable11:10
stubYup. We can also fix the Z3 stuff if it gets in the way. I think it is the right tool to use, but others might not agree ;)11:11
stubI'm having flashbacks from my last job with all that informative text included inline in the form ;)11:17
carlossabdfl: I need to add a Rosetta specific attribute to the Person interface and class, should I create a RosettaPerson for that or could I use the main object directly?11:43
sabdflcarlos: what's the attribute11:44
carloswell, at this moment it's already inside person.py implementation, it's its move from Schema/Label to a real table (PersonLanguage)11:46
carlosbut the interface does not have it11:46
carlosand the needed RelatedJoin attribute11:47
sabdflcarlos: absolutely, add that to the person class11:48
sabdflwe want to avoid local copies of the classes as much as possible11:49
sabdfllater on, maybe we can split functionality up but for the moment put everything you need into Person directly11:49
carloslater this week, I will add the License object, where should It be stored?11:50
dilysMerge to rocketfuel@canonical.com/sqlos--test--3.0: Workaround for 'destroySelf breaks commits' problem (patch-3)11:50
SteveAin our database, the fundamental unit of licensing is the source package.11:52
sabdflcarlos: it's a new table so it gets database/license.py, zcml/license.zcml, interfaces/license.py etc11:55
=== Kinnison discovers that someone has been adding constraints to the db in such a way that gina no longer works
Kinnisonsabdfl: Are we coding in american or in english? (I ask because currently there's an amusing mix of the two in the codebase)12:11
SteveAzope3 standard is us english12:12
SteveA(point of information)12:12
SteveAI think python is in us english too.  seeing as we're using the zope3 and python apis, we should use us english.12:13
KinnisonWell; the binarypackage table has a 'licence' column which is clearly en_GB12:14
KinnisonThis is why I'm asking y'see :-)12:14
KinnisonOr at least; en_US always seems to use 'license'12:15
dilysMerge to rocketfuel@canonical.com/buildbot--devel--0: Make taxi work again (patch-63)12:17
carlosspiv: ping12:27
spivcarlos: pong12:29
carlosspiv: I'm using a RelatedJoin that will give me addLanguage and removeLanguage methods for free12:29
carlosI suppose that I should add them to the interface file, right?12:30
spivIf they're part of the interface, yes ;)12:30
carlosyes, I will need them12:30
spivYep, then do it.12:30
carloswill it give any problem with the interface tests?12:30
carlosperfect, thanks12:31
spivThe interface tests look at the object, rather than trying to read the source code directly :)12:31
carlosmakes sense :-)12:31
=== stub [~stub@dsl-] has joined #launchpad
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Make the librarian optional for gina (patch-681)12:43
=== Kinnison discovers that he can't work out how to get from a distroarchrelease to the architecture name as used by dpkg/apt-ftparchive/etc
=== debonzi [~debonzi@] has joined #launchpad
=== cprov [~cprov@] has joined #launchpad
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: SourcePackage bugs counter. (patch-682)01:24
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Merge lalo's zopeless transactions work and other changes needed for importd (patch-683)01:31
cprovKinnison: morning, can you give me a briefly explanation about "optional librarian dependency on gina" ? How to proceed ?01:39
Kinnisoncprov: theres a line in grabber.py you comment out. the attachLibrarian() call01:42
Kinnisoncprov: then the changes I made in classes.py should notice when the librarian isn't in use and not try and create the entries in the file tables01:43
cprovKinnison: I'll try in that way, tks 01:45
Kinnisoncprov: You're welcome01:47
Kinnisoncprov: If you can patch the rest of gina to get her able to import again; that'd be doubly fantastic01:47
cprovKinnison: it is working now, but I need to comment out some lines in classes.py (getLibraryAlias)02:05
cprovKinnison: do you think we can have a FLAG (!!!) ?02:06
stubWe really want a stub Librarian for a real fix02:07
cprovstub: sorry, what do you mean with "stub librarian" ? 02:10
stubSomething that fakes the API we use to communicate with the Librarian which we can use for development etc. 02:12
SteveAit is an animated stu to help you find your files -- our answer to "clippy"02:12
stubBut I might be solving a different problem :-)02:12
debonzihi stub... the page malone/sourcepackage/mozilla-firefox-dummy/ seems to be broken for me.. do you know about it?02:13
Kinnisoncprov: You could if you wanted. I was just going on the 'if librarian is None:' bit in getLibraryAlias in library.py02:13
cprovKinnison: I see :)02:16
stubdebonzi: Ta. I think Malone is obviously lacking on the page tests, which I should get onto tomorrow :-)02:16
stubSteveA: Bad Steve!02:16
SteveAit's almost like being a move star!02:17
=== stub is now known as stud
debonzistub, right.. just to check because I'm linking sourcepackage for its bugs and I saw it.. thanks :)02:18
studdebonzi: The URL is currently configured to be malone/package/mozilla-firefox-dummy, but the URL's being generated don't point to that. I'm not sure which is supposed to be correct atm (was the missing 'source' a typo in malone/configure.zcml, or did it get changed but the templates not modified?)02:30
=== Kinnison -> Lunch
studOf course, neither is probably correct as Soyuz appears to be using 'src' :-(02:33
debonzistud, You are right.. but I saw it working friday with sourcepackage.. 02:33
debonzistud, maybe it was a proposital modification02:34
studNope - my dictionary doesn't know that word either :-)02:37
debonzistud, AFAICS mark was the last one to play with  malone/configure.zcml02:37
debonzistud, ops.. sorry :)02:38
studI suspect he wants the URL changed because hitting '6x' in vim at the right time is a rather improbable typo02:39
studI'm just wondering if we should consider rationalizing the URL naming with soyuz (use src) since it is currently broken anyway before the dependancies start creeping in again.02:40
studOr maybe we have more important things to worry about :)02:41
debonzistud, yes probably so :)02:42
=== stud goes and fixes the broken package search screen
=== debonzi wishs stub a happy hacking
studIf I can find which template it is in that haystack :-(02:44
sabdflKinnison: i think that was "architecturetag" or something similar... check the soyuz.dia which will be out of date but should have that details03:06
sabdflstud: yes, was me that changed the url to "malone/package/", sorry if i didn't catch it everywhere03:09
sabdflmy rationale for that one is that we *only* track assignment to *source*package so the source is redundant03:10
studsabdfl: Only the one spot once that I have found03:10
Kinnisonsabdfl: If architecturetag was meant to be for that; then that is broken too03:11
sabdflin soyuz, we need the distinction between sourcepackage and binarypackage much more03:11
Kinnisonsabdfl: What with the test-data having 'warty--x86--devel--0'03:11
studsabdfl: We need some consistency and structure in the launchpad/templates directory but I have no idea what it is supposed to look like btw. I don't know if we can mimic the URL space in a directory structure or not.03:11
sabdflKinnison: i think that was a flying guess from someone that went off in the wrong direction :-)03:12
cprovsabdfl: me ??03:12
sabdflstud: agreed03:12
Kinnisonsabdfl: 'stud' again?03:12
sabdflcprov: maybe, no big deal03:12
=== Kinnison tuts sabdfl
sabdflstub's been working out again, hey stud03:13
sabdflstud: quick update on the add/edit for situation03:13
Kinnisonsabdfl: Should I put an UPDATE statement in my SQL patch which is pending then, to update the test-data ?03:13
cprovKinnison: isn't it repaired in sampledata, yet ? if not, please replace it with 'i386' or something simple like that ...03:14
sabdflKinnison: probably easier to follow the normal process for test data: (a) build clean db, (b) make the changes, (c) cd database/schema; make newsampledata03:14
studKinnison: Yes please.03:14
sabdflthen check it out, if happy copy the newsampledata.sql it created over current.sql03:14
sabdflstud: is that right?03:14
studsabdfl: The sample data needs to be updated at the same time the database patch is move to the 'live' area, so generally I need to run the updates and generate the sample data03:16
cprovKinnison: AFAIKS, current current.sql contains the right archtagrelease 'i386'03:16
Kinnisoncprov: aah yes it does03:16
=== Kinnison spanks hisself for being too dumb to spot that
Kinnisonyou're a star03:16
stud(Assuming the sample data changes relate to the schema mods...)03:17
KinnisonOkay, I'll go back to sleep now :-)03:17
sabdflstud: i don't think this is a structural change03:17
Kinnison(Well; actually I'll update my test db and carry on)03:17
sabdfljust that there's a bad bit of data: 'i386' is 'warty-x86--devel--0' or something03:18
studsabdfl: oic. i just read pending patch :-)03:18
sabdflstud: so, about the add/edit forms03:18
sabdfli'm creating launchpad-addofmr and launchpad-editform03:18
=== BradB|zzz is now known as BradB
sabdflbased on your default-addform and default-editform03:19
sabdflbut with a few tweaks03:19
sabdflmorning BradB!03:19
BradBhi :)03:19
Kinnisonstud: speaking of pending patches; I'm *almost* ready for you to merge my pending patch :-)03:20
Kinnisonstud: Just got another two views to finalise :-)03:20
studsabdfl: Which were a hacked up version of the Z3 default ones. It might get a bit 'icky in there -- if anything about the form machinery is badly documented it is customizing the templates. This is somewhere we might find we need to fix stuff and feed changes back into Z3.03:24
sabdflstud: ok, so here's what i'm heading towards03:25
BradBelmo: why does launchpad.ubuntu.com say "Nothing to see here" instead of showing the devel version of launchpad?03:25
sabdflfor each add or edit form, we will create a very small template03:25
sabdflthis template will just really host things that are unique to that specific form03:25
sabdflbut it does allow us to customise, say, the decoration around the form03:25
sabdfland put a paragraph at the top, etc03:25
sabdflit in turn uses launchpad-addform or launchpad-editform which is what holds the general form structure that is common across launchpad03:26
sabdfland that in turn uses launchpad-widget-macros.pt which defines the layout of a given widget's decoration03:27
sabdflbug-addform is basically correct already03:27
sabdfli'll keep tweaking it today03:27
studThat sounds good. Most of them will just be boilerplate, and any structural changes to widget layout can still be made in one place03:28
sabdflone place to affect the way widgets are decorated (name, description, required or not, and the widget itself)03:29
sabdflone place to govern the general form layout (title position, top paragraph, closing paragraph, and buttons)03:30
sabdfland then each actual form gets to tweak the content of title and description etc03:30
elmoBradB: https, not http03:30
=== Kinnison heads home so he can work from his desk once more
Kinnisonsee you all later03:31
dilysBug 2134 resolved: Create and migrate the user languages preferences to a table PersonLanguage03:35
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Fix sourcepackage link broken due to renaming (patch-684)03:44
carlosWhen did we moved from launchapd_test to launchpad_dev?03:45
carlosI did not saw any mail announcing the change, only a thread talking about it and it was not using launchpad_dev but launchpad_devel03:46
=== kiko [kiko@200-206-134-238.async.com.br] has joined #launchpad
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Moved from Schema/Label to its own table to store the Person's languages (Closes: #2134) (patch-685)03:53
sabdflcarlos: what does the PersonLanguage table look like?03:59
=== kiko [~kiko@200-206-134-238.async.com.br] has joined #launchpad
carlossabdfl: id, person, language03:59
carlosin the future it could be updated to store the knowledge level03:59
carlosas Daf suggested in the thread04:00
sabdflUNIQUE (person, language) ?04:00
=== morgs [~morganc@wblv-234-32.telkomadsl.co.za] has joined #launchpad
sabdflhey morgs04:00
morgshey mark04:01
carlosCREATE TABLE PersonLanguage (04:01
carlos     id serial CONSTRAINT personlanguage_pkey PRIMARY KEY,04:01
carlos     person integer NOT NULL04:01
carlos        CONSTRAINT personlanguage_person_fk REFERENCES Person(id),04:01
carlos     language integer NOT NULL04:01
carlos        CONSTRAINT personlanguage_language_fk REFERENCES Language(id),04:01
carlos     CONSTRAINT personlanguage_person_key UNIQUE (person, language)04:01
morgsI'm trying RocketFuelSetup, but I think I'm missing a tla register-archive line...04:01
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: SourcePackage and BinaryPackage bugs counter links to malone. (patch-686)04:02
sabdflmorgs: what error are you seeing?04:02
kikoelmo, are you around?04:03
morgssabdfl: this command line: $ tla tag -S rocketfuel@canonical.com/launchpad--devel--0 morgan.collett@canonical.com/launchpad--devel--004:03
morgssabdfl: this error: archive not registered: morgan.collett@canonical.com  (see register-archive)04:03
kikoelmo, cprov and I want to get some "Gina-setup" information going -- even if just a README -- so people that want to install/run it can actually do so without melting their eyes out04:03
sabdflmorgs: did you do this step:04:05
sabdfl# create your own archive tla make-archive --signed $myarchive ~/archives/$myarchive  # mirror your own archive onto chinstrap, where PQM and others can easily find it tla make-archive --signed --mirror $myarchive sftp://chinstrap.warthogs.hbd.com/home/warthogs/archives/$myarchive  # register the canonical rocketfuel archive tla register-archive sftp://chinstrap.warthogs.hbd.com/home/warthogs/archives/rocketfuel@canonical.com04:05
cprovkiko: it should be more than a README anyway, essentially gina/nicole/etc are not target to end-users04:05
sabdflabout 1/3rd down the page04:05
kikocprov, well, a README is a good start, just a basic list of steps to run. the main problem with gina is the debian archive mirror..04:05
morgssabdfl: might have missed that step, I'll just check back and see.04:06
cprovkiko: keyrings, katieDB and so on ...04:07
kikothose are easy to solve04:07
kikowell katiedb less so04:07
kikobut the archive mirror is the bitch04:08
morgssabdfl: I missed the first line: tla make-archive --signed $myarchive ~/archives/$myarchive04:12
morgssabdfl: now it works...04:12
kikoyeah, if you don't have an archive it gets really complicated. :)04:12
sabdflyeah that would  be the critical one :-)04:12
morgslots of "Good Signatures" now :-)04:13
sabdflmorgs: go make some coffee04:15
sabdflit will take a few minutes to fetch all of our changes04:15
sabdflstud: do you have a handy python implementation of the contraints on a "name" field?04:27
studsabdfl: Just need to change the \' to ' and \\ to \04:41
kikostub the stud?04:41
studsabdfl: or lib/canonical/launchpad/validators/name.py has it (but don't rely on that staying there - it is an experiment I havn't done much on yet)04:42
studkiko: Hit the nail on the head04:42
sabdflstud: i'm going to use the python one, pagetests should break if you move it :-)04:46
studsabdfl: ok. 04:48
carlosstud: I'm getting an error with the doctests:04:51
carlosDocTestTestFailure: Failed doctest test for canonical.database.sqlbase.ZopelessT ransactionManager04:51
carlos  File "/home/carlos/Work/dists/launchpad/lib/canonical/database/sqlbase.py", li ne 181 (or above), in ZopelessTransactionManager04:51
carlosbecause it's trying to connect to launchpad_devel04:52
sabdflstud: name = args[0] 04:52
sabdflwtf is args?04:52
carlosand that database does not exists anymore04:52
carlosis it safe if I fix ti pointing to _dev ?04:53
studsabdfl: Change that so it works for you - like I said, it is an experiment. args is the arguments that an embedded plpythonu function gets given :-)04:53
sabdflah. do you depend on the one there at all?04:53
studcarlos: That is weird, because I have never had a launchpad_devel database on my box, ever. launchpad_dev is the current correct name which changed on Friday and I helpfully neglected to tell anyone about on the mailing list04:55
carlosstud: sorry, launchpad_test04:55
studsabdfl: No - it was just somewhere I was playing in.04:55
sabdflstud: ok, it's going to be used now :-)04:55
carlosstud: I noticed it after several dabatase reloads today to change the sample data :-)04:56
studcarlos: Any launchpad_test's need to be fixed to refer to canonical.lp.dbname and canonical.lp.dbhost, or preferably just use canonical.lp.initZopeless04:57
sabdflSteveA: how's the wikiwikiBANGBANG coming along?04:57
BradBIs there any way to see what gpg commands tla changes runs?04:58
SteveAit's okay.  I'll be firing a bunch of pages into ubuntulinux.org soon04:58
BradBi.e. I want a -v for tla changes that's really verbose.04:59
studcarlos: I don't have that in my copy on sqlbase.py btw.04:59
spivBradB: Isn't that what ~/.arch-params/signing/* specifies?04:59
spiv(or just use strace ;)04:59
carlosstud: it's inside the doctest05:00
carlosQuick & dirty doctest:05:00
carlos    >>> ztm = ZopelessTransactionManager('postgres:///launchpad_test')05:00
spivcarlos: Oh!05:00
carlosclass ZopelessTransactionManager(object):05:00
spivThat's my bad.05:00
=== spiv fixes
studBradB: Hack your script in the signing directory to output stuff to /tmp05:00
carlosspiv: thanks05:00
spivIt passed the PQM, though ;)05:00
carlosspiv: I think it's normal, we still have some tests failing 05:01
studspiv: Hmm... there is probably still a launchpad_test database on chinstrap that needs removing :-(05:01
=== carlos was trying to fix some of them because he broke also someones...
BradBIt'd be nice if -v would tell me these things.05:02
spivcarlos: Well, PQM rejected other merges until I made the tests pass...05:02
carloswhich command should be executed to run all tests?05:05
studBradB: Yup, although difficult to implement because the signing is done by a script rather than driving gpg. I think this is the real problem (I bet we have half a dozen different signing scripts on the team, half of them subtly broken).05:05
carlosI'm using at this moment python test.py -u canonical from the main directory05:05
studcarlos: make test, or make check05:05
carlos(to run only unittest)05:05
studcarlos: But I use python test.py too because it is easier to control05:06
carlosstud: the problem with it is that it does not update the tests created automatically from daf's script to test the interfaces05:07
studcarlos: Oh - I wasn't aware of that. It could be updated to do so (I think our test.py is already subtly customized away from the z3 one).05:07
studWhere can I find the auto generated tests?05:08
carlosinside rosetta/tests05:08
carlosbut you are free to move it outside Rosetta05:08
carlosit's inside daf's todo list05:08
carlosthe script to generate them is:05:08
carlosfrom launchpad/lib/canonical/rosetta/scripts05:09
=== carlos leaves to the university.
carlossee you later!05:10
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Remove hard-coded dbname from doctest (patch-687)05:13
=== morgs goes to make supper while rocketfuel continues patching
BradBhttp://paste.husk.org/1863 # why is tla telling me it's an invalid sig?05:33
BradBI've copied my stuff from my other PB to this one, and I'm fairly sure I've taken everything I've needed, relative to tla.05:35
BradBgah, n/m, i think i know why05:41
ddaatell me, please05:41
BradBi don't have a program named tla-gpg-check on this machine. i'm not yet sure why this is, but I would have been able to find this in 1h, 29m, and 58s sooner if tla told me "tla-gpg-check: command not found"05:42
=== debonzi is now known as debonzi|lunch
ddaamh... that program is included in the .deb, but not in tla's source distribution iirc.05:43
ddaaMan... tla's signature checking ui is totally insane.05:43
dafBradB: http://wiki.canonical.com/ArchGripes, or file a bug at https://bugzilla.warthogs.hbd.com/bugzilla/enter_bug.cgi?product=Arch05:44
BradBdaf: I will definitely do that before I go for lunch. :)05:44
BradB*def* *in* *it* *lee*05:45
dafgroovy :)05:45
=== BradB does that now, in fact
ddaawell, maybe it is in the distribution...05:45
BradBddaa: nope, the bug is in tla.05:45
BradBddaa: The error was "tla-gpg-check: command not found" but instead tla told me that the signature was invalid.05:46
ddaabut I remember having the same problem. A basic tla install from source won't install the script.05:46
BradBI installed it from darwinports05:46
BradBBut, no matter, the problem is the same.05:46
ddaaBradB: yeah. That would be a correct bug report.05:46
BradBoxygen:~/launchpad/lp bradb$ tla changes06:21
BradBgpg: Good signature from "Brad Bollenbach <bradb@bbnet.ca>"06:21
BradB* looking for brad.bollenbach@canonical.com/launchpad--devel--0--patch-59 to compare with06:21
BradBcorrupt library (failed inode signature validation)06:21
BradBlooks like another bug (i.e. not being able to copy from one machine to another)06:21
=== debonzi|lunch is now known as debonzi
=== debonzi is now known as debonzi|universi
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad []
=== kiko is now known as kiko-fud
ddaaBradB: that one is a feature of revision libraries07:53
ddaaRevisions libraries are not meant to be copied around.07:53
BradBhow is it a feature that when i copy my working dir and rev-libs from my powerbook g4 to my powerbook g4 that it breaks?07:54
ddaaIt will break the inode signatures which are used to detect corruption.07:54
BradB...and cause corruption :)07:54
ddaaIt's not actually causing corruption in any harmful way.07:54
BradBthere are other ways to detect corruption surely07:54
ddaaA revision library 07:54
ddaais a cache, and a cache is something that you should share, should you?07:55
ddaa*should not share07:55
ddaaBradB: inode sigs is the most efficient way.07:55
BradBit's a revision library, and yes. :)07:55
BradBi shouldn't share my safari cache, but i should be able to share a revision library.07:55
ddaaI'm pretty sure that if tla ran md5sums on all files of a tree of the revlib before using it, we would get many more complaints about performance...07:56
ddaaBradB: if you can come up with a way to provide copyable revlibs that have similar performance to the current revlibs, we would all be very interested.07:58
ddaaAnd something that is not massively complex, of course.07:58
BradBddaa: if you can come up for the time for me to do that, i'd be very interested. ;) i'm just trying to write code.07:58
ddaaBradB: seriously, you cannot copy revlibs and that's a feature. And I believe that's actually a sane feature.07:59
ddaaThere might be other forms of cache which could be copyable, but not revlibs.07:59
dafddaa: I don't think an inability to copy is a feature: speed is a feature, and the method used to gain speed precludes copyability08:08
BradBddaa: So, I want to write some code. I've copied over (what I think are) all the relevant files from my other powerbook to this one. Then I moved aside all my old rev-libs (because, due to the thousands (?) of small files a sparse, greedy revlib creates, rm -rf'ing takes hours. Literally.) Then I wanted to find out what I've changed. Now I get this: http://paste.husk.org/1864. Why doesn't it just list the files I've changed since08:08
BradB my last commit?08:08
BradBdaf: Exactly. :)08:09
dafBradB: those look like permissions changes08:10
ddaa-- is "permission change on file" and -/ is "permission change on directory"08:10
ddaaYour copying was a bit sloppy...08:10
dafBradB: how did you do the copy?08:10
BradBddaa: How was my copying sloppy? I've had to recreate the revlibs.08:11
BradBBecause of the inode sigs.08:11
dafthis isn't a revlib problem08:11
dafit's something to do with how you copied the code over08:11
BradBIsn't that what it's comparing to?08:11
ddaaYour copied tree does not have the permission bits set the same as the original tree.08:11
ddaaAnd that shows in the changes.08:12
BradBTo copy I just tarball'd up my old working dir (which took easily over an hour), scp'd it down then untarred it, which also took easily over an hour, heh.08:13
ddaaThe simplest way to fix the things would be to generate a patch for your changes, "tla changes --diffs" should do it, undo your tree to reset the permissions, and apply the patch. Alternatively, I believe fai has some features to apply only parts of a chargeset (e.g. everything but the permission changes).08:15
ddaaSince you only have content changes, and no inventory changes, the patch approach works well.08:16
ddaaYou can also investigate what options of tar can be used to preserve permissions.08:16
ddaaMaybe there should be an option in arch to disable the versioning of all permission bits except an executable bit. Versioning all permission  bits is not useful in the common case.08:18
ddaaBradB: I'm sorry that it takes so much time to do anything i/o intensive on your machine. You should really buy some more RAM.08:20
BradBddaa: heh, I've got a 1.5 GHz, 512 MB RAM. :)08:21
ddaaLast time I heard about it it was 128MB...08:21
BradBddaa: notice how i keep referring to how i'm transferring everything over to my new powerbook :)08:22
BradBbut it was never 12808:22
=== ddaa refrains from making unhelpful comments about using a "real" operating system...
BradB(though, if i need more than 128 MB RAM to run an RCS, there's a bug in the RCS.)08:22
ddaaI agree that there are issues. jblack should do some more profiling on what are the specific bottlenecks in star-merge so we can take a decision.08:23
ddaaIt's probably related to the way patchlogs are represented.08:24
BradBThe speed has greatly improved with the new hardware/OS X upgrade, but the architecture of a bunch of small files is always going to be a major bottleneck, I think.08:24
ddaaGood to hear that you got a setup where you can actually do some work...08:25
ddaaIt's not a major bottleneck here. But tla is one of the reasons why I am using reiserfs...08:26
ddaaThe performance should not be that much dependent on the performance of the filesystem.08:26
dafBradB: untarring took over an hour?08:28
BradBrm -rf'ing the reflibs wasn't even close to being done after 1h 20m08:28
BradBi hadn't done any exact profiling of the situation though. 1h 20m and still rm rf'in is pretty discouraging.08:29
=== ddaa thanks daf for pointing out that something is obviously wrong with BradB's setup.
BradBddaa: Nope, tla/arch was the first time I've seen such a preformance problem.08:29
ddaaIt's not tla, it's tar you are talking about.08:29
dafBradB: you could have moved them out of the way and deleted them in the background08:29
BradBddaa: It's thousands of small files I'm talking about.08:30
BradBThat much disk throughput is always going to be a bottleneck.08:30
BradBdaf: I did :)08:30
ddaaBradB: It would not be taking near that much time on anybody's else machine.08:30
BradBddaa: Relatively speaking, surely no, HFS+ is crap. But it's always going to be much slower to work with dir hiearchies full of thousands of small files.08:31
dafBradB: ah, ok08:31
dafBradB: it was an hour in parallel rather than in serial -- that's not so bad08:31
ddaaBradB: We are very concerned by your performance problems... but still it looks like tla is not the only software at fault.08:31
=== ddaa has to leave for dinner
BradBddaa: I would argue that it definitely is, but then, I don't have time to put into arch development (I just want to write code), so I'm just bikeshedding.08:32
dafI don't think this qualifies as bikeshedding08:36
=== kiko-fud is now known as kiko
=== debonzi|universi is now known as debonzi
BradBsabdfl: The changes to the Malone interface look amazing, but where do I go to modify a bug product assignment?10:56
dilysNew bug 2136 for Launchpad/Rosetta: Translation of new pofiles is broken since the table split11:23
ddaadaf: I heard that you had some evidence that the buildbot hangs are caused by pyarch.11:24
dafwhere did you hear that?11:25
ddaaI believe that's what lifeless told me.11:25
dafI believe you are mistaken11:25
lifelessddaa: 'spiv'. dude 'spiv'/11:25
ddaaOr maybe it's what I believe lifeless told me spiv told him.11:25
lifelessspiv is not daf. daf is not spiv.11:25
lifelessdaf, please ignore the frenchman.11:26
ddaalifeless: your gratuitous bashing of the french is sometimes slightly annoying.11:26
ddaalifeless: btw, while you are here...11:26
lifelessddaa: I'm sorry, bad habit I picked up from a colleague.11:27
=== debonzi [~debonzi@200-206-134-238.async.com.br] has joined #launchpad
ddaaI have not tested the new taxi yet.11:27
ddaaI'm not in a configuration which lends itself very well to it atm.11:27
spivddaa: Hello.11:27
ddaaI have found that w3c-libwww is using a backup~ file at a point. What's the proper way to handle those cases?11:28
ddaaspiv: hello11:29
lifelessddaa: ah, I was just about to commit a fix for a related issue.11:29
lifelesslet me do that.11:29
ddaaI'm going to bed very soon, but I would be glad if you could mail me a message with the debugging technique you used and your findings.11:30
lifelessoh, id with no file is a dead giveaway11:30
spivOh, that reminds me...11:30
lifelessI go straight to the tagging method overrides11:30
ddaalifeless: ? yes that's the symptom.11:30
lifelesswhich I was doing per package, but I think its symptomatic, so am just doing in JobStrategy these days11:31
ddaa"blah/.arch-ids/yadda~.id has not associated file"11:31
lifelessyeah, that means 'the default taggging rules blow chunks'11:31
ddaaimho, that tends to means "cvs let you commit any stupid crap"11:32
ddaaNote that the twos are not mutually exclusive in the context of cscvs.11:32
lifelessit does, and our job is to represent CVS in tla.11:32
ddaa*the two11:32
lifelessarch is revision control. tagging methods are policy.11:32
ddaa(23:31:47) lifeless: yeah, that means 'the default taggging rules blow chunks'11:33
ddaaI must have misunderstood what you mean.11:33
lifelessthe former is a must, the latter frustrates folk that haven't bought into it.11:33
ddaaspiv: still reminding?11:33
lifelessspiv: here11:33
spivddaa: Sending mail now :)11:33
ddaalifeless: I'm not resolving your "former" and "later" references.11:34
lifelessrev ctl & policy11:34
ddaaBut my brain is on emergency power atm...11:34
ddaathe workrave cvstarfile download fails 4 out of 5 times...11:36
ddaaMh... finished sync of w3m (import from cvstarfile)... still nothing new... that's becoming a bit disturbing.11:37
=== ddaa kicks workrave once more
=== cprov [~cprov@200-206-134-238.async.com.br] has joined #launchpad
=== ddaa kicks workrave again
ddaaand again11:54
ddaamidnight... kick it once more and -> bed12:00

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!