elmoSteveA: what on earth do you want me to do about this?12:01
cprovsabdfl: send me an email if you want ... I'll be away for 40 min .. nicole is running on zhongshan12:01
sabdflcprov: so nicole is creating productreleases? cool12:01
sabdfli'll keep going with my code, then we'll merge later12:01
elmoI'm not lifeless and I don't have the time, energy or skills to debug it - I can kill it and move your merge request out of the way if you want?12:01
SteveAelmo: no idea.  can you kill 11951 or 11878 ?12:01
elmosure, I can kill 1195112:02
elmoProcess 11951 attached - interrupt to quit12:02
elmowrite(1, "ALTER TABLE\n", 1212:02
elmofyi, that's the strace12:02
SteveAthis kind of thing happens when some other process is accessing that database12:03
SteveAI wish there was a way of telling postgres to fail rather than block in these situations12:03
SteveAcan you kill 11877 too?12:04
elmonow make can't notice it's children dieing? :P12:05
elmooh, for christ's sake, every child up is hanging on writes to 112:07
SteveAthanks for playing the grim reaper12:08
SteveAI need to leave the office now.  I'll talk to people about this tomorrow, try to get something sane sorted out.12:08
=== kiko is now known as kiko-afk
=== Kinnison_ [~dsilvers@haddenham.pepperfish.net] has joined #launchpad
=== Kinnison_ is now known as Kinnison
lifelessKinnison: turns out that a local test-pserver is actually easy to do12:39
lifelessa 2 line bash script made executable, and nc, and voila12:39
Kinnisonlifeless: cute12:41
lifelessjblack: did you or someone end up helping limi out ?12:49
=== BradB is now known as BradB|away
lifelesshow can I get my username from python?01:01
lifelessis os.getEnv('USER') reliable enough ?01:02
Kinnisongetent stuff?01:02
elmoos.getlogin() ?01:02
lifelesselmo: bingo, thanks01:02
lifelessyay, one automagic pserver passwd file for the test suite01:03
cprovsabdfl: yes, now nicole is running and creating productreleases.01:09
sabdflgreat work cprov01:10
cprovsabdfl: btw, I'm just running through main and restricted packages (1009) rather than universe, I think it's enough for test proposes 01:10
Kinnisonflippin 'eck, it's 00:11 again01:11
=== Kinnison decides to go to bed so he can actually get up in the morning
Kinnisonc'y'all tomorrow01:11
=== kiko-afk is now known as kiko
lifelessmore pythno foo - how do I wait say a half second ?01:32
jblacklifeless: Sorry. Just got home. The neighbor was really sick, so I had to take care of her and her *four* kids all day.01:38
lifelessno need to be sorry, I just needed to know if Limi was helped or not, theres no mail showing that he was.01:38
jblackNot by me he hasn't. Didn't know until now he had a problem.01:38
=== cprov [~cprov@] has left #launchpad ["Leaving"]
debonziwhy dbschema.PackagePublishingStatus.PROPOSED does not exists anymore?01:53
debonzishould I replace it for something else?01:54
sabdfldebonzi: was changed as part of Kinnison's work02:00
sabdflbest leave it as it is for the moment, and discuss with him tomorrow02:01
debonzisabdfl, nice, Ill comment the template to do not break the page for while. Thanks02:02
sabdfllifeless: how can i see the diff from a previous revision?02:31
=== kiko is now known as kiko-afk
=== debonzi goes for dinner
=== stub [~stub@dsl-] has joined #launchpad
lifelesssabdfl: in your tree?03:01
lifelesstla changes --diffs patch-3403:01
sabdfllifeless: thanks03:02
sabdflchanges: illegal revision name: patch-25303:04
lifelesssabdfl: oh bah.03:04
lifelessuse this idiom03:04
lifelesstla changes --diffs $(tla tree-version)--patch-25303:04
lifelesswhich is a nonsense, I'll file a bug for that.03:05
=== kiko-afk is now known as kiko
lifelessanyone seen spiv around?03:25
=== kiko is now known as kiko-afk
=== kiko-afk is now known as kiko
=== kiko_ [~kiko@200-206-134-238.async.com.br] has joined #launchpad
=== kiko_ is now known as kiko
sabdflmorning all10:29
=== Kinnison [~dsilvers@host81-153-126-219.range81-153.btcentralplus.com] has joined #launchpad
=== limi [~limi@212.80-202-72.nextgentel.com] has joined #launchpad
=== ddaa [~ddaa@nemesis.xlii.org] has joined #launchpad
lifelessddaa: still got that keyboard huh ?12:03
ddaaYes, it's cool. There is a hidden way of quitting gaim too...12:04
ddaaCuriously, that shit only happen to me in chat clients.12:04
ddaalifeless: about buildbot12:05
ddaaI assume, to have 5 successes a day, I need to run several jobs in parallel12:05
ddaaWhat's the catch? Use several slaves?12:05
lifelessone slave.12:05
lifelessits threaded.12:06
ddaaMh. okay...12:06
ddaaIt's probably going to complicate debugging, but for the working cases it's okay.12:06
lifelessyou could do several slaves if you want, but I'd be wary of spending a bunch of time only to find issues. (such as how to allocate the jobs appropriately)12:07
ddaaNote that my cpu is not too fast (PIII 600MHz) so it's prolly going to be a bottleneck at some point.12:07
lifelessgo for the low hanging fruit during the day :)12:08
ddaaYeah. I'd like to postpone the multiple-slave issues as long as I can.12:08
lifelessset things like xserver off when you go to bed :)12:08
lifelessit would be easier to do parallel buildbots with the same database - dual master + dual slave - for now.12:08
lifelesswell small jobs finish quickly12:09
ddaaGood idea.12:09
ddaaI see. I thought you were suggesting to stop X when going to be to release resources :-)12:09
=== Kinnison drags lifeless over here if he wants to talk about the cscvs stuff
Kinnison(unless it's public now)12:47
ddaalifeless: I knew I was forgetting something at the meeting.12:48
lifelessKinnison: cscvs is public, always has been. what we are doing with it though..12:49
ddaaI wanted to poke you about patchlogs which are permanently missing from rocketfuel versions.12:49
lifelessddaa: arh12:49
Kinnisonlifeless: I was under the impression the new stuff still wasn't public12:49
lifelessKinnison: the code isn't yet no. I have the ok to release it, in step with our archives.12:49
ddaaFor example the reverted patch from launchpad, or the pre-tag history of soyuz.12:50
lifelessanyhoo, dod you see the bug ?12:50
lifelessddaa: the pre-tag history of soyuz isn't missing, it was merged in when soyuz was merged in.12:50
Kinnisonlifeless: Unlikely unless you pointed it to me12:50
ddaait's annoying because it breaks "missing" and probably "replay".12:50
lifelessddaa: copy that patch in as a merge, fine by me.12:50
ddaaOkay. So there is no good reason why there are patchlogs permanently missing?12:51
lifelessKinnison: '/foo/bar' became ':local:foo:/bar'12:51
lifelessddaa: which ones ?12:51
Kinnisonlifeless: Eww12:51
ddaalifeless: wait a min12:51
Kinnisonlifeless: Oopsie :-P12:51
lifeless:] 12:51
lifelessit now uses the cvs protocol for local repositories :)12:51
lifelessddaa: lifeless> ddaa: copy that patch in as a merge, fine by me.12:52
lifelessddaa: you shouldn't be replaying in that branch anyway, ignore that.12:52
ddaaBad answer. Missing is a useful command and replay is significantly faster than update here, where for some reason it always uses the apply-delta algorithm.12:53
lifelessddaa: the soyuz branch is not used.12:54
lifelessits a perfectly good answer because of that.12:54
lifelessbecause missing and replay don't look at that branch.12:54
ddaaIt's used by the pqm config.12:54
lifelessddaa: eh?12:54
ddaatlash dists> cat configs/canonical.com/pqm/development | head -112:55
lifelessok, thats interesting and all.12:56
lifelesswhen I next hack on pqm, I'll update the config.12:56
sabdfllifeless: phwoar, big changes on cscvs i see, how's that coming?01:16
lifelessvery close to having the default branch support finished01:17
lifelessall the db & parser changes are done, am onto the scanning of tla to recreate what the parser won't tell us.01:17
lifelessI'm hoping to run my first test-on actual data saturday.01:18
lifelessthe ProjectProductSetup page is idling though - can you please please please push through the unsconded ones there?01:18
sabdfllifeless: thought we switched to doing this by email? i'm way behind on email01:21
lifelesssabdfl: you were going to finish the current page... otherwise I'm just mailing it to you again.01:22
sabdflare you using the new project/project creation pages, and the links to setup sourcesource there?01:22
lifelessbut I can copy the current page and mail to you if you like.01:22
lifelesssabdfl: when they go into launchpad, yes.01:22
sabdfli'll work on it in the wiki01:22
lifelessdavid is working on the research for this too now, so we'll be putting some volume up I hope.01:23
lifelesswould you like me to have him mail you & me rather than adding to the wiki page ?01:23
sabdflhmm.. looks to me like a bunch were added after i thought we switched to email01:23
lifelesssabdfl: nope.01:23
lifelessonest injin01:23
sabdfllifeless: we have a script which will pull details from freshmeat and sourceforge01:24
sabdflcelso has been working on that01:24
lifelesssabdfl: cool. I presume we still need to determine the mapping tho.01:24
lifelessWhat I'd love is to get you off the critical path - so I can go 'hey, xyzlib worked in test, goto launchpad, and just do it'01:25
sabdflyes, what i'm really saying is that there are going to be about 300 projects / products setup automatically01:25
lifelessthat will help enormously.01:25
sabdflwe are just running some tests this week and next week, then we can put it into production01:25
lifelessthe gnome ones helped too, as as they go good we can just make them.01:25
sabdflhmm... project db methinks should be libdb01:27
lifelessberkely database is more than a lib01:27
lifelessthe lib is what most folk use is all.01:27
sabdfl"db" is confusing, what about berkeleydb01:28
sabdfli don't mind the product name01:28
sabdflis libdb1-compat part of the same project?01:28
lifelessIIRC no.01:28
lifelesssomeone wrote it because they needed it01:29
lifelessI did check that when doing the page.01:29
sabdflif we edit the names in the db, will it break the sync process?01:29
sabdflor does the sync remember what it was told to use when it started?01:29
lifelessonce I put the sync gold, the name is set forever, until I go change it01:30
lifelessthe project name can vary wildy, it won't care.01:30
=== limi [~limi@212.80-202-72.nextgentel.com] has joined #launchpad
lifelessspiv: sqlos patch applied01:31
spivlifeless: Thanks.01:31
spivHmm, #1922 just struck again.01:31
=== cprov [~cprov@] has joined #launchpad
spiv3rd time today.01:31
spiv(after two days nothing)01:31
sabdfland if you change it, does it tag into a new archive/cat-branch-version from the old one?01:31
=== spiv roboots
dilysBug 2005 resolved: Cache prevents to use new users without restarting launchpad01:32
lifelesssabdfl: yes, changing involves a manual tag at the moment, and change the sync in launchpad. after that the sync carries on automatically.01:32
lifelessthat is partly by design, partly optimising for the common case.01:32
lifelessthe design bit is - we don't want these things randomly changing all over the place. so until we have a well articulated policy, that I can put into code, I don't want the code to have that 'feature'.01:33
lifelessKinnison: here's an example:01:33
lifeless':pserver:anonymous@,,repoCatalog' != ':pserver:anonymous@,,repoCatalog'01:33
lifelessoh, bah.01:34
lifelessthats just me being brain dead, nm, carry on, etc etc01:34
=== Kinnison tickles lifeless
=== limi [~limi@212.80-202-72.nextgentel.com] has joined #launchpad
lifelessKinnison: this is it (its still happening...)01:40
lifelessprint CVS.protocol.CVSRoot('/srv/importdtest/botslave/buildbot-jobs/autoconf-HEAD-import.job/autoconf@arch.ubuntu.com/autoconf--MAIN--0/cvs_temp_repo')01:40
lifelessI haven't quite fixed it :[01:40
Kinnisonlifeless: Aah it's not liking the @ inside the path01:40
lifelessthe earlier bug was allowing / in the hostname01:40
Kinnisonlifeless: Dunno how you'll fix that except to disallow / inside users and passwords in the regexp01:40
lifelessKinnison: probably break it into ()|() 01:41
lifelessI'm not sure that the @ is the problem yet01:41
Kinnisonit smells like it to me01:42
lifelessok, now I'm sure.01:42
lifelessz.username ->01:42
lifelessthankfully, your test suite is comprehensive enough to catch me being an idiot regression wise :)01:44
=== Kinnison grins
lifelessusername can't have / can it ?01:45
KinnisonI sincerely hope not01:45
lifelessthat fixes it trivially.01:45
lifeless^:([^:] +):(?:(?:([^:/] +)(?::([^:/] +))?@)?([^:/] +)(?::(\\d+))?:?)?(/.*)$01:46
lifeless    method        username   password    hostname     port        path    01:46
lifelesspossibly wrong to put the / in the password bit, but hey, cross that bridge when the bug report lands01:47
lifelessthis should finally allow me to not get booted off the kde anonymous server.01:47
lifelessso we can do kdelibs as soon as spiv makes me proud01:47
lifeless(fingers crossed etc etc etc)01:48
spivlifeless: :)01:48
lifelesshave I mentioned how great it is to have this native facility ? 01:48
=== Kinnison grins. You're welcome
lifelessyou might find looking at the current protocol / Protocol / pipes interesting01:50
lifelessyou had a design flaw - using a list of handles isn't sufficient to do cleanups properly.01:51
sabdfllifeless: ok, project is xiph, product is paranoia, productseries is Paranoia-III01:52
lifelessproductseries ?01:52
sabdflyes, name for a set of releases01:52
=== ddaa gets a tarfile.ReadError and goes to find the bugzilla
sabdfllike "head"01:52
lifelessah. 01:52
sabdflor "2.0"01:52
lifelessok, thats not in production yet.01:52
sabdflor "Paranoia-III"01:52
sabdfllifeless: no, it's last night's work, though the db stuff has been there for a while01:52
sabdflcreating a productrelease will require specifying a series for that release shortly01:53
sabdflthis allows us to do better magic when we have intermingled releases of, say:01:53
sabdflapache 1.301:53
sabdflno, better example would be:01:53
sabdflgimp2.0 and01:53
ddaalifeless: where do the buildbot bugs live?01:54
sabdflcreate three series, and for each release just tell it which series it belongs to01:54
lifelessddaa: bugzilla.canonical.com or bugzilla.warthogs.hbd.com - the original main bugzilla01:54
lifelesssabdfl: so a series is roughly a branch :)01:54
sabdflroughly, yes01:54
ddaaI was redirected to bugzilla.no-name-yet.com...01:54
lifelessddaa: yeah. let me give you a direct url01:54
lifelessthats in the right system.01:55
lifelessI think we may need to take out the python tar module, it appears to be slightly crackful.01:55
sabdfllifeless: i think keybuk uses that heavily for sourcerer01:59
lifelesssabdfl: he was saying it had really bad problems01:59
lifelesswhich I filed to look into later01:59
ddaaso, the public name of buildbot is Hoover, right?01:59
lifelessout install of buildbot sucks.02:00
sabdflcprov: around?02:00
lifelessKinnison: got a few minutes ?02:03
lifelessgot a change in behaviour from cvs external rlog to the native implementation.02:03
lifelesshttps://chinstrap.warthogs.hbd.com/importd/devel-status/libbonobo-HEAD-import.job/events/289/log (if you have time)02:04
cprovsabdfl: yes02:06
cprovsabdfl: I'm testing the new dump including productreleases02:06
ddaaJust to be sure I grok bugzilla right, there are currently 4 bugs for Hoover whose status is anything but "closed"?02:06
lifelesshttps://chinstrap.warthogs.hbd.com/importd/devel-status/kdelibs-HEAD-import.job/events/273/log for folk that like to give browsers a hernia02:06
sabdflstub: what's the correct way of doing something like this:02:06
sabdfl * SELECT pg_catalog.setval('schema_id_seq', pg_catalog.select(SELECT max(id) FROM Schema"), true);02:06
lifelessddaa: sounds about right.02:06
sabdflcprov: could you point me at that too please? want to see how it looks02:07
elmolifeless: is this a hint that I should enforce mod_deflate? :P02:07
sabdflcprov: do you use the ProductRelease object from canonical.launchpad.database or a custom Soyuz one?02:07
lifelesselmo: wink wink nudge nudge02:07
stubsabdfl: Dunno - what are you trying to do?02:07
lifelesselmo: I think that would actually make browsers less happy, not more.02:08
sabdfli was looking to merge your code now if it's still Soyuz*02:08
stubLooks like you are trying to reset the primary key sequence to the next highest value?02:08
sabdflstub: trying to be able to add rows of sampledata then reset the serial counter to the max current02:08
lifelesssabdfl: mailed you a high-priority mapping - kdelibs.02:08
cprovsabdfl: I'm using custom one, since we aren't use SQLO in those scripts02:08
sabdflcprov: oh, ok02:09
sabdflthat's probably fine then02:09
sabdflwhy not use SQLO?02:09
sabdflDISTINCT etc?02:09
elmolifeless: that's just a big ass file, right?02:09
sabdflsane queries etc?02:09
cprovsabdfl: in zhongshan:/home/cprov/ lp_dump-productreleases-mr.sql02:09
sabdflrandom failures etc?02:09
elmolifeless: buildd.d.o has those too and .bz2's them by default - the browser seems to cope okay02:09
sabdflright, those reasons.02:09
lifelesselmo: dynamic, scrolls as you wait02:10
stubsabdfl: Not sure - I've only used alter sequence which won't let you embed a SELECT in it02:10
sabdflstub: no worries, just thought i'd play "throgh crackful queries at the BDBA and see how he handles" today :-)02:11
cprovsabdfl: yes, many simple feature are harder to do using SQLO, maybe my fault, but using simple "pg" the things shows up faster, same strategy used by elmo and Kinnison 02:12
sabdflworks for me02:12
stubsabdfl: select setval('bug_id_seq', (select max(id)+1 from bug));02:12
sabdfllet's help spiv and bradb by telling them wat tweaks would make sqlo more useful in scripts though02:13
sabdflstub: nice, thanks :-)02:13
cprovsabdfl: ERROR: column "productseries" does not exist SELECT id FROM ProductRelease WHERE productseries = 466 ?02:14
sabdflelmo: should i be able to scp off zhongshan using my normal ssh keys?02:14
lifelessok, I'm going to crash, started at 7am :|02:14
lifelessspiv: mail me anything you'd like me to investigate. 02:14
lifelessddaa: good luck, please mail me for info etc.02:15
sabdflcprov: there's an sql patch which went in today for that02:15
lifelessI'm seeing RMS speak tomorrow, so will not be around all that much - will be working offline mostly.02:15
sabdflit was in the pending queue for a day or two02:15
lifelessnight all.02:15
sabdflnight robert02:15
ddaalifeless: you have hint about the tarfile error?02:15
ddaai seem to get that one for everything02:15
lifelessddaa: oh.02:15
lifelesswhat ones specifically ?02:15
lifelessif its the X.org ones, its cause that module can't hack the 800MB tarball.02:16
ddaaso far: zenity, yelp, xrestop02:16
lifeless(or, that the URL for the tarball is wrong)02:16
lifelesshmm, dunno offhand. pdb is your friend I think02:16
ddaalifeless: what i was planning to ho02:17
lifelessrun the slave with twistd -nf buildbot.tap02:17
lifelessand throw an import pdb;pdb.set_trace() at the appropriate place.02:17
ddaaack, I had put that one into a sticky note a few days ago :-002:17
lifelessok, I'm out... 02:17
cprovsabdfl: yep, I see,  we have now productseries... uhmm it crashes my dump entirely02:17
ddaasweet dreams02:17
elmosabdfl: if you have the .ssh/config set up right, yes02:18
sabdflwhat's the voodoo for that?02:18
elmoHost *.ubuntu.com02:18
elmo    ProxyCommand ssh mark@chinstrap.warthogs.hbd.com nc -q0 %h %p02:18
elmoadd that to the other stuff02:18
sabdflfor the zhongshan host only?02:18
elmodo it for *.ubuntu.com, then you get the other ubuntu.com hosts for free as we migrate02:19
cprovsabdfl: anyway, using that I pointed you, you can see productseries 02:20
sabdflcan I have separate entries for *.ubuntu.com02:20
sabdfland zhongshan02:20
sabdflcprov: so your code created productseries entries, and productrelease entries?02:21
sabdflbut didn't know about the new field to tell a productrelease what productseries it is part of?02:21
elmosabdfl: err, sure if you want, can't imagine why you'd want to tho?02:23
cprovsabdfl: yes, I missed the field productseries in table Productrelease, so it is almost unuseful :(, sorry02:24
ddaaspiv: is there some magic to prevent twistd from decorating the output of the buildbot? The "2004/10/14 14:31 CEST [Broker,client] " prefix breaks the integration of emacs with pdb.02:32
=== SteveA [~steve@office.pov.lt] has joined #launchpad
sabdflelmo: wow that was exciting02:35
sabdfljust DOS'd myself with a bad .ssh/config02:35
sabdflwant to try this at home?02:38
sabdflHost zhongshan02:38
sabdfl        compression yes02:38
sabdfl        HostName zhongshan.ubuntu.com02:38
sabdflHost *.ubuntu.com02:38
sabdfl        ProxyCommand ssh mark@chinstrap.ubuntu.com nc -q0 %h %p02:38
sabdflelmo: was hoping to be able to put the proxycommand in a *.ubuntu.com entry02:38
sabdfland then use separate entries to map host to ubuntu.com02:38
cprovKinnison: what do I need from librarian to run gina now ?02:40
elmosabdfl: turn on tab completion02:43
Kinnisoncprov: You need a running librarian02:43
elmothen it's just zhon<tab>, rather than zhonghan or zhongshan.ubuntu.com02:44
sabdflelmo: still not working, even if I specify things completely02:44
=== limi benchmarks Javascript
sabdflHost *.ubuntu.com02:44
sabdfl        compression yes02:44
sabdfl        ProxyCommand ssh mark@chinstrap.ubuntu.com nc -q0 %h %p02:44
elmosabdfl: chinstrap.warthogs.hbd.com dude02:44
elmosabdfl: yes, I know the half and half things sucks, sorry02:44
limisabdfl: 20K entries is what we are expecting for packages, roughly?02:44
cprovKinnison: do you have it zhongshan, in a easy way that I can copy?02:45
KinnisonYou edit lib/canonical/librarian/server.tac to set a path to the storage and to choose a port for it02:45
Kinnisonthen you run (from the level where you'd make run for launchpad) twistd -noy lib/canonical/librarian/server.tac02:46
KinnisonIf you don't have it already; then prefix that twistd command with 'PYTHONPATH=lib '02:46
cprovKinnison: ok02:47
Kinnisoncprov: It's important to remember that the database and filesystem path combination work together for the librarian02:48
Kinnisonso if you blow the db away; remember to blow the filesystem it created away02:48
KinnisonAlso if you copy the DB, copy the filestore too02:48
sabdfllimi: for a single distro that would be the max for now, yes02:48
Kinnisoncprov: *or* mod gina to make the librarian interface optional :-)02:48
cprovKinnison: I thinking in this possibility now :)02:49
=== cprov has just give it up when looks the code
ddaathe tarfile error is caused by getting a 401 from chinstrap...02:54
ddaa(auth required)02:54
ddaain zenity.info:02:55
ddaaCvsTarFile: http://chinstrap.warthogs.hbd.com/~jdub/cvsballs/zenity.tar.bz202:55
ddaaSo... what would be the magic trick to make that work from my workstation?02:57
ddaaelmo: any idea?02:57
=== SteveA [~steve@office.pov.lt] has joined #launchpad
Kinnisoncprov: eh?03:01
=== ddaa investigate having pycurl handling ssl and auth
=== ddaa wishes his fingers knew how to write english.
cprovKinnison: yep, It will take so long to mod gina to work w/o librarian and I'll take the risc of kill you work, I've just perform some surgery on my DB and recover the previous generated gina data03:04
cprovKinnison: but I'll  be glad if you can do the modularization of gina :)03:05
Kinnisoncprov: Maybe when I've sorted this poolbuilder03:05
=== Kinnison is currently eating his lunch; then I'll get back to writing lib.canonical.lucille.publishing.SourcePackagePublisher
cprovKinnison: thanks, enjoy you lunch !03:07
=== BradB|away is now known as BradB
=== limi finds out what he suspected: javascript isn't the fastest language to do string comparisons in
cprovsabdfl: so, now it is ok, nicole is generating correct productreleases and I modified it in the way that you can take partial dumps when it still running to have a kind of DB snapshot03:26
cprovsabdfl: I have one im my home with ~10 projects ...if you want you can do you own now (~30)03:27
=== ddaa wonders if curl could use .netrc of http authentification...
=== debonzi [~debonzi@] has joined #launchpad
ddaaLooks like it works...03:44
sabdflcprov: could you do a dump for me please, and point me at it?04:03
cprovsabdfl: of course, just a second04:04
sabdfllimi: figured out how to make javascript fly?04:05
cprovsabdfl: scp zhongshan.ubuntu.com:/home/cprov/lp_dump-productrelease-partial.sql.gz04:05
sabdflcprov: thanks!04:07
sabdfldo I just drop my db and then use this to recreate it?04:07
limisabdfl: "not fly", as the case may be - the conclusion is that we should use XML-RPC with an inline search widget to do this server-side - with a fallback on the button to do a traditional search if you don't have JS04:07
Kinnisondropdb foo; createdb -E UNICODE foo; zcat bar.sql.gz | psql foo04:07
limiJavascript just won't handle 20K items (tested with 5K)04:07
sabdfllimi: absolutely no way to do this client side?04:08
liminope, too many entries - but it is client-side in the sense that you don't leave the form04:09
BradBstub: Can we drop the dependence on plpython? The security concerns it adds don't seem worth it for 10 lines of Python validation code.04:10
cprovsabdfl: dropdb XXX; createdb -E UNICODE XXX, psql -f <dump> XXX04:10
stubWhat is the security concern?04:10
BradBThe fact that pqm has to run as a superuser on the DB for us to checkin changes ;)04:11
BradBI don't think that actually works yet, but it was supposed to yesterday, until we hit that roadblock.04:12
stuba postgres superuser, although I'm discussing this with steve on habber atm. Why is that a problem?04:12
BradBstub: It's a big risk to take if the production database is on the same machine as a non-production one.04:12
BradBAnd, well, it's 10 lines of Python. :)04:13
stubI wasn't aware we had that situation anywhere.04:13
BradBI'm sure elmo could provide a more detailed explanation of the risks involved though.04:14
stubIt will be more one day. It is trivial to redo it in pl/pgsql so I'm not fussed about the current code but it is more for future expansion.04:14
stubIt means that pqm has write access as the postgres user, so they can trash all the postgres databases on that server if they want.04:15
BradByep, that's the most obvious risk. there are probably other things though too.04:15
stubIt isn't a problem on a single database server, since they can trash that single database anyway by dropping tables.04:16
SteveAstub: I'd like to get pagetests running on pqm today.04:16
BradBIs there a smoother way to run the page tests yet?04:18
SteveAwhat needs to happen in the set-up scripts for the launchpad_test database to make it so that they can be run by pqm?04:18
=== BradB see a malone page test failing after a star merge.
stubThe tests I had did everything - built the database etc. I have no idea what other people are trying to do in their tests.04:19
sabdflcprov: shortdesc seems to be picking up parts of sentences04:20
sabdflfor example:04:20
sabdflAbiWord is a cross-platform Open Source word processor. The goal04:20
sabdflwhy does it get "The goal" at the end?04:20
sabdflfm has the summary and description fields, which should map to our shortdesc and description04:21
sabdflBradB: should the tests all be passing now?04:21
=== BradB will be really happy of checkins can't happen unless the page tests pass. Then I can be lazy and not have to spend time fixing stuff that was already working in Malone.
BradBsabdfl: The page tests; there doesn't seem to have been much done yet to make the UT and FT's pass though.04:22
sabdflhow do i run just the page tests?04:22
BradBsabdfl: I run them like this: bradb@ozone:~/launchpad/lp$ PYTHONPATH=~bradb/launchpad/lp/lib python lib/canonical/ftests/test_pages.py04:23
SteveAstub: I need to know what I can hook into my page-test-runner to set up the database 04:23
cprovsabdfl: shortdesc is always unexpectable (it should cut on first dot), I'll request it to Morgan 04:23
SteveAstub: right now, it runs "make" in database/schema04:23
SteveAstub: but, pqm can't do that04:23
stubCan pqm create and drop databases?04:24
stubso the only problem is plpythonu?04:24
elmoerr, no04:24
elmoI gave pqm createuser last night04:24
elmoand it already had createdb -> it's postgres superuser04:25
=== SteveA lets elmo and stub talk about it
dafare we going to need to change things on Mawson to get plpgsql to work?04:25
SteveAguys, my requirement is to get pqm to be able to set up the launchpad_test database with appropriate contents and constraints etc., like it would be in production.04:25
stubso there shouldn't be any problems then. Running make does that.04:26
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
sabdflcprov: alsa got a project but not a product. why?04:27
dafhi Carlos04:27
elmostub: the problem is, requiring superuser in postgres is insane.  if, for example, anyone wants to run a launchpad type instance anywhere near the machine running katie, I'm just going to point and laugh at them04:28
SteveAstub, elmo: so I can re-enable running "make" in database/schema on merge?04:28
elmoeven on chinstrap, there's more than pqm using postgres04:28
elmoSteveA: AFAIK, yes04:28
dafcarlos: could you update the StaffCalendar page with your new working hours?04:28
SteveAelmo: is this a temporary hack, or how it will be?04:28
elmoSteveA: *shrug* I dunno, if none of the other postgres users on chinstrap mind, then it can probably stay, but I'm trying to point out that it's not a sane long term solution IMO04:29
cprovsabdfl: cause the product algorithm seems to failed to look for alsa-driver, alsa-tools, etc, since nothing is returned with these names from Morgan lib 04:30
stubok - then we have to drop using embedded python procedures. I wasn't aware we had that many production databases to worry about.04:30
SteveAcarlos, daf: Can we have a rosetta team meeting on #canonical-meeting, now?04:30
carlosSteveA: yes04:30
elmostub: it's not just embedded python - it's the whole drop the db and recreate it - even with just 'createdb' the pqm instance could, f.e.  drop the buttress database04:30
cprovsabdfl: I'm modifying it now to insert default projects either it hasn't a respective SF/FM product04:31
elmomaybe I'm being over paranoid, and maybe there really isn't a better way to do it in postgres04:31
stubelmo: That can be fixed, although it is much more likely to hang.04:31
SteveAelmo: suid script to set up the database we need in the way we need it ?04:31
stubThe butress database is running on chinstrap???04:32
SteveA(I know "suid script" doesn't make sense...)04:32
elmothere's a 'buttress' db on chinstrap - I don't know whether it's the master or what04:32
stubcreatedb/dropdb shouldn't be a problem if we don't mix production and dev on the same server (and neither should plpythonu).04:35
stubSteveA: So it sounds like at the moment at least, just running 'make' should be fine for PQM to build the launchpad_test database04:46
SteveAok, I'm going to try turning this on again.04:46
stubelmo: Can you let me know if I need to remove the dependancy on plpythonu on the server, and if PQM needs to lose the ability to drop databases.04:47
BradBAlready fixing Malone bugs that were spotted quickly with page tests. :)04:47
stubLosing plpythonu isn't a problem at the moment, but just restricts us a bit. 04:48
stub(for future work)04:48
stubPQM can lose the ability to drop and create databases, but it might cause deadlocks on occasion if a previous run didn't close connections to the database cleanly04:48
BradBSteveA, daf: Are the page tests docs going to be released today? I'd like somewhere that I can read about how to actually document the page tests (i.e. inside the .txt file itself), and a point of reference showing me how to fix common problems I might encounter (like the IOError and tabs vs. spaces thing from last night)04:51
SteveABradB: yes.  And, I'd like to see if you can reproduce the tabs vs spaces thing with the new system.04:52
BradBme too :)04:53
SteveABradB: I need to see instructions on how to reproduce an IOError.  Can you file a bug on it, with instructions on how to reproduce it?04:53
stubAre we using webunit or something for page tests, or something home brewed?04:53
BradBSteveA: sure04:54
SteveAstub: the thing from zope304:54
stubI'm actually working on a better postgresql test harness at the moment so tests are better isolated (without having to use the existing harness that builds the database every single test)04:56
SteveAhow would that work?04:56
stubBy making connection.commit() a noop, meaning I can rollback all changes since the start of the test. It will screw tests that span zope transactions though if they expect an exception to rollback database changes (in some cases)04:57
dilysBug 2049 resolved: Link from source package release to binary package release is not displaying version04:58
SteveAthis won't work well for page tests I think.05:02
SteveAbut, should work okay for smaller-scope functional tests05:02
ddaahow comes the buildbot test suite breaks because of some code in cscvs which relies on a contract in pyarch which has changed months ago...05:04
ddaabob2: any insight?05:04
=== SteveA will now test that a broken pagetest doesn't get merged
=== morgs [~morganc@wblv-252-141.telkomadsl.co.za] has joined #launchpad
sabdflddaa: how long does it typically take to get a new import up to syncing status?05:07
ddaasabdfl: no idea, still working on my first new import.05:08
sabdflmorgs we have your code up and running in "nicole", celsos script05:08
sabdflseems to be a good start, thank you05:08
ddaaIf you mean the time of the initial import, in my testing environment, it's of the order of one small hour (slow cpu here).05:09
cprovmorgs: welcome05:09
sabdflhow do I do an orderBy in a MultipleJoin?05:09
morgsChatting with Celso on jabber too... I'll continue here05:10
sabdfldescending, to be cute?05:10
sabdflddaa: goal is to get the import process to the point where the package maintainer can mostly drive it05:10
spivsabdfl: things = MultipleJoin('Thing', orderBy='foo'), I belive.05:10
morgscprov: just starting the RSS stuff, I was adding savannah.gnu.org repository but it doesn't have as much detail as sourceforge05:10
sabdflspiv: and descending?05:10
sabdflmorgs: rss?05:11
spivOhk, orderBy='foo DESC' :)05:11
ddaaspiv: initial import of zenity up to the breakage in taxi.py: 25mins05:11
sabdflspiv: thanks05:11
spivOr orderBy='-foo'05:11
=== ddaa audits the changelog
spivddaa: I'm still having trouble makinga testcase for taht :(05:12
ddaaspiv: maybe you should ask bob2... he's the one who wrote it iirc.05:12
ddaasabdfl: hu see message to spiv 2 mins ago.05:13
morgssabdfl: xml feeds05:14
sabdflmorgs: ah, ok, thanks05:14
cprovmorgs: great, I supose it will be easier to grab all the fields than HTML parser 05:15
morgsany advice on xml parsing? I think there is a .deb...05:17
SteveAlibxml2 is very full of features, but rather awkward to use from python05:21
SteveAbut, you can do xpath with it, which is a very simple way of getting data from xml.05:21
SteveAotherwise, use minidom05:21
SteveAthat's in the standard python library05:21
SteveAuse the dom methods to get to where you need to be in the tree05:22
SteveAmore verbose than xpath, but should be pretty understandable and quick to implement05:22
morgsSteveA: Great, that should get me what I need.05:22
stubelementtree is less verbose than using a DOM, and has primative xpath support now.05:22
SteveAThere's a project to wrap libxml2 more pythonically, but it is being done in a couple of people's spare time, and it isn't really progressing.05:22
SteveAwhat's elementtree ?05:23
SteveA(my dear watson?)05:23
stubeffbot's XML library05:23
=== cprov is now known as cprov_lunch
spivThere's also beautifulsoup, but it's more intended for HTML scraping.05:26
spivNo reason why it wouldn't work for XML, though...05:26
morgsspiv: I'm doing some HTML scraping... what/where is beautifulsoup?05:26
spivstub: Drat :)05:27
morgsThanks, I'll check it out.05:27
stubI've had recommendations for it from people who I trust, but haven't used it personally.05:28
spivHeh: "Beautiful Soup defines two parsers: BeautifulSoup, which parses HTML with just enough smarts to be dangerous, and BeautifulStoneSoup, which doesn't try at all to be smart and is therefore well-suited for parsing XML documents and pseudo-HTML with made-up tag names."05:28
dilysBug 2051 resolved: Use apt_pkg (from python-apt) to parse dependency lists05:28
=== morgs is now known as morgs-going-to-m
=== morgs-going-to-m is now known as morgs-supper
spivstub: Yeah, I suggested it to Anthony Baxter for TWFY, although I'd never used it, and he came back saying how wonderful it was :)05:29
=== ddaa looks for a crack pipe in lifeless private stuff
ddaacscvs test suite blows on the first test...05:33
dilysBug 2018 resolved: Complete information for binary package release.05:34
dilysBug 2010 resolved: Build pages need to be defined for a binary package release05:35
=== debonzi is now known as debonzi_lunch
sabdflerm, how do i make a select a dropdown listbox?05:51
SteveAsize="1" or something like that iirc05:51
sabdflthat's obvious, why didn't i think of it?05:52
SteveAand, make sure it isn't a multiple select05:52
SteveABradB: the pagetests are now running on merge.  That is, a merge will be rejected if a pagetest fails.  Next, I want to talk through it with daf.  Daf will update the docs he wrote, and post them to the list.  Meanwhile, if you don't mind, I'll move all your (and others') existing page tests into the new location.05:53
BradBSteveA: By the looks of things, you've removed utilities/page-test-helper, in favour of ./makepagetest.py, right?05:55
SteveAum... removing page-test-helper was sort of an accident05:55
SteveAI wanted to remove it, but not so soon05:55
SteveAbut, yes05:55
SteveAhang in there, we'll be out of the tunnel in an hour or so05:56
BradBgreat, just in time for me to return from lunch :)05:56
BradBI'm really happy that we won't be able to merge unless the page tests pass, since if it had been like that before, I'd be looking for other tasks to do, instead of fixing stuff that had already been working in Malone. :)05:56
SteveAok, have a good lunch05:57
=== BradB is now known as BradB|lunch
=== sabdfl scrambles to merge crack before the iron curtain falls
=== ddaa gasps at os.getlogin() raising a IOError on the grounds of "No such file or directory"...
=== ddaa reads the documentation, blames lifeless, and uses os.environ['LOGNAME']
ddaawould you prefer pwd.getpwuid(os.getuid())[0]  ?06:16
elmoAFAIK that's what os.getlogin() does if LOGNAME fails - why wouldn't it fail with the same IOError if you're really missing /etc/passwd06:16
sabdflSteveA: about those clearer debugging messages06:16
sabdfltry this one06:16
sabdflhere's the last bit of the traceback:06:17
sabdfl    Module zope.app.traversing.adapters, line 167, in traversePathElement    Module zope.app.traversing.adapters, line 52, in traverse06:17
sabdfl __traceback_info__: (<Product at 0x442a418c>, 'releases', [] )  NotFoundError: (<Product at 0x442a418c>, 'releases')06:17
sabdfllooks fairly clear06:17
sabdflbut releases is in both the interface, and the object definition06:17
sabdflfurther digging:06:17
ddaaos.getlogin raises an IOError in the cscvs test suite for some unfathomable reason, but...06:17
dafsabdfl: looks like a traversal directive is missing06:18
sabdfl(Pdb) print subject06:18
sabdfl<Product at 0x442a422c>06:18
sabdfl(Pdb) subject.id06:18
sabdfl(Pdb) subject.name06:18
sabdfl(Pdb) subject.releases06:18
sabdfl*** AttributeError: 'ProductRelease' object has no attribute 'datecreated DESC'06:18
ddaaelmo: thanks for making me think, I should investigate more on what happens in the debugger06:18
sabdflreally the problem is with an SQLObject that is not mentioned ever in the traceback06:19
dafright, so Zope is trying to traverse from the firefox product to its releases06:20
dafand when it tries to do this, it gets a AttributeError06:20
sabdflit dies during the join, yes06:20
dafwhich it translates into a NotFoundError06:20
sabdflvery helpfully06:20
SteveAwhy does dieing during the join lead to an AttributeError?06:21
ddaaelmo: so, os.getlogin fails, but the latter does work...06:21
SteveArather than a database error?06:21
ddaafor some unfathomable reason.06:21
=== limi [~limi@212.80-202-72.nextgentel.com] has joined #launchpad
daf"dying during the join"?06:22
dafhow did we work that out?06:22
sabdfldaf: look at the pdb output06:22
dafsomething is trying to access a non-existant attribute 'datecreated DESC'06:22
SteveAsabdfl: ideally, what would you like the error to be in this case?06:23
dafthe problem is with SQLObject, not Zope06:23
sabdflthe output of the AttributeError told me exactly what the problem was06:23
sabdflspiv told me to use orderBy="foo DESC" which i did06:23
dafI think it's quite reasonable to turn an AttributeError into something not being found06:24
sabdflbut i used datecreated06:24
sabdfland the fieldname is actually datereleased06:24
sabdflwhat was perverse is that the context/releases thing works FINE if there are no releases06:24
sabdflbecause the orderBy never is used06:24
sabdflit was a fun 20 minutes :-)06:24
SteveAah... was it a "deeper" attribute error?06:25
sabdflI don't know under what circumstances an AttributeError is generated, but06:25
sabdfla failed JOIN is not "attribute not found"06:25
SteveAthat is, the traversal code is interested in an "immediate" attribute error -- that is, the attribute it is trying to get does not exist 06:25
sabdflSteveA: yes06:25
SteveAokay... that's really a python limitation06:25
sabdflSteveA: it exists though06:25
SteveAthere's a hack to work around it, though.  but it ain't pretty06:26
dafI'm pretty sure this is a bug in SQLObject06:26
dafwhich results in a misleading exception06:26
sabdflso zope can't tell the difference between trying to access an attribute which does not exist, and an AttributeError raise by an attribute which DOES exist?06:26
SteveAwhat *should* happen is that the traversal code should be interested in an "immediate" attribute error only, and should just pass on a "deeper" attribute error06:26
SteveAPython can't tell the difference.06:27
SteveAthis is one of python's "the snake bites you on the arse when you aren't expecting it" situations06:27
SteveAthe hack involves examining the depth of traceback06:27
dafZope can't tell the difference between an AttributeError that was raised by the object it was looking at directly, and an AttributeError raised by code that runs when accessing an attribute that does exist06:27
SteveAcompared to the current stack frame06:27
sabdflis "productrelease" a sane default for traversal past product?06:27
sabdflin doap, at least?06:28
dafreleases is a magical attribute which runs code when it is accessed06:28
dafwhen that code raises an AttributeError, it looks to Zope like that attribute doesn't exist06:28
dafso the problem is with the code run when the property is accessed06:28
sabdflwhat if SQLObject raised a differnet exception?06:28
dafI don't know06:29
=== SteveA discusses introducing the "pass through deep attribute errors" hack with zope3 upstream
dafbut if you fix SQLObject to do the orderBy properly, the exception shouldn't occur06:29
dafdoing the exception-depth magic is a longer-term solution to getting better error messages from Zope06:30
=== Kinnison [~dsilvers@haddenham.pepperfish.net] has joined #launchpad
=== Kinnison grrs the librarian for not being able to retrieve by alias alone
Kinnisonspiv: ping?06:38
sabdflspiv: orderBy='foo DESC' definitely doesn't work06:39
sabdflbut orderBy='-foo' seems to work ok06:40
carlossabdfl: but what happens if foo is not a number?06:42
=== SteveA just discussed the traverse / python / deep vs immedate errors problem with Fred Drake
SteveAI'm going to see if I can improve this for traversal in zope3, and thusly for launchpad06:44
SteveAshould be a reasonably quick thing to hack up06:45
dafcarlos: 'foo' is an attribute name06:51
dafcarlos: i.e. in a string06:52
dafsabdfl: I suspect what might have happened is that support for 'blah DESC' was removed in SQLObject 0.606:52
carlosdaf: I know, but if the Attribute is not a number, the "-foo" thing will not work, right?06:52
=== ddaa winces
ddaathe cscvs test suite that the $HOME of lifeless hardcoded...06:53
=== cprov_lunch is now known as cprov
dafcarlos: SQLObject translates the '-' into a 'DESC' in the SQL06:53
carlosdaf: ohh, I see06:54
carlosthat's not too userfriendly but if it works... :-P06:54
=== Kinnison [~dsilvers@haddenham.pepperfish.net] has joined #launchpad
Kinnisonspiv: reping06:54
SteveAhow do I remove a directory in my arch tree?06:57
SteveAcan I just remove it, and commit?06:57
=== debonzi [~debonzi@] has joined #launchpad
SteveAhmm, it tells me it is not empty.  It contains a .arch-ids directory.06:58
carlosdaf: are you working on https://bugzilla.warthogs.hbd.com/bugzilla/show_bug.cgi?id=2036 ?06:58
ddaarm -rf06:58
KinnisonSteveA: yeah; all dirs contain one06:58
ddaaThe .arch-ids dir contains the explicit ids of the directory and files at the top-level.06:59
SteveAddaa: I'd prefer just rm -r06:59
ddaaSteveA: as you wish06:59
SteveAthanks ddaa and Kinnison07:00
KinnisonSteveA: the idea is that you can mv a dir; and arch knows you renamed it rather than deleted a whole pile of shit and re-added it07:00
=== ddaa decides on $LOGNAME... simpler
=== BradB|lunch is now known as BradB
sabdfllimi: how do i add a picture to a page on the web site?07:25
SteveAwe'll need a way of testing emails as well as pages.07:25
limisabdfl: in HTML or Structured Text?07:25
ddaaYay! I have finally beaten the cscvs test suite into passing!07:25
sabdflhow do i make the image available in the first place?07:25
limi"This is image description":img:someimage.jpg07:26
limijust add Image from the pulldown07:26
sabdflcool, thanks07:26
limiit will keep its name by default, but you can change it afterwards if you need to07:27
Kinnisonspiv: Is there a good reason why I can't retrieve a file from the librarian by aliasid alone?07:28
sabdfllimi: can i set the size of it in StructuredText?07:31
limisabdfl: no, STX is only for semantic markup in a way - you have to use HTML for layout changes07:31
limibut you can mix them07:31
limiso use STX, and display the image using <img src="..." height=" /> etc07:32
sabdfllimi: how do I put a 1-pixel border around an image?07:37
sabdflbaby steps again..07:37
limistyle="border: 1px solid black;"07:37
Kinnisonlimi: or better.. class="borderedImage" and then define the class in the CSS ?07:38
Kinnisonlimi: Or am I abstracting too much?07:38
limiKinnison: well, Mark is making a simple one-instance change here :)07:38
=== Kinnison gets lost in SQLObject
Kinnisonabstraction alert07:38
=== Kinnison sets off the sirens
limiit would be the right thing to do throughout a site, yes07:39
=== kiko [~kiko@] has joined #launchpad
limibut "borderedImage" is not really a useful name, to be nitpicky - 2 months down the line you decide to use a different visual effect for it07:39
Kinnisonyep; well said07:40
=== limi has seen stuff like class="greenBorder"
Kinnisonlimi: eww07:40
limior, my favorite <h2 class="header">07:40
Kinnisonlimi: I may not be good at chosing css class names; but at least I'm not that bad :-)07:40
SteveAclass="greenBorder normalSize"07:40
=== Kinnison has things like: <div id="pagefooter">
Kinnisonor <span class="nav2">07:41
sabdfl(18:40:25) limi: or, my favorite <h2 class="header">07:41
=== Kinnison gets a reasonable amount of his blog layout purely from CSS :-)
=== sabdfl is sure he saw that in the web site content...
sabdfl<h3 class="subHeader"> was all over the show, and i was copying it too07:42
limisabdfl: yes, it's what the DocBook stuff produces, I believe07:42
limiit's pretty insane :] 07:42
sabdfland good citizenship means alt="descriptivetext" for images right?07:42
Kinnisonsabdfl: yep07:42
Kinnisonsabdfl: and title="popup titley text" if you want that07:42
limidescriptive text is title= - alt is for "alternative representation07:42
Kinnisonsabdfl: remember that alt is for screenreaders and the like07:43
limislightly different ;)07:43
Kinnisonsabdfl: read http://diveintoaccessibility.org/ it's great07:43
=== Kinnison bops tla and does a tla undo ; tla redo --keep
Kinnisonbecause it lacks a tla undo --keep07:43
sabdfllimi: it would be great if i could just link to the image in plone and it automatically used the title and description from the object...07:43
limisabdfl: it does if you use Kupu or Epoz07:44
debonzihi Kinnison, why dbschema.PackagePublishingStatus.PUBLISHED does not exists anymore?07:44
limibut as Mozilla has bugs that make them unusable at the moment...07:44
Kinnisondebonzi: It doesn't?!?!07:44
debonzisorry... PROPOSED07:44
=== limi should make sure they have fixed those in Moz 1.8 alpha
Kinnisonaah; because sabdfl and I agreed that in its original state, that field confused publishing with queues with policy07:44
Kinnisonpackage proposals will need to come in via a different route07:45
Kinnisonthe publishing tables are *purely* for publishing with in a distro{arch,}release07:45
ddaais pqm offline or something?07:46
debonziKinnison, uhmmm because I was showing in the sourcepackage page the proposed sourcepackage version. Should it not exists anymore.... or for while?07:47
SteveApqm seems to be waiting for instructions07:47
Kinnisondebonzi: when mark and I work out how the whole derivative distributions malarky will work; we will be able to put it back. For now; I guess commenting it out will do07:48
debonziKinnison, right.. thanks07:48
carlossabdfl, SteveA: Which one was the final policy about the Tables/Attributes names? all the same as in the database?07:57
KinnisonSQLObject gurus.. Do I have to do something magical in order to select by the ID field of a table?07:57
ddaaSteveA: for some reason i do not seem to receive its ack messages...07:58
carlosKinnison: object.get()07:58
sabdflcarlos: meaning? do you need to keep the SQLObject the same as the db? yes07:58
sabdflKinnison: glad that bit you too07:58
carlossabdfl: yes, that's what I mean07:58
carlossabdfl: and the attributes all in lowercase?07:58
Kinnisonsabdfl: I'm glad you're glad I got bitten07:58
sabdflKinnison: Product.selectBy(ownerID=1)07:58
carlosdateChanged or datechanged?07:58
=== Kinnison loves a concerned boss :-)
sabdflcarlos: datechanged07:59
Kinnisonsabdfl: LibraryFileAlias.selectBy(ID=aliasid) is what I want07:59
sabdflKinnison: nothing altruistic about it :-)07:59
BradBKinnison: you shouldn't be doing selects on id's08:00
KinnisonBradB: whyever not?08:00
SteveAddaa: you mail perhaps not being sent out with a valid return addresss?08:00
BradBKinnison: LibraryFileAlias(id) instead08:01
=== ddaa checks his /etc/aliases
KinnisonBradB: aah, I had LibraryFileAlias.get(id) thanks to carlos08:01
=== Kinnison elides four characters and tests
debonzisabdfl, SteveA : is it ok to changes stuff like IWikiName, IJabberID, IIrcID from ikiko to interfaces/person.py or whould exist a better place to it?08:01
KinnisonBradB: your way give: exceptions.TypeError: __init__() takes exactly 1 argument (2 given)08:01
=== Kinnison sticks to carlos' way
BradBi guess that faded away in 0.608:02
KinnisonIs there a useful way to force an SQLObject to stop being lazy?08:02
ddaahu... my /etc/email-addresses is correct...08:02
KinnisonI want to do foo = somequery; print foo08:02
=== ddaa makes a test
Kinnisonbut that doesn't seem to work08:02
BradBKinnison: with 0.6, indeed .get is the right method.08:03
Kinnison>>> LibraryFileAlias.get(1)08:05
Kinnison<LibraryFileAlias at 0x40c1aa6c>08:05
Kinnisonfairly useless08:05
Kinnisonhow can I force that to show me the tuple?08:05
kikowhat tuple?08:06
Kinnisonthe row from the table08:06
=== BradB does a headstand
KinnisonBradB: bored?08:06
ddaaHa... indeed... exim seems to ignore /etc/email-addresses...08:06
kikoKinnison, you don't want to use SQLObject for that AFAICS08:06
BradBKinnison: You don't want a tuple, you evil DB-API'er08:06
BradBunless you do08:07
kikoKinnison, you want to do a direct connection query. ask cprov, I've done it with him.08:07
KinnisonBradB: I just wanna see that the select worked08:07
BradBit did08:07
KinnisonBradB: is there some .allColumns or something?08:07
ddaaWhat's the right way to clobber the From: header of mail sent by local users using exim?08:07
Kinnisonddaa: exim rewrites usually08:07
BradBKinnison: if it didn't find the object having that ID, it would have raised something like an SQLObjectNotFoundError (dunno if it's still called that though)08:08
ddaaKinnison: is there an answer which would help me get it to work in a few minutes w/o reading any significant documentation?08:08
Kinnisonddaa: what version of exim? 3 or 4?08:08
ddaaha it's postfix actually... the ubuntu basic...08:10
=== ddaa obviously do not give a shit what his smtp is
Kinnisonsudo dpkg-reconfigure postfix08:10
Kinnisonanswer the first question with the domain for outgoing mail08:10
Kinnisonthen things should work08:10
ddaamh... okay... that'll work... not the cleanest solution ever... but will work. Thanks.08:11
KinnisonIf anyone can answer the question "How do I make postfix send mail to a smarthost using authenticated SMTP" in a way which works (google doesn't seem to be helpful here) I'd be grateful, but for now I'm not too bothered08:13
cprovKinnison: simply: apt-get install exim4 <wink>08:14
dilysNew bug 2102 for Launchpad/Soyuz: Go away with ikiko.py and dkiko.py08:14
Kinnisoncprov: that's what I did; but then ubuntu-base complains because it depends on postfix08:15
cprovKinnison: it "conflics", doesn't it ? 08:16
cprovKinnison: not depends ...08:16
Kinnisoncprov: yeah; exim works fine; but I have to remove ubuntu-base because ubuntu-base depends on "postfix, postfix-tls"08:17
Kinnisonotherwise on upgrades it tries to replace exim with postfix08:17
cprovKinnison: really I didn't get it here (sounder9)08:17
=== Kinnison shrugs
cprovKinnison: I've just installed last weekend and replaced postfix by exim4, yesterday I did upgrade and it was ok 08:19
Kinnisonperhaps I broke my setup somehow08:20
cprovKinnison: :) Crazy Debian Developers ...08:21
Kinnisonw00p w00p!08:21
Kinnisondsilvers@petitemort:~$ curl http://localhost:18000/byalias?alias=108:22
KinnisonNow the librarian supports get-by-alias :-)08:22
Kinnison>>> from canonical.librarian.client import FileDownloadClient08:27
Kinnison>>> c = FileDownloadClient('localhost',18000)08:27
Kinnison>>> c.getFileByAlias(1).read()08:27
Kinnison<big string>08:27
sabdflkiko: would you recommend person.py or separate files for IWikiName etc in response to debonzi?08:29
sabdflKinnison: p = Person.get(id)08:30
Kinnisonsabdfl: Yeah, I kinda want p.allColumns() to give me { "name": "blah".... }08:31
Kinnisonsabdfl: no matter; I've worked around it08:31
kikosabdfl, person.py, really. if it gets too fat we'd use person_properties or something, but ideally not.08:32
=== jblack [~jblack@static-209-158-45-74.scr.east.verizon.net] has joined #launchpad
sabdfli'd prefer separate files myself08:32
jblacklimi, you happen to be around ?08:32
jblackHi boss08:32
sabdflhey jblack08:32
jblackThis weekend I'll write up a proposal which I'll feed to lifeless, then to you, then to the community, that covers having a user driven version of arch.08:33
jblackroadmap, etc.08:33
sabdflgreat jblack08:33
sabdflwe really need this08:33
sabdfland now is the time!08:33
jblackOh, I absolutely positively agree.08:34
cprovsabdfl: to be precise I'd preffer all person_related operation should be proxied by FOAF environment, so Person will be part of FOAF08:34
SteveAjblack: I have two tla gripes I'd like to add to the manifesto.  Perhaps you can point me to the best place to add them? 08:34
sabdflcprov: agreed08:34
sabdflbut that doesn't mean they all ned to be in person.py08:34
jblackstevea: Sure thing. Throw them up at manifesto.gnuarch.org08:34
cprovsabdfl: I mean CreatePerson(), CreateTeam(), etc08:34
jblackThat's where I'm going to be doing the feature planning.08:34
limijblack: yes, I'm here08:35
SteveAjblack: yes, but where? 08:35
jblacklimi: Have some free time boss? I was hoping that we could talk.08:35
SteveAyou want me to stick them on the front page?08:35
jblackSteveA: That would be fine, though if you're willing to build some organizational structure, you're welcome to do that as well. 08:35
limijblack: maybe over the weekend, I really need to finish my work for today (it's close to nine in the evening here :)08:35
jblacklimi: Ok. Understand. Arch giving you too much of a problem right now? 08:36
kikosabdfl, now I'm slightly confused. what are you proposing we place in person.py?08:36
SteveAjblack: okay -- that explains why I couldn't find a suitable place for them08:36
limijblack: not after I got rid of it and set up subversion, no ;)08:36
sabdfli'm not proposing we put anything in person.py08:36
jblacklimi: Oh, really? Ok.08:36
cprovsabdfl: no, they should have table/system related names, definitily 08:36
jblackI understand.08:36
sabdfldebonzi was asking where to put class WikiName08:36
limijblack: since we're in a hurry these days, I normally just mail my changes and have others commit them08:37
jblackstevea: Yeah, the swarm of people I hoped for hasn't arrived, so I need to put more effort into it.08:37
sabdfli was preferring wikiname.py, but wanted to see what you though08:37
sabdfllimi: what's the right way to do align=right on an image?08:37
jblacklimi: There anybody as else that's as frustrated as you, that I might still be able to save? 08:37
sabdflseems to fail in i.e.08:37
limisabdfl: style="float: right"08:38
limijblack: I believe BradB is a good candidate, but he's probably on top of it technically08:38
limibut he's probably good to probe for feedback08:39
jblackOk. I'll get with him. 08:39
limioh, and kiko has a lot of good thoughts on how to improve arch08:39
limifrom a user perspective08:39
BradBjblack: my main issue with tla/arch on OS X is the speed. i'm not sure that can be remedied without a tremendous amount of work though; more than would be justified, perhaps.08:39
SteveAjblack: http://manifesto.gnuarch.org/moin.cgi/ArchWarts08:40
jblackGood name08:40
jblackBrad! Hi there. Nice to meet you.08:40
BradBditto :)08:40
jblackBradB: I've heard about it. I'm saving up for a osX machine so that I can debug the issues. 08:40
SteveAafter amk's "python warts" http://www.amk.ca/python/writing/warts.html08:40
debonzisabdfl, I know they are related with person, but I also whould prefer to dont have it inside person.py. But I also don't know if it is a good idea to have one file just for IWikiName another one for IJabberID and so on.08:42
jblackBradB: That's really the bulk of it, right? Really sucky performance on OsX ? 08:42
SteveAjblack: one reason people may not have added anything is that it is not clear where one should add things. 08:43
kikosabdfl, wikiname.py? how many interfaces will live in it? sounds rather specific08:43
debonzisabdfl, may be one file for this stuff whould be nice.. like persondata.py 08:43
sabdfldebonzi: separate files are easier to find08:44
SteveAjblack: you could remedy this by having a page where you encourage people to just add stuff -- better to add it in the wrong place than to not add it at all 08:44
sabdfland revision control is easier if files are smaller and focused on specific things08:44
jblackI gotcha. So a short "Welcome, please hack" paragraph on the front page? 08:44
SteveAjblack: you can remove that page once the wiki has some more structure and content08:44
BradBjblack: That's the critical one, for me. There are other things I can think of, but from an OS X user's perspective they're petty compared to the speed problem (and they're probably already listed on the cited ArchWarts page)08:44
jblackTelling people that they're welcome to hit the structure.08:44
BradBjblack: The speed thing is the one that makes tla/arch unusable on OS X, let's put it that way.08:45
jblackbradb: How much can I get a cheap osx box for? 08:45
jblack(contradiction in terms asside) 08:45
BradBHm, they're not cheap. :)08:45
jblackOk. Are you doing anything to work around the issue?08:45
debonzisabdfl, right, I'll put then in separated files... thanks08:46
jblackSuch as setting up a crontab to populate your library while you're sleeping? 08:46
SteveAjblack: I don't think that would work, as that assumes people want to think about structure.  That's your job.  Perhaps just add two pages "ArchProblems" and "ArchImprovements" and text "Why not add your comments to ArchProblems and ArchImprovements"08:46
sabdfldebonzi: great08:46
SteveAjblack: that way, there's a clear place to put 90% of the comments08:46
jblackSteveA: Ok. Good advice. 08:46
jblackI'll do that today.08:46
BradBjblack: well, I have to try to time things right, but there's not too much i can do about it other than minimizing the amount i star-merge per day. i could annoy other people to check in my changes, but that's no help to anyone, i don't think.08:47
jblack(btw, thanks) 08:47
kikoI had thought of persondata as well.. 08:47
kikobut really, the file can grow up to a couple hundred lines, it's not a problem.08:47
jblackbradb: Ok. When you have free time (I presume you're busy), do some vmstats (or equivilant) for me while arch is bottlenecked? 08:48
BradBI could send you the output of fs_usage.08:49
jblackSounds good. That way, I have an idea of how far the ide bus is going before it sops out.08:49
BradBI'll send one later today then, the next time I star-merge (and for tla changes, which takes a lot of time too...tla commit takes a long time too, but not as bad as tla changes and tla star-merge)08:51
jblackAre you mirroring rocketfuel locally? 08:52
jblackBetween mirroring rocketfuel locally, and using greedy, sparse revision libraries, we could probably speed you up *quite* a bit08:53
BradBI've got the revision library configured like that already. I don't think local mirroring of rf would add much, since the network isn't the bottleneck (I don't think.)08:55
jblackHmmm. Is there an ssh for OSX? 08:57
BradBYes. :)08:58
KinnisonBradB: did you do a SourcepackagePublishing and PackagePublishing SQLObject in the end?08:58
BradBKinnison: Nope, I was only writing SQLObjects that I needed.08:58
jblackOhhh. so perhaps with enough begging and bribery, I could look at this problem more closely without shelling out X*10^y 08:58
KinnisonBradB: okies; I'll write 'em now then :-)08:58
SteveA"without shelling out X*10^y", but nonetheless shelling out08:59
Kinnisonsabdfl: is canonical.launchpad.database.publishing a good place for SourcepackagePublishing and PackagePublishing classes?08:59
limisecure shelling out08:59
jblackHey! That's a valid equation! 08:59
BradBjblack: Yeah, we could look into that...is this something you're interested in doing a bit on the weekend?08:59
jblackBradB: Sure. I work weekends usually.08:59
BradBjblack: What TZ are you?09:00
BradBi'm GMT-509:00
jblack(but I'm a nyteowl)09:00
sabdflKinnison: perfect09:00
Kinnisonsabdfl: coolie; off I go to smoke the SQLObject pipe09:01
jblackbradb: Yeah, if you're using greedy nonsparse revision libraries, then locally mirroring wouldn't make a big difference.09:01
Kinnisonsabdfl: and you want the files 'tla add'ed rather than with arch ids?09:01
jblackActually, it could still help09:01
sabdflyes please Kinnison09:02
limi"<jblack> Hmmm. Is there an ssh for OSX?" - it's BSD, dude ;)09:03
BradBjblack: What would be a good time on Saturday to revisit tla/arch OS X optimization?09:03
jblackWhen's good for you? 09:04
jblackYou pick a time, and I'll be there. :) 09:04
BradBMmm...maybe 10:00 (GMT-5) to at least get you setup to login here.09:04
BradBas in 10:00 AM ;)09:04
jblackOk. Thats 11am here. Its a date.09:04
jblackYou bring the flowers, I'll bring the skirt. =)09:05
BradBSure, I'll bring the wine.09:05
=== Kinnison witnesses mark's immense ability to write dates...
Kinnison    # XXX Mark Shuttleworth 08/10/0409:09
Kinnison    #     remove after 16/20/0409:09
jblack16/20, eh? 09:09
Kinnisonthat mythical 20th month09:09
KinnisonBradB: you did do a SourcepackageRelease though yes? (or was is SourcePackageRelease ?)09:16
sabdflSourcepackageRelease till further notice09:17
=== sabdfl blushes
Kinnisonsabdfl: why blushing?09:17
dilysNew bug 2103 for Launchpad/Launchpad: links on Launchpad tabs/footer have bad contrast with background09:17
BradBit's SourcePackageRelease right now09:17
KinnisonBradB: Hmm, it *ought* to be SourcepackageRelease :-(09:18
KinnisonBradB: the capitalisation is on conceptword. Sourcepackage is one conceptword09:18
BradBYeah, I know...the concept thing seemed incorrect though.09:19
BradBFeel free to name it back, if you guys want to.09:19
dafI prefer WordWord09:19
BradBWordWord is canonical.09:19
KinnisonConceptwordConceptword is Canonical though :-)09:20
BradBAnd very ambiguous09:20
=== Kinnison shrugs.
KinnisonNot my decision ultimately :-)09:20
=== Kinnison prods experimentally at this code
=== Kinnison pulls a dump locally to play with SQLObject
SteveAsabdfl: I've worked out how to fix the "hiding deep exceptions" problem upstream.  Message to jim and zope3-dev list bcc-ed to launchpad list, in case you are (or anyone else is) interested09:22
sabdflSteveA: awesome! thanks!09:24
sabdflKinnison: i agree on the ambiguity so will have it changed to SourcePackageRelease in due course09:24
sabdflam just holding off on that one for the moment because i think it's something that could be done in one patch when things have settled a bit09:24
sabdflthe moving around needs to get done now09:24
Kinnisonsabdfl: Okay; I'll plan to have to change when you do it09:25
=== Kinnison will call his bits 'SourcePackagePublishing' though in readiness
sabdflKinnison: np09:25
=== BradB star-merges, make checks, 2 failures from 8 tests.
KinnisonAll my RAM are belong to postgresql :-(09:27
=== kiko is now known as kiko-afk
BradBSteveA: You verified that a failing test causes the merge request to fail, right?09:29
BradBHm, seems like the problem may be that make check failed on trying to reinit the DB (as told by the error message: AssertionError: 512 != 0)09:33
BradBI think it has to do with createlang; just a guess.09:35
BradBI always comment that part out of the Makefile, then uncomment it back when I go to commit09:35
SteveAwhich part?09:35
BradBLines 24-30 that install plpython09:36
SteveAin lib/canonical/launchpad/ftests/test_pages.py, line 26,09:36
SteveAcopy that line, comment out the original, and amend the copy so that it isn't sending everything to /dev/null09:36
SteveAthen try re-submitting the merge request09:37
SteveAit should give you more information as to why it won't merge09:37
BradBThat's not a problem I was having.09:37
SteveAif there's a problem with setting up the database09:37
BradBThe problem was just that I star-merged, then I had failing tests.09:37
SteveAI'm confused 09:37
BradB(i.e. all locally)09:37
SteveAI thought you were saying that pqm wouldn't merge for you09:37
BradBNope, just that I star-merge and have failing tests now.09:38
SteveAif you star-merge into your tree, then you could well have failing testes09:38
SteveAum, tests09:38
BradBmm, yeah, i get it09:38
SteveAbecause you don't necessarily have what is in rocketfuel09:38
SteveAI must go home and get some food and sleep.  Want to start early tomorrow. 09:39
SteveAnight all.09:39
BradBsee ya tomorrow, bright and early! (for me, at least)09:39
sabdflnight SteveA09:40
=== SteveA is now known as SteveA|way
sabdfl--- orig/lib/canonical/launchpad/interfaces/bugassignment.py09:44
sabdfl+++ mod/lib/canonical/launchpad/interfaces/bugassignment.py09:44
sabdfl@@ -7,6 +7,8 @@09:44
sabdfl from zope.app.form.browser.interfaces import IAddFormCustomization09:44
sabdfl from canonical.lp import dbschema09:44
sabdfl+from canonical.launchpad.vocabularies.dbschema import BugStatusVocabulary, \09:44
sabdfl+     BugPriorityVocabulary, BugSeverityVocabulary09:44
sabdfl class IProductBugAssignmentContainer(Interface):09:44
sabdfl     """A container for IProductBugAssignment objects."""09:44
sabdfl@@ -37,9 +39,9 @@09:44
sabdfl     id = Int(title=_('ID'), required=True, readonly=True)09:44
sabdfl     bug = Int(title=_('Bug ID'), required=True, readonly=True)09:44
sabdfl     product = Choice(title=_('Product'), required=True, vocabulary='Product')09:44
sabdfl-    bugstatus = Choice(title=_('Bug Status'), vocabulary='BugStatus')09:44
sabdfl-    priority = Choice(title=_('Priority'), vocabulary='BugPriority')09:44
sabdfl-    severity = Choice(title=_('Severity'), vocabulary='BugSeverity')09:44
sabdfl+    bugstatus = Choice(title=_('Bug Status'), vocabulary=BugStatusVocabulary)09:44
sabdfl+    priority = Choice(title=_('Priority'), vocabulary=BugPriorityVocabulary)09:44
sabdfl+    severity = Choice(title=_('Severity'), vocabulary=BugSeverityVocabulary)09:44
sabdfl     assignee = Choice(title=_('Assignee'), required=False, vocabulary='Person')09:44
sabdfli thought we decided to do these all using 'names' instead of direct imports and class references?09:44
BradBI just fixed those vocab bugs09:45
BradBThey're meant to be used directly09:45
BradBBecause they're not factories.09:45
BradBThus the directive isn't appropriate.09:45
sabdflthis makes circular imports a lot harder to resolve09:46
sabdflis there a way to get these vocabularies "named"?09:46
BradBI think they'd need to be made things that produce vocabularies (i.e. factories), rather than actually being vocabularies.09:47
BradBI can look into this, but since these changes just removed some regression bugs from Malone, it might be spinning our wheels to worry about now.09:48
sabdflwhat was that foo to run the page tests again?09:48
BradBmake check09:48
sabdfldoesn't that run all of the tests? Or just the page ones09:48
BradBJust the page tests, I think.09:49
SteveA|wayjust the page tests (for now)09:49
SteveA|waywe should have a make pagetests just for page tests I guess09:49
=== SteveA|way is waiting for a lift home
sabdflhmm... and does it print something useful if a test fails?09:49
sabdfljust hummed and then stopped09:49
BradBit prints nothing if all went well09:49
sabdflmerge time!09:50
sabdfls'fast, too09:50
sabdflgood work SteveA|way09:50
SteveA|way"make check" is run by pqm.  It relies on exit code being non-zero for a problem.09:51
=== sabdfl needs to go and find some dinner
SteveA|waythere's a few more things I want to add to make pagetests nicer to run09:51
sabdflam nearly ready to hand doap over to spiv09:51
SteveA|waylike, being able to run a particular page test, and have all "earlier" ones run first for you09:51
SteveA|wayremember voltaire!09:51
SteveA|way"the best is the enemy of the good"09:51
Kinnisonthe naming conventions in canonical.launchpad.database.distro are abysmal09:57
kiko-afkKinnison, yeah, needs to be cleaned up outright10:08
Kinnisonkiko-afk: If I did that as part of this massive db patch I'm doing would that be good?10:08
Kinnisonkiko-afk: it's internally inconsistent even10:09
KinnisonE.g. class Release [distrorelease]  and class SoyuzDistroArchRelease [distroarchrelease] 10:09
kiko-afkKinnison, ideally separate -- and the Soyuz* is stuff still needing cleanup.10:09
=== limi puts finishing touches on the spec for berSearchWidget
Kinnisonkiko-afk: bum; I'll work around this mess for now then10:12
kiko-afkSoyuzFoo is leftovers10:13
kiko-afkcprov, debonzi should be moving that out in short notice10:13
=== BradB notes his page test fun stops short at the other 95% of malone needed auth support to test
carlosdinner time10:21
=== kiko-afk is now known as kiko
Kinnisonkiko: Any chance tidying distro.py could be made a priority? I'm kinda stuck right now :-(10:22
dafspiv: around?10:27
=== Kinnison -> chores
kikoKinnison, I need to get hold of cprov, but I will10:38
cprovKinnison: Can you specify again what you want in distros.py ?10:42
Kinnisoncprov: Soyuz* needs cleaning up10:54
KinnisonRelease needs calling DistroRelease10:54
Kinnisonbasically naming the classes after the tables :-)10:54
Kinnisoncprov: So I stand a chance of joining the publishing stuff in properly10:54
Kinnisoncprov: are you good to do that?10:57
=== Kinnison -> more chores
cprovKinnison: not today, but I can give it high priority for tomorrow, is it ok for you ?11:00
dilysBug 2102 resolved: Go away with ikiko.py and dkiko.py11:01
kikothanks cprovo11:03
Kinnisoncprov: should be okay. I'm kinda blocked on testing any of this code until I can instantiate the objects though :-)11:05
=== Kinnison can carry on writing code in the meantime
BradBdaf: ping11:05
BradBOr, well, anyone really:11:06
BradBI'm trying to generate a functional doctest for /foo11:06
BradB /foo is protected, and I'm already auth'd on port 900011:06
BradBSo I start recording, and go to /foo, then ^C to stop recording and write the test11:06
limiwhee, SearchWidget spec complete11:07
BradBBut then, the test always fails, with results like this:11:07
BradBDifferences (unified diff with -expected +actual):11:07
BradB    @@ -1,4 +1,3 @@11:07
BradB     HTTP/1.1 200 Ok11:07
BradB    -Connection: close11:07
BradB     Content-Length: 911911:07
BradB     Content-Type: text/html;charset=utf-811:07
BradBWhat's the deal with Connection: close there?11:07
dafBradB: pong!11:11
=== spiv [~andrew@fuchsia.puzzling.org] has joined #launchpad
dilysNew bug 2104 for Project Admin/General: early response from PQM11:11
BradBdaf: any idea on the above problem?11:11
dafthat's an interesting one11:12
dafis the authentication gubbins included properly in the request?11:12
BradBi don't that's related11:12
BradBi get all the output back correctly11:12
BradBthe /only/ thing that's different is that Connection: header11:12
BradBwhy does it say "close the connection" to the proxy, but doesn't do so in the test? hmm..11:13
sabdfllimi: neat work11:15
sabdflthe "select" buttons could be links instead of buttons?11:15
dafBradB: so Zope is saying "Connection: close" to the proxy, but not when the test is running?11:15
limiof course11:15
limithis is just a minimal spec11:15
limithe layout isn't finalized11:15
limiit probably won't look like this11:16
limiI just used existing elements to illustrate11:16
limiwill take a while to implement properly, but is very reusable11:16
limishould work for any large set of objects and selection of one or more of them11:17
daftwo possilbities come to mind: (1) ftesting.zcml is affecting Zope's use of "Conenction: close", (2) the TCP proxy affects Zope's use of the header somehow11:17
dafSteveA seems like the person to ask, but I'll wager he's retired for the night11:18
BradByeah, I'll have to bug^Wask him tomorrow, I guess11:18
dafor file a bug tonight11:18
BradBEven better.11:18
dafgo for it11:19
=== BradB does
dilysBug 2036 resolved: Rosetta database classes should be moved to canonical.launchpad.database11:20
BradBdaf: Where's the correct place to report this sort of thing though? In our Bugzilla, or in Zope Corp's? The latter seems like the obvious choice, but maybe there's a policy used here that I'm not aware of, that says I should use our Bugzilla.11:22
BradBBut then, it's using Steve's script too...urgh.11:22
dafconvention is that we file bugs in our Bugzilla, and the appropriate person takes it upstream if it's appropriate11:22
BradBoh, ok11:23
dafso SteveA is our interface to Zope, Spiv our interface to SQLObject and SQLOS, etc.11:23
dilysNew bug 2105 for Launchpad/Launchpad: Functional doctest generator adding "Connection: close" header11:37
spivdaf, BradB: Hmm, I'm a bit confused about why the page doctests even care about the headers?11:38
dafthey are potentially very significant11:39
dafmost headers aren't, of course11:39
spivWell, I guess it's a functional test, but it feels a bit funny to me to be testing HTTP like this as well... it means the tests are fragile if the headers are reordered, for instance.11:40
spivRight, things like Content-type matter.11:40
BradBThe response code matters too :)11:40
spivBradB: True :)11:40
dafBradB: good point11:41
Kinnisonspiv: Can you look over my patch to the librarian (merged already) and let me know if it's really horrible?11:41
=== Kinnison -> shoppping
spivKinnison: Ok :)11:41
Kinnisonspiv: mail me direct if there's anything negative to say. Feel free to praise me on lists if it's good :-)11:41
spivI think it's partly that I'm used to thinking about trying to test the smallest possible unit of functionality, and that's not what functional tests are about :)11:41
=== Kinnison -> shopping really really
=== sabdfl loves the new page tests

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