=== bob2 [rob@bob2.user] has left #launchpad []
=== kiko-afk is now known as kiko
=== Kinnison is now known as Kinni|ZZZ
=== kiko is now known as kiko-afk
=== stub is a bad, bad person who shall be spanked
dilysMerge to thelove@canonical.com/bazaar--devo--1.0: baz cacherev is now much smarter. 'baz cacherev (|patch-level|FQ(PN/VN)) now works' (patch-65)05:55
stubhttp://www.gnu.org/software/gnu-arch/  <-- The GNU Arch logo is a squid taking a crap???06:36
=== Kinni|ZZZ is now known as Kinni|Car
sabdflstub: wrong window? /msg wife net time :-)09:52
sabdfllifeless, SteveA: i'd like to get rid of the arch tags, but understand we don't want to lose changes in the process09:54
sabdflcan i suggest that the process be to move the offending file to filname.py.oldtag, then copy it to the new filename and remove the tag09:54
sabdflwe can remove the oldtag files once we are happy it won't lose changes09:54
sabdflstub: still around?09:59
sabdflany chance of a dogfood code update today?10:02
sabdflthanks, i'mkeen to start polishing the malone UI and get feedback10:03
stubLast update was yesterday10:04
sabdfli made some more tweaks last night10:13
sabdfldoes it take a long time to rev it?10:13
sabdflalso, i'm trying to make newsampledata, has the procedure changed?10:14
sabdfli did a "make" in the db/schema dir, then made my changes, then "make newsampledata", and the changes did not show up in the newsampledata10:20
sabdflstub: ^ ?10:20
stubIts a fairly quick and painless procedure10:21
sabdflerm, sorry, i'm an idiot10:21
stubI'm not aware of any sampledata changes10:21
sabdfli was making the vchanges on the dogfood server, no wonder it didn't show up on my localhost :-)10:21
=== Kinni|Car is now known as Kinnison
sabdflSteveA, stub: is there any way to make widgets context-aware10:32
sabdflfor example, if we have already selected an upstream product, then when it comes to selecting packages, we should pre-show a shortlist of packages for those products10:33
stubsabdfl: A widget can get its context, as can a named vocabulary10:34
sabdflok, that's the context that it's running on10:34
sabdflcan that be used to share information between cooperating widgets?10:35
sabdflhmm... no it can't10:35
sabdflbecause that all has to happen client side, really10:35
sabdflunless we make popups the default, and make the popup check the context too10:35
sabdflhere's the example: the "add a bug" form10:36
stubsabdfl: I think a widget might be able to locate other widgets in the same form, but you are right in that it would involve resubmitting the form10:36
sabdflit has the bug details, then the upstream, then the package selector10:36
stubI think this is might example you are stealing ;)10:36
sabdflit would make sense that the package selector would learn from the upstream product selector10:36
sabdflmight example?10:36
sabdflusing popups this could still work though10:37
sabdflwhen the popup selector pops, does it contact the server at all?10:38
stubYes - we would define a customized popup so that it interrogates the parent form for the product and only displays the available sourcepackages.10:38
sabdflcan't *only* display the available sourcepackages10:38
stubsabdfl: Yes - the popup window is a view on the page it was loaded from (the editform or addform view)10:38
sabdflwould have to allow you to search because we are not certain that every package and upstream is already in the db10:39
sabdfland besides, a bug could affect two unrelated packages10:39
stubSo the popup would default to showing the best guesses (if possible), but search is still possible?10:41
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
SteveAsabdfl: I think it would be fine to do what you suggest to all the files that have tags.10:45
SteveAthe important thing is that files don't just disappear altogether10:46
=== lulu [~lu@] has joined #launchpad
KinnisonMorning lulu10:53
lulukinnison: :o) again!11:05
KinnisonI need to add a whatever it is called (MultipleJoin ?) to the DistroRelease class in order to get at the DistroArchRelease objects related to it. How do I do that, given that DistroRelease is defined with the _columns = []  syntax ?11:18
carlosKinnison: you can see an example at lib/canonical/launchpad/database/person.py11:27
carlos# RelatedJoin gives us also an addLanguage and removeLanguage for free11:28
carlos    languages = RelatedJoin('Language', joinColumn='person',11:28
carlos        otherColumn='language', intermediateTable='PersonLanguage')11:28
carlos    _emailsJoin = MultipleJoin('RosettaEmailAddress', joinColumn='person')11:28
carlosdef emails(self):11:28
carlos        return iter(self._emailsJoin)11:28
Kinnisoncarlos: Right11:29
Kinnison    _archJoin = MultipleJoin( 'DistroArchRelease', joinColumn='distrorelease' )11:31
Kinnison    def architectures(self):11:31
Kinnison        return iter(self._archJoin)11:31
Kinnisonallows me to do something like:11:31
Kinnisonfor dar in dr.architectures():11:32
Kinnison   pass11:32
=== doko [doko@dsl-082-082-213-028.arcor-ip.net] has joined #launchpad
carlosKinnison: I think so11:36
Kinnisoncool; I'll try it later when I have a db to try it on :-)11:37
=== Kinnison gets on with writing interfaces to fake that up again :-)
carlosKinnison:  the "_archJoin" thing is only needed if you are exposing that in the interface11:37
Kinnisonoh? Otherwise what should I do?11:38
carlosif it's for internal use, you can use it directly with other name11:38
carlosjust architectures = MultipleJoin ...11:38
Kinnisonoh righty11:38
Kinnison    architectures = MultipleJoin( 'DistroArchRelease',11:41
Kinnison                                  joinColumn='distrorelease' )11:41
Kinnisonlet's me do11:41
Kinnisonfor dar in dr.architectures:11:41
Kinnison   pass11:41
stubI've just done the dogfood update11:42
Kinnisonelmo: ping?11:43
carlosKinnison: yes11:45
carlosKinnison: it looks like an attribute but it's a method11:45
Kinnisoncarlos: cool11:45
carlosor a kind of11:45
carlosthat's how I see it, not sure if I'm wrong but it works that way :-)11:45
Kinnison>>> dr.architectures[0] .architecturetag11:48
=== Kinnison owes carlos a beer
carlosKinnison: ;-)11:48
SteveAcarlos: how is https://wiki.canonical.com/RosettaToDogfood going?12:17
carlosSteveA: don't know, I left on Thursday to attend a GNOME conference, I gave to daf a scritp to import the users into the dogfood server12:17
carlosSteveA: we had a problem with it and spiv was looking at it12:18
SteveAok, let's ask daf when he is here.12:18
carlosI need to talk today with spiv and daf to know the status12:18
SteveAandrew is on vacation now12:18
SteveAyou won't be able to talk with him12:18
SteveAdo you know what the problem was?12:18
carlosthe transactions were not working12:19
carlosthe import was done, but it was never committed12:19
carlosspiv said he saw it before but he was not able to reproduce it12:19
carlosuntil we gave him our script12:19
SteveAI can see that this is a problem with zopeless setup that needs fixing.  but it should not stop actually moving rosetta to use the dogfood server.12:21
SteveAthe script could have explicit transaction handling in it12:21
carlosSteveA: If I do that, the script breaks12:22
carloslet me execute it and show you the error...12:22
KinnisonIf I have been hacking on a pile of stuff and then I realise that I need to undo about four changes to a dir; commit everything else; then get that bit back; is it possible in tla?12:25
Kinnisonaah buggrit; it can go as one uberchange and then I'll carry on hacking :-)12:28
carloshmmm, it does not gives an error now, but the data is not stored12:30
carlosSteveA: it's fixed12:31
carlosI was looking at the wrong database12:31
carlosSteveA: it should work now if it's executed in the dogfood database12:32
SteveAok.  is there anything else standing in the way of getting rosetta to use the dogfood system today?12:32
SteveAhave the changes to virtual hosting set-up been discussed with elmo?12:33
carlosSteveA: don't know, that's the only thing that remains to move to dogfood server as soon as the script is executed in the new server12:36
carlosare we moving then to launchpad.domain or will we still use rosetta.domain?12:37
SteveAto users of the system, it will appear the same as before12:40
sabdflok, bug assignment is looking a LOT better now12:51
sabdflSteveA: in tal, how can is set an attribute to an element if something on the context is True?12:51
SteveAyou mean an attribute in the xml sense?12:54
KinnisonOkay; I've finally seen it too many times not to know what it means... what *is* 'tal' ?12:55
SteveAum, you'd say tal:attributes="foo python:context/truevalue and 'something' or None"  but that is very ugly12:55
SteveAbetter to use a method on your view's class12:55
SteveAKinnison: "Template attribute language".  a language expressed as elements and attributes in a particular namespace, used in xml documents to do certain kinds of processing.12:56
SteveAused in wikipedia's wiki implementation, zope, plone, zope3, roundup, and various other places12:57
KinnisonSteveA: gotcha12:57
sabdflSteveA: great, thanks, view method it is :-)01:02
KinnisonHow do I get the equivalent of gdb for python then? E.g. perl -d01:03
Kinnisonwe don't seem to install that by default. Or is it a module or something?01:05
Kinnisonelmo: any chance you can get mawson's archive mirror updated?01:05
Kinnisonaah it is01:06
elmoit's a module - see the python docs01:06
Kinnisonthanks dude01:06
elmoyeah, I'm doing it now01:06
SteveAKinnison: neat way: insert the following in your software somewhere.  import pdb; pdb.set_trace()01:07
SteveAconventionally it is on one line, statements separated by a semicolon01:07
SteveAthis drops you into the debugger where it is executed01:07
KinnisonI see01:07
=== Kinnison tries this
SteveAuse 's' to step to the actual point you want01:08
SteveAuse 's' to step, 'n' to skip over the next statement01:08
SteveA'c' to continue01:08
SteveAand various other things01:08
SteveAuse vi or emacs?01:08
SteveAthere's a groovy add-on for emacs where you can use the pdb console in one window, and see the code synchronized in another 01:08
SteveAand there's a similar but less functional thing for vim somewhere too01:09
dokoKinnison: in recent python packages pdb is installed as a binary as well in /usr/bin01:09
KinnisonSteveA: About three steps and one print and I worked out what was missing from my code01:10
=== Kinnison fluffles pdb
KinnisonLua has a similar tool01:10
Kinnisonwherever you want to drop into the debugger stick debug.debug()01:10
Kinnisonso if you want to drop into the debugger on every line stick that as a linehook :-)01:11
KinnisonI ought to write a better debugger using all that01:11
SteveApdb is great.  jim fulton wrote a howto once called "the debugger is my friend" 01:11
KinnisonWhat's the equiv of int() for floating point numbers?01:12
SteveAor was it "the debugger is your friend"01:12
SteveAyou mean a constructor?01:12
SteveAeww, floats ;-)01:12
Kinnisonor does str have a method for that?01:12
sabdflSteveA: is it possible to bind a checkbox input and some text, so clicking on the text is like clicking on the checkbox?01:13
KinnisonI'm being workraved; bbl after a 'rest break'01:13
SteveAKinnison: well, that depends on what you want to do.  int() constructs an int, and float() constructs a float.  Maybe you want to parse strings into ints / floats?01:13
SteveAsabdfl: try making the text a <label for="checkbox_name">Text here</label>01:13
SteveAalternatively, enclose the lot in the <label>Text <input ... /> </label>.  But the former is easier to maintain, I think, and clearer.01:14
SteveAit says more clearly what you want.01:14
sabdfldoesnt work01:15
sabdfllabel comes after the input?01:15
SteveAlet me do a quick experiment01:15
KinnisonSteveA: well yes; I want a float from a string :-)01:16
KinnisonSteveA: I.E. given '5.3' I want 5.301:16
SteveAsabdfl: my mistake.  the "for" has to refer to an id attribute01:17
SteveAso <label for="mybox">Some text</label>  <input type="checkbox" id="mybox" name="mybox" value="foo" />01:18
sabdflok, will try, thanks01:18
KinnisonYes; that's right01:18
SteveAKinnison: float('1.2')01:18
Kinnison<label> tags are your a11y friend01:18
KinnisonSteveA: yeah; I'll do that then. thanks01:18
SteveAcatch ValueError, generally01:18
Kinnisonthat's probably a job for the thing calling this01:19
Kinnisonbut I'll consider it01:19
SteveAI can't comment, not having seen/understood the code01:19
=== Kinnison nods
KinnisonIt's lots of skeleton code currently as I slowly hang things off the lucille config framework01:20
KinnisonOnce we know what the config should really *really* look like; it'll become columns in the database and thus be typechecked implicitly01:20
SteveAin that case, I wouldn't catch an exception at all, and let it propagate to the thread01:21
SteveAseeing as it is a coding error / setup error if so01:22
KinnisonCool; that was what I was thinking. It's good to have confirmation01:22
=== SteveA goes for a rave
sabdflSteveA: when you're all raved out, could you tell me what the right way to select a checkbox is in html? in otherwords, to render it checked01:27
sabdflselected="yes" doesn't work01:28
Kinnisonerm; checked :-)01:28
=== Kinnison spanks capslock
Kinnison<checkbox name="foo" value="bar" checked>01:28
sabdflKinnison: multo gracias!01:28
SteveAthat's not valid xhtml01:31
SteveAso, we should say <checkbox ... checked="checked" />01:31
KinnisonAah; sabdfl asked for html not xhtml01:32
Kinnisonalso I think checked="1" should work01:32
Kinnisonthe important thing is the presence of the attribute; not its value01:32
SteveAchecked="I am the lord high executioner" should work01:32
sabdflSteveA: moonlighting again?01:32
sabdfllot's of work in baghdad :-001:32
KinnisonI watched southpark all too recently01:33
sabdflKinnison: fashion, daaaahling01:33
Kinnisonwhen stevea said that; my brain rebelled with "but you're not mr Garrison"01:33
sabdflbug assignment report looking MUCH healthier01:33
sabdflit even doesn't show you your closed bugs now :-)01:33
KinnisonI've been finding holes in lucille while writing her tests01:33
=== Kinnison is up to 50 nice tests now :-)
Kinnisonoh no, 51 :-)01:34
sabdflKinnison: think gina and nicole are ready for the productoin server yet?01:34
Kinnisonsabdfl: Hmm; Well; gina is doing okay on mawson01:34
Kinnisonsabdfl: I think I need to finish a few more tweaks on lucille and then we can mock up a commandline tool to do the bits of lucille needed for gina's output to make sense in the face of new uploads01:35
Kinnisonsabdfl: then we'll be ready01:35
Kinnisonsabdfl: perhaps we can discuss that on wednesday?01:35
sabdfli'd like to have soyuz running in a prodction environment for es-conf01:36
sabdfl(katie still doing the archive mngmnt, date reflected in soyuz via gina)01:36
KinnisonWe can do that01:37
KinnisonI need to start laying down the filesystem layout02:07
Kinnisonassuming DISTROROOT, any objections to the following:02:07
KinnisonDISTROROOT/<distroname>/{dists, pool}02:07
Kinnisonwhere the <distroname> subdir is the actual archive and the rest is bookkeeping etc?02:08
=== Kinnison -> collecting SO
elmocontents.header is obsolete and unused02:18
=== morgs [~morganc@wblv-230-214.telkomadsl.co.za] has joined #launchpad
morgsSteveA: ping02:23
SteveAhi morgs02:27
morgsSteveA: quick question on DOAP: I'm working on importing a huge RDF file from Freshmeat, and I'm wondering how best to do it.02:28
morgsLooks like DOAP is a close cousin of this RDF file02:28
morgsand if you have any DOAP importing maybe I could try to transform this file into DOAP?02:29
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
morgsSteveA: So who's working on DOAP-related stuff? Should I follow up with cprov?02:32
sabdflmorgs: we haven't implemented doap, but we've worked closely with the author02:40
sabdflin fact, he's likely to integrate a lot of our productseries / productrelease design into the next release of doap02:40
sabdflthen i will ask you to implement a doap exporter for launchpad, so that people can get doap fragments for any data in launchpad02:41
morgssabdfl: sounds good. So I'll carry on with importing RDF from Freshmeat at this stage...02:41
sabdflelmo: do you know who wrote debzilla (debbugs to bugzilla importer)?02:41
=== kiko-afk is now known as kiko
sabdflmorgs: yes please02:41
elmosabdfl: mdz02:42
sabdflwhere does that code live?02:42
elmochinstrap:/home/warthogs/archives/, I think02:43
elmojames@chinstrap:/home/warthogs/archives/matt.zimmerman@canonical.com--2004 $ ls02:43
elmo=meta-info  debzilla  germinate02:43
Kinnisonelmo: unused/obsolete?02:45
sabdflelmo: tnx :-)02:45
Kinnisonelmo: do we not bother with it in Ubuntu then?02:45
elmooh, well, okay, it's not entirely obsolete, but it's pretty broken - it use to have variable substitution done on it, but apt-ftparchive doesn't do that anymore, so the top of the Contents file is broken and has been for like 2-3 years and no one's cared - anyway, never mind me02:46
KinnisonI imagine we'll just put something there to name the two columns or something for now02:47
KinnisonCan python do default values to parameters using self?02:50
Kinnisondef foo(self, bar = self.bar):02:50
kikoself is not materialized in that context.02:57
kikoit's simply a name.02:57
Kinnisonboo hiss :-(02:57
kikouse bar=None and if bar is None: bar = self.bar02:58
=== Kinnison discovers that lucille's unittests comprise almost 50% of the unittests run by "python test.py -u"
=== BradB|away is now known as BradB
SteveAdaf: please ping me when you are around03:25
SteveAIs it so that an EmailAddress must have a Person ?03:27
SteveAEmailAddress.personid is non-null03:27
sabdflelmo: where can i get a copy of the debbugs db, like the one debzilla uses?03:33
carlosSteveA: yep, which sense has an email without a person?03:58
dafSteveA: hi04:08
carlosBradB: ping04:08
carlosdaf: hey04:08
dafhi carlos 04:09
BradBcarlos: pong04:10
carlosBradB: is there any way to get an error with the "set" method of a SQLObject?04:10
BradBSteveA: Where are we at with giving things absolute URL's? It's taking too much effort currently to followup to a bug.04:10
elmosabdfl: AIUI, debzilla uses an rsynced copy of the bugs spool04:10
dilysBug 1975 resolved: Create a script that updates the cached statistics data04:10
SteveABradB: I haven't started work on that yet.04:11
carlosBradB: It's hard to debug an error there if it does not shows you any warning if you use wrong var names there...04:11
sabdflelmo: right, do you know which machine that copy lives on, and can I rsync a copy to my local machine to test with?04:11
SteveAI have some questions about the set-up on the dogfood server.04:11
sabdflBradB: hi!04:11
SteveAI think we'll want to have a Data.fs ZODB FileStorage on there04:11
sabdfldaf: hi too!04:11
BradBsabdfl: hi :)04:11
elmosabdfl: the master copy lives on merkel.debian.org04:11
dafsabdfl: hi04:11
SteveAbecause if we do cookie-login and sessions using memorystorage, everyone will be logged out when the server is restarted.04:12
elmosabdfl: the copy in the data centre lives on macquarie, I'd imagine - but it's not available publicly04:12
sabdflelmo: is a recent copy on chinstrap anywhere? or another machine I have access too?04:12
SteveAthen again, I suppose if it is restarted only daily, perhaps that's not a problem right now.04:12
BradBcarlos: mm, if it lets you pass in kw args for columns that don't exist (which ISTR it does), it's a bug in sqlobject.04:12
SteveAit might be a bit inconvenient for development, but then, you can use basic auth still for development.04:12
dafSteveA: if the login form is clever enough, that won't be excessively onerous04:13
sabdflelmo: please could you allow me onto macquarie then?04:13
dafSteveA: i.e if it sends you back to whence you came after you've logged in04:13
SteveAdaf: stub.py and stub.zcml are still in the rosetta package.04:13
BradBSteveA: any projections on when asking a thing for its absolute url will work?04:13
carlosBradB: then I detected a bug, where should I report it?04:13
dafSteveA: removing...04:13
sabdflSteveA: to what extent are we protected from form entries like "title; DELETE FROM sourcepackage;"04:13
BradBcarlos: in malone04:13
elmosabdfl: done04:14
sabdflelmo: gracias (practising for es-conf :-)04:14
SteveABradB: no.  I've been caught up in sorting out auth that I haven't thought about it much yet.04:14
carlossabdfl: ;-)04:14
BradBSteveA: ok04:14
carlossabdfl: that + "Donde estn mis pantalones?" is all you need here04:14
SteveAdaf: in the c.l.database.person, there's a reference to RosettaEmailAddress04:15
BradBcarlos: oh wait, dude...04:15
SteveAI doubt that code will work, and I'm sure it isn't being tested04:15
BradBcarlos: i just checked the sqlobject documentation; it's also used for non-db attributes, so it's not a bug.04:15
carlosBradB: then, we just be really careful with the .set() method :-(04:16
carlosBradB: is it ok if I put a warning in the wiki?04:17
SteveAsabdfl: provided people use the sqlobject stuff, then sqlobject always quotes things.04:17
BradBcarlos: if you think it's necessary. i haven't seen other people bring it up.04:17
carlosBradB: so I suck :-P04:17
dafSteveA: I'll investigate04:18
BradBi can see why something like a setColumns would be useful, but, oh well, i can't think about the API for that (set vs. setColumns, etc) at the moment.04:18
sabdflwtf is a pantalone?04:18
sabdflcarlos: ^?04:18
carlossabdfl: pants04:18
carlossabdfl: ask jeff04:18
=== BradB goes through and closes the bugs in Malone that should be closed. /me encourages others to do the same.
SteveAdaf and carlos: what remains to be done to get rosetta using the dogfood systems?04:19
sabdflelmo: seems I land up in the launchpad directory, with no way to tell macquarie about my authorized_keys?04:19
carlossabdfl: you need to see the GUADEC 3 video that Ximian guys did04:19
sabdflseems appropriately secure, if it's planned that way :-)04:19
SteveAI of course mean the rosetta alpha system.04:19
dafwe need to do the main_template override04:20
SteveAI asked you to do that first of all04:20
SteveAplease do it now04:20
dafoh, ok04:20
SteveAwhat else needs doing?04:21
carlosdaf: the script seems to be working now (I suppose spiv fixed the problem)04:21
elmosabdfl: err - huh?  what are you trying to do?04:21
dafcarlos: what script? what problem?04:21
carlosdaf: the script I did on Wednesday to import the old users into dogfood database04:22
dafcarlos: ok04:22
dafcarlos: what was the problem?04:22
carlosdaf: the transaction was never committed04:22
SteveAdaf and carlos: why don't you two have a meeting (perhaps on #canonical-meeting) where the goal is to get a list of absolutely everything left to do so that we can put rosetta alpha on the dogfood server.04:22
SteveAI want this to be done today.04:22
carlosit's ok for me04:23
BradBdoh, we can't comment on bugs anymore.04:23
SteveAthat means, we need to carefully think through what needs to be done, and make sure we co-ordinate properly with other people who may need to do stuff for us, or who may be affected by us.04:23
BradBdaf: will dilys see changes in bug status?04:24
dafBradB: do close events send emails?04:25
BradBeverything sends emails04:25
BradBso yes04:25
BradB(except subscribing people)04:25
SteveABradB: is it okay if daf looks at this later?04:25
dafin that case, I can make dilys send closure notfications as soon as I have a test email04:25
SteveAI really do want the rosetta team to focus on getting the rosetta alpha running on the dogfood server04:26
BradBSteveA: sure04:26
SteveAdaf: please leave this until later04:26
SteveAdaf and carlos: nothing else, until we're using the dogfood server for rosetta, okay?04:27
BradBsabdfl: did you remove the test that shows that comments work?04:27
sabdflBradB: i don't think so04:27
BradBhm, maybe the UI got elided04:28
sabdflBradB, daf: i've got a much better "bugs assigned" report over here, will go up with the next dogfood code rev04:28
sabdflit actually treats closed bugs as closed :-)04:28
dafhandy :)04:29
BradBsabdfl: the next revision will include my search widgets, which'll handle that.04:29
BradB(on the main bug listing)04:29
BradBfiltering on package, product, status and assignee04:29
dafI have a pending change which tidies up the subjects of bug notifications04:29
dafI'll try and get that merged soon04:30
sabdflBradB: filter the "see all bugs" page?04:30
BradBsabdfl: yes04:30
sabdflBradB: ok, i hope we haven't duplicated too much work, but nonetheless i enjoyed fixing it04:31
BradBassigned to and submitted by pages will end up being irrelevant. if anything, they'll become links to the main bug listing that have the search criteria preselected.04:31
BradBthe test suite is slipping though :(04:32
BradBi can't comment on a bug. when i change the status of an assignment i get this weird second widget appearing beside the "Product" input box.04:33
BradBthe second widget being a product dropdown04:33
dafgaaah, can we fix this arrowBlank.gif thing once and for all?04:35
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Finished the statistics update code (Closes: #1975) (patch-783)04:42
sabdfldaf: i'll do it04:49
dafsabdfl: great04:49
=== salgado [~salgado@200-206-134-238.async.com.br] has joined #launchpad
SteveABradB: I have a failing malone page test in my tree, and I'm having difficulty seeing what's wrong with it.04:59
SteveAaw crap, they pass now...05:01
Kinnisonyay, a schroedinger bug05:01
Kinnisondon't observe it failing or it'll change05:01
SteveAtest_on_merge.py is stalling for me05:10
SteveA  File "./test_on_merge.py", line 47, in main05:11
SteveA    errlines = err.readlines()05:11
SteveAmake: *** [check]  Error 105:11
SteveAwho added the popen2 stuff to it?05:11
SteveAby reversing the reading of error and out streams, it runs again05:11
carlosSteveA: I have some code that uses popen2 but not sure if it's related...05:12
carlosSteveA: do you know the file?05:12
carlosdirectly in that file?05:13
SteveAhmm, it doesn't run again.  stalled again.05:13
carlosthen it's not my fault05:13
=== SteveA uses threads
SteveAthat's much better05:24
SteveAhmm, except that one of andrew's xmlrpc tests is hanging now.05:32
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Small updates to the sample data (patch-784)05:33
=== Kinnison cries
Kinnisonapt-ftparchive calls components 'sections'05:40
elmoyeah, it's neat isn't it05:41
=== Kinnison hides this breakage from the user
Kinnisonelmo: how did you stay sane coding for this stuff?05:41
KinnisonOh hang on; are you sane?05:41
elmonot really05:42
sabdflsanest damn wallbuster i know05:47
sabdfldudes, 8 hours straight, NOT ONE JELLYBEAN05:48
dafcold turkey, eh?05:48
sabdflwhats this likely to do:05:50
sabdflfor bug in filter(None,map(self.alias_to_bugid,self.bzdb.all_aliases())):05:50
dafNone is the same as "lambda x: True"05:50
sabdflsqisuh it different to wiggle?05:51
dafin other words, it should be the same as "for bug in map(self.alias_to_bugid,self.bzdb.all_aliases()):"05:52
dafwhat it actually means depends on what self.bzdb.all_aliases() does05:52
SteveAI'm going to grep the source for filter and map05:58
SteveAbecause I think some people have used them in the code where there are clearer alternatives05:59
BradBas long as the tests pass, the code needn't be perfect05:59
SteveAit needn't be perfect, but it does need to be clear06:00
SteveAotherwise, people waste time and energy trying to understand obscure code06:00
SteveAI'd rather it be clear and slightly wrong (with tests passing) than obscure and correct  06:00
SteveAand I'm afraid "filter(None,map(self.alias_to_bugid,self.bzdb.all_aliases()))" gets a "*    " out of "*****" on my clarity scale.06:01
KinnisonSteveA: it gets "     " on mine06:02
BradBi'm not a big fan of cleaning up code that we may well throw out anyway, but oh well06:02
SteveAif it needs to be thrown out, throw it out06:02
SteveAif it is in use, make it clear06:03
SteveAeven a comment above it would be an improvement06:03
dafKinnison: what do you think of [ self.alias_to_bugid(alias) for alias in self.bzdb.all_aliases() if test(x) ] ?06:03
Kinnison** "     "06:04
Kinnisoncomplicated list comprehension scares me06:04
dafwas that two stars, or none?06:04
dafoh, minus two? :)06:04
Kinnisonthat was minus two :-)06:04
Kinnisona comprehension of the form [ a for a in l ]  is pretty much the most I ever produce06:05
dafisn't that the same as "l"?06:05
Kinnisonnot if l is a dict06:05
dafis it like l.keys() or l.values()06:06
elmothat's a python2.3 ism btw06:06
Kinnisonthat iterating a dict gives you the keys?06:06
elmobites me all the freaking time - I use it, works on jackass and then promptly blows up on newraff06:07
elmoKinnison: yeah06:07
dafelmo: what does it do in 2.2?06:07
elmodaf: throws a "dict is not iterable - you LOSER" exception06:07
dafah :)06:07
sabdflso, are the baz guys going to to a --mao-errors option?06:08
sabdfl"doesn't fit"06:08
daf"failure to remove conflicts and say that you have done so"06:09
SteveAdaf: have you finished making rosetta use the dogfood server yet?06:09
dafI've made the code changes, I think06:12
dafdo I have access to the dogfood DB?06:12
SteveAthat's the kind of question I was talking about when I asked you to make a list of all the things you had to consider, and people you had to coordinate with06:13
dafyes, I should have thought of that06:14
SteveAback to the planning, then:  update the list of things to do with everything you can think of that needs to be done to achieve the goal.06:15
dafBradB: around?06:16
BradBdaf: yes06:18
dafif I'm patching the dogfood db with some user accounts from the alpha, do I need to change launchpad_dogfood, launchpad_dogfood_20041115 or launchpad_dogfood_template?06:19
dafwhat's the difference between them?06:19
BradBdaf: you'll have to ask stub. he's grandmaster dogfood.06:19
dafhmm, he doesn't seem to be around06:20
BradBnope, but he's the only one that can do anything about it.06:20
dafnot surprising, since it's 4am in Sydney06:20
dafSteveA: I think I'll have to wait before stub gets up before doing the user account import06:25
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Enabled cookie-auth, and various other incidental things. (patch-785)06:33
carloswelcome cookie-auth!!06:34
SteveAok, time to email the list...06:37
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Large chunks of lucille stuff (patch-786)06:38
=== daf works out that the reason his merge hasn't gone through is that his mail is broken again
Kinnisonpoor daf06:43
sabdflbring on the cookie monster!06:43
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: make Malone notifications consistently use " rather than ' in subjects (patch-787)06:46
dafoh, poot06:48
dafdid the PQM-hangs-on-empty-merge bug get fixed?06:48
SteveAfirefox says "cookies are delicious delicacies" on the cookie settings UI06:49
SteveAwe are avoiding use of "python:" in page templates, aren't we?06:54
dafwe try06:56
=== kiko is now known as kiko-afk
dafI really don't like writing functions like "def thingyislessthantwo(self): return self.thingy < 2" so I can write 'tal:condition="view/thingyislessthantwo"' rather than 'tal:condition="python: view.thingy < 2"', so I don't06:58
dafmmm, grammar06:59
SteveABradB: file me a bug for doing a form-o-matic helper.  include a couple of examples of what you'd want to say in tal.  it ought to be a quick job.06:59
BradBquick, like you could have it working by the time i get back from lunch? :P06:59
BradBi'll file it anyway.06:59
SteveAnow there's a challenge.07:00
SteveAactually, I was planning to go and visit the gym07:00
SteveAbut, it really is like an hour and a half tops07:00
BradB"at some point today" would be fantastic :)07:00
SteveA(provided you know exactly what to do)07:01
SteveAif the bug is filed with examples of what you need, I'll do it when I return from the gym07:01
BradBgreat. i'm writing it up now.07:02
carlosSiteError Error while reporting an error to the ErrorLogging service07:04
dafI think I just hung tla when I fixed my mail07:08
dafelmo: can you slay PQM, please?07:09
elmocan you guys either: a) stop breaking PQM, or b) beg/bribe/beat someone into fixing PQM permanently? :P 07:09
daflifeless: (b), please07:09
dafelmo: sorry, it happened because my mail queue got clogged, meaning I inadvertently sent two merge requests simultaneously when I unblocked it07:11
SteveAcarlos: can you mail me that please?07:19
SteveAthe error logging service shouldn't be able to break ;-)07:19
=== SteveA --> gym
carlosSteveA: sure07:20
BradBdilys: are you alive?07:22
BradBdaf: maybe she's dead because of the Owner -> Submitted By renaming?07:22
dilysBradB: not dead, just resting07:23
=== BradB is now known as BradB|lunch
Kinnisonpython lets you catch an AssertionError but then blows up anyway07:25
=== Kinnison kicks it
dilysNew Malone bug #47: "All our bug assignments are 'NEW'", submitted by Stuart Bishop07:26
dafdilys: well done, dear07:26
dilysNew Malone bug #48: "ZPT needs to make it easy to know if a value is "selected"in a <select>", submitted by Brad Bollenbach07:26
dafnobody seems to be closing bugs yet07:27
lulunight all :o)07:33
Kinnisonnight lu07:33
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad []
=== daf unpacks the Ubuntu source code
Kinnisonall of it?07:52
carlosdaf: the whole source code? :-P07:52
dafhmm, perhaps I should grab a copy of sloccount while I'm at it :)07:54
carlosdaf: what are you doing? learning the Ubuntu concept from its source code ? :-D07:55
dafI'm going to look for bugs07:56
dafmake sure everybody is using apostrophes correctly07:56
dafhmm, should have made it sort the packages by name before unpacking them07:57
dafproper punctuation is vital to the viability of the distribution08:00
carlosbut what are you reviewing? the package descriptions?08:01
dafI'm joking :)08:02
dafI'm actually trying to count the number of messages in Ubuntu08:02
=== carlos thought that daf was getting mad...
dafoh, this is a 4 processor machine -- should have made the unpack script multi-threaded, too08:04
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: prep for malone debsync (patch-788)08:24
=== BradB|lunch is now known as BradB
carlosdaf: ping08:46
carlosdaf: do you remember? :08:50
carlos#~ msgid "%d unread"08:50
carlos#~ msgid_plural "%d unread"08:50
carlos#~ msgstr[0]  "%d no llegit"08:50
carlos#~ msgstr[1]  "%d no llegits"08:50
dafmmm, no08:50
carlosI'm not sure if I broke it with the table split or we didn't fixed it08:50
carlosthe msgid == msigid_plural08:50
carlosat this moment the database does not supports it08:51
=== carlos was taking some times importing po/pot files
carlosdaf: no, because a unique key08:51
carlospsycopg.IntegrityError: ERROR:  duplicate key violates unique constraint "pomsgidsighting_potmsgset_key"08:52
carlos"pomsgidsighting_potmsgset_key" unique, btree (potmsgset, pomsgid)08:52
carlosa pomsgidsighting cannot have the same potmsgset and pomsgid 08:53
dafis fixing it as simple as removing that constraint?08:53
daf"cannot have the same potmsgset and pomsgid"?08:53
carlosI think we agree already on that, that's why I'm not sure if I reintroduced the error08:54
dafI'm having trouble visualising the problem in terms of the database08:54
=== salgado [~salgado@200-206-134-238.async.com.br] has joined #launchpad
carlosat this moment, a msgid can only be sighted in a potmsgset once per pofile/potfile08:56
carlosthat's normal08:56
carlosthe problem comes when the pluralform uses the same msgid than the singular form08:56
dafso: one potmsgset, two sightings, one msgid?08:57
dafah, ok08:57
dafyeah, that constraint is bogus08:57
dafplease file a DB change request08:57
dafalso, did somebody file a schema request for Person.language?08:58
BradBdaf: if it's not in pending, no.08:58
carlosdaf: no, I was wainting for the ok for my patch before doing it08:58
dafdo I need to review something?08:59
carlosdaf: just agree on the proposal patch or just believe in my skills :-P08:59
dafI do believe in them :)09:00
dafif you think it's correct, I don't think you should wait for me :)09:01
carlosdaf: could we use triggers in launchpad?09:02
dafI don't know, what are they?09:03
carloscode executed inside postgres09:03
carloslike events09:03
carlosto do some task or apply some restrictions09:03
dafwhat would we use them for?09:03
carlosThinking again about the msgid == msgid_plural thing I don't think we just remove the unique restriction09:04
carlosremoving it we could end with a duplicated msgid09:04
carlosif we have an error in our code09:04
carlosnot sure if we should care09:04
dafif you can come up with a test that always allows correct date and disallows bad data, I'm all for it :)09:07
carlosis anything "always" doable? :-P09:08
dafwell, within reason09:09
carlosdaf: ;-)09:09
carlosBradB: which one is the page about the database changes request?, I don't see it linked from Launchpad wiki page09:10
BradBIt's linked from the same place that describes Python style guidelines, how to write unit tests, etc.09:12
=== SteveA returns
carlosdaf: patchs ready to be processed by stub09:28
carlosdaf: about the language field in the Person table... I think we will need to add an encoding (inside the language table) for every language if we are going to send localized mails, not sure if UTF-8 will work always, evolution breaks other mailers when sends utf-8 mails09:30
BradBSteveA: I'm not sure if I produced a good syntax or not for what I want, but for TALES adapter syntax, I have no idea how to say those in English (i.e. TALES adapter semantics are entirely non-obvious to me), so I'm not the one to decide what a good syntax may be using that.09:30
dafcarlos: hmm, I thought it was fairly well-supported these days09:31
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Added two db patches from Rosetta team (patch-789)09:31
carlosdaf: firebird (or whatever it's called now) has problems09:31
carlosand it's not too old09:31
carlosif it's not a firebird problem, it's an evolution one...09:32
dafhmm, I count 77576 messages in Ubuntu, more or less09:32
carlosonly that?09:32
Kinnisonis that all?09:32
dafyeah, that's what I thought09:32
dafthe biggest one is Evolution09:33
dafwhich has 4170 to itself09:33
carlosabout 27729 are from GNOME 2.809:33
dafclosely followed by 3905 in Gnumeric09:33
carlosonly official GNOME 2.8 modules09:33
dafcarlos: yep09:33
dafwhich includes Evo, but not Gnumeric09:33
carloshmm, then it makes sense09:33
daftop 10:09:34
dafevolution-2.0.2/po/evolution-2.0.pot: 417009:34
dafgnumeric-1.2.13/po/gnumeric.pot: 390509:34
dafbinutils- 248709:34
dafgaim-1.0.0/po/gaim.pot: 221309:34
dafgimp-2.0.2/po/gimp20.pot: 219809:34
dafdia-0.93/po/dia.pot: 165409:34
dafnautilus-2.8.1/po/nautilus.pot: 136109:34
dafgnome-applets-2.8.1/po/gnome-applets-2.0.pot: 134609:34
dafxfsprogs-2.6.18/po/xfsprogs.pot: 129809:34
dafglade-2-2.6.0/po/glade-2.0.pot: 124509:34
carlosgas?, a compiler has 2487 strings?09:34
dafEvolution is "only" a mail client :)09:35
carlosdaf: ;-)09:35
Kinnisondaf: Lies09:35
carlosbut evolution has a big UI09:35
carlosgas is... just a compiler09:35
dafit has lots of error messages :)09:36
dafand not many interpolations, by the looks of it09:36
=== daf wonders where gcc is
=== daf curses non-pristine .orig.tar.gzs
daftarballs within tarballs09:38
dafperhaps I should try running "./debian/rules unpack" in each source directory09:38
carlosdaf: ;-)09:39
elmodaf: for total coverage, I'd manually extract *.tar.{.gz,bz2}09:39
elmo(like, any, under the source tree)09:40
=== daf watches hundreds of "make: *** No rule to make target `unpack'. Stop." scroll by
dafelmo: that's an idea09:41
dafelmo: I only need an estimate09:41
carlosdaf: with cdbs packages you can use: ./debian/rules apply-patches09:42
carlosthat should do the work09:43
dafah, thanks09:43
dafelmo: hmm, can I have cdbs on rookery?09:43
SteveAelmo: can I have cddb on maquarie?09:44
=== elmo makes hex signs at cdbs freaks
elmoSteveA: err, seriously?09:44
dafelmo: yeah, it sucks :(09:44
dafSteveA: is Launhpad gaining another application?09:44
SteveAyeah, the new part of launchpad to index cds belonging to the free software community09:44
elmocome again?09:45
BradBgullible ain't just a river in egypt09:46
dafelmo: could I also have dpatch and gnome-pkg-tools?09:47
carlosdaf: I'm not sure, but I think you can get all that with chroot + fakeroot + debootstrap, right?09:48
dafcarlos: I'm sure I could09:48
daf-bash: debootstrap: command not found09:48
elmomore to the point debootstrap requires root09:49
elmodaf: done09:49
dafelmo: thanks09:49
elmolet me know when you're done, I don't want to leave this stuff on here09:49
carloselmo: fakeroot is not enough?09:49
elmono, chroot(2) requires root09:50
dafthere must be a better way of doing this09:51
elmodaf: there isn't - we should enforce a policy defined way of getting at the source, it's silly that we don't09:51
dafI guess an improved package source format would fix it09:51
SteveAthe xml intermediate format we discussed?09:52
dafor... Unpack-Depends! :)09:52
SteveAso you can extract stuff on a different machine?09:52
dafthis wouldn't contain the binary date, would it?09:52
daf* data09:52
carlosSteveA: do you think launchpad's foaf could be interested on info about people contributions to free software projects?, Some friends are working on tools to extract that information and show some stats from that: http://devel.interactors.coop/projects/cvsanaly/ I think it could be easy to integrate into launchpad09:52
dafelmo: I suspect your unpack-all-tarballs method would probably have been good enough, actually09:53
SteveAcarlos: the project is called "cvs analy" ?09:54
SteveAthe arch folks would appreciate that09:54
carlossabdfl: yeah09:54
carlossabdfl: they started with cvs and are moving now to subversion09:54
SteveAI'm steve!09:55
SteveAlooks interesting though09:55
carlostab autocompletion...09:55
carlosyou know09:55
SteveABradB: I'm reading through the malone bug now09:56
SteveAwhile eating evening meal10:01
SteveAwhat does "dinner" mean in canadian english?10:01
sabdflcarlos: yes, that would be cool10:02
BradBSteveA: supper, "tea", :P10:03
SteveAnot lunch then?10:03
=== BradB fixes broken tests so bug listing search interface can be checked in
SteveAa way of saying <pre>some code or traceback</pre> would be really useful for malone10:07
BradByeah, hm10:07
BradBformatting messages is kind of hard10:08
BradBmaybe we could forcefeed ReST to Malone users, i dunno10:09
SteveAthe zope2 collector developers tried various different things10:10
SteveAstructured text was a total failure10:10
SteveAReST was deemed too complex10:10
BradByes, i would have to agree10:11
SteveAwe ended up with a rule that leading ., " " or ">" in a block makes it preformatted10:11
SteveAI say "we" but I only mean "we" as a user of the system10:11
carlossabdfl, SteveA: The website with sample data seems to be down, I will send you an url to see the kind of data they are collecting when it's fixed.10:12
carlosdinner time, later!10:12
sabdflif __getattr__ exists, is it always used, or only if the attribute does not exist?10:19
Kinnisononly if the attr is not present10:20
Kinnison(says he by empirical test)10:20
dafgcc now at top10:23
BradBsabdfl: Any chance we can get someone (e.g. Steve :P) to fix the diff'ing to account for eliding in page tests? It's probably costing two to three hours per day right now among us.10:26
BradBs/the diff'ing/the diff output for failures/10:27
sabdflBradB: stub or stevea was saying they had a planned solution for that. or was it you?10:27
BradBI haven't mentioned anything about solving it. I remember SteveA saying something about it before, I think. SteveA?10:28
sabdflif i have an email (import email, email.email_from_string(s) etc)10:34
sabdflhow do i get the body text?10:34
dafemail.get_payload, IRIC10:35
dafer, IIRC10:35
dafde nada10:35
dafsabdfl: I send Adi my estimate10:39
sabdfldaf: thank you10:40
dafhmm, probably should have CC'd you10:40
sabdflwe are going to forge ahead with a project to get warty/hoary fully translated into one indigenous SA language10:40
BradBSteveA: ping10:59
SteveABradB: see comment on malone bug 4811:02
BradBSteveA: did you have a solution for having functional doc tests ignore eliding when reporting diffs on failed tests?11:03
SteveAno.  but I do have close access to people who maintain the code.11:04
SteveABradB: how does the syntax look to you?11:04
BradBi might call it "browserform" instead of "htmlform", but...11:06
BradBSteveA: one thing i've always wondered about tales adapters is, how does: request/htmlform:status/selected/all read in english?11:06
BradBi can't figure out what's adapting what to what there11:06
BradB("there" meaning a tales adapter expr in general)11:06
SteveAhow would request/form/foo read in english?11:06
BradB"the value of field foo, from form form in the request"11:07
SteveA"from request traverse to form, traverse to foo"11:07
SteveAlet's keep it left-to-right11:07
BradBSteveA: well, in "foo:bar", what does the ":" mean to foo, and to bar?11:07
SteveAotherwise we'll confuse ourselves, I think11:07
SteveAare you happy with "request/form/foo" put into english as "from request traverse to form, traverse to foo" ?11:08
BradBas someone who's already familiar with the lingo, yeah :)11:08
SteveAso, I can also read "request/form/foo" as:11:09
dafMalone (or Zope) puts newlines in subjects11:09
dafis this normal?11:09
dafI don't think I've seen it before11:09
SteveA "from request traverse in the default namespace to 'form', traverse in the default namespace to 'foo'" 11:09
SteveABradB: still with me?11:09
dafelmo: you can get rid of all the stuff you want to get rid of now, by the ay11:09
SteveAso, request/htmlform:status/selected/all becomes:11:10
BradByeah, i know what you're going to say next then :)11:10
SteveA "from reqest traverse in the 'htmlform' namespace to 'status', then traverse to 'selected' in the default namespace, then traverse to 'all' in the default namespace"11:10
BradByeah, ok...interesting11:10
SteveAwe can add as many namespaces as we need11:11
=== BradB takes a second look
SteveAhave you come across the foo/bar/?baz syntax before?11:11
BradBno, i was *just* about to ask you about that :) i.e. is it canonical?11:11
SteveAit is standard11:11
SteveAyou can use it in zope2, and no doubt other places where tales is implemented properly11:12
SteveAit is a very simple form of indirection11:12
SteveAso, foo/bar/baz means "from foo traverse to bar, traverse to baz"11:12
SteveAbut, foo/bar/?baz means "from foo traverse to 'bar', traverse to the value of the variable 'baz'"11:13
SteveAif you want ?baz to be more complex, you need to use a separate tal:define11:13
BradBin foo/bar:baz though, when you talk about "namespaces" isn't it really that foo is being adapted to a bar, and then baz is an attributed of the adapted thing?11:14
dafI suppose that would stop me typing tla:define=""11:15
SteveABradB: you can look at it that way.  That is indeed how I originally looked at it.  I proposed an alternative syntax making that clearer, but ultimately was overruled.11:16
BradBSteveA: the ordering suggested in your proposal won't work, btw. define is done before repeat.11:16
SteveAthe foo:whatever syntax is supposed to be familiar to users of xml namespaces11:16
SteveABradB: right, but simple to fix without altering the nature of the proposed syntax11:17
BradBin any case, that's probably an implementation detail (the ordering of tal ops, that is)11:17
BradBSteveA: indeed, indeed. so yeah, i'd say it looks good.11:17
SteveAit is part of the tal standard11:17
SteveAok, cool11:17
BradBah yes, that makes it slightly clearer (i.e. the /why/ behind ":")11:17
SteveAthere was a separate proposal for an adapter syntax11:19
SteveAfor saying foo*IWhatever/bar11:19
SteveAbut, that hasn't been decided, and will probably remain as it is, that is, not implemented11:20
sabdfldoes initZopeless use the launchpad_dev db?11:43
sabdfli'm trying to create a script to run against the launchpad_dev db, using the canonical.launchpad.database objects11:44
sabdfland i'm seeing a weird result11:44
sabdflit seems as though it's not seeing records that are in the db11:45
sabdflSteveA: around? ^11:45
sabdfldaf: any idea on initzopeless ^?11:46
dafhmm, checking...11:49
sabdflgot it11:51
sabdflyes, it uses launchpad_ftest11:51
sabdflunless you LP_DBNAME=xxx ./cmd11:51
sabdflsorry, should have checked the code myself sooner11:51

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