dafI'm talking about global notifications12:01
dafi.e. no global notification will get sent for new bugs that don't have owners12:02
BradBas i say, all bugs do have owners currently12:03
BradBin any case, there's no point thinking much about this, it's a bug of a sort (e.g. that it shouldn't be special-cased) and i'm fixing it with my next checkin.12:03
dafok :)12:04
dafnext question:12:04
dafnotify_bug_added seems to get called with a MaloneBugAddForm rather than a bug as the first parameter12:05
dafso how do I get the bug itself?12:06
BradBhence all that context.context.bug crap12:06
BradB("crap" i.e. in several places in the codebase)12:06
dafdoes the bug exist when the notification is called?12:07
dafis there some way of getting hold of it?12:07
dafMaloneBugAddForm has no attribute 'id', y'see12:08
BradBat worst, you can do event.object12:08
dafthat doesn't sound too bad12:08
BradBthe first param'll have to be renamed to describe whatever it is12:09
dafwhy does the notification get the form rather than the object itself?12:09
daf(Pdb) event.object12:09
daf<canonical.launchpad.database.bug.MaloneBugAddForm object at 0xb37e020c>12:09
spivcarlos: I suspect it's not needed, but I'm not usre.12:09
spivsure, rather.12:10
carlosspiv: also, I'm having problems with a test class with two tests, the second one gives me an error because the connection is already closed12:10
carlosspiv: the tests seems to be working (after commenting the commits, so seems like they are not needed, but I will activate the postgres debug info to be sure)12:11
BradBdaf: dunno.12:12
BradByou'd have to debug AddView to get the exact answer12:12
dafperhaps I should leave the new bug notifications unchanged for now, then12:13
BradBi can do it. possibly tonight.12:13
dafwhere does AddView live?12:14
dafI'm not familiar with all this notification stuff12:15
dafoh, you mean :tag AddView<RET> :)12:15
dafhmm, the relevant line seems to be: notify(ObjectCreatedEvent(content))12:17
BradBevents are dead simple, to be honest12:17
BradBlooks like it's the fault of the custom factory someone wrote12:20
BradBlast line is "return ob", but i think "return bug" would behave more sanely12:21
dafgroovy, shall I change it?12:21
BradByou can see if it works. there's a chance all hell'll break loose too (but i'm kind of doubting that :P)12:21
daf        return ob # Return this rather than the bug we created from it,12:22
daf                  # as the return value must be adaptable to the interface12:22
daf                  # used to generate the form.12:22
dafthat doesn't mean much to me12:22
BradBeh, a bug should be adaptable to that interface, since the generated form is *for* a bug.12:22
dafyeah, that would make sense12:23
dafhmm, that didn't seem to change anything12:24
dafwhere's the view for creating a bug kept?12:26
BradBit would be that MaloneBugAddForm12:27
dafthe tal calls view/update12:27
BradBthat's canonical12:28
dafwhich MaloneBugAddForm doesn't appear to have12:28
dafit's mixed in from somewhere?12:28
BradBno, but AddView does12:28
BradBhm, the ZCML says this addform is for schema="canonical.launchpad.interfaces.IMaloneBugAddForm", which I find bizarre12:29
dafwhy's that?12:30
BradBI would have thought it'd be for schema IBug :)12:30
BradBif instead it were for IBug, you'd be getting an IBug surely (for the params)12:32
dafI'll try that12:32
BradBand return bug would be The Right Thing12:32
dafhmm, expolosion12:33
dafzope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/site.zcml", line 5.4-5.3512:34
daf    ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/configure.zcml", line 78.4-78.4512:34
daf    ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/launchpad/configure.zcml", line 4.2-4.4812:34
daf    ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/launchpad/zcml/configure.zcml", line 18.4-18.3112:34
daf    ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/launchpad/zcml/bug.zcml", line 118.412:34
daf    ValueError: ('Field name is not in schema', u'sourcepackage', <InterfaceClass canonical.launchpad.interfaces.bug.IBug>)12:34
=== daf -> workrave
=== BradB gets back from making a sandwich
BradBah yeah, now i know why they did that12:38
BradBbecause there's stuff on the add form that isn't part of IBug (e.g. package and product assignments)12:38
dafit wouldn't be a problem if you could get the bug from the view class, but it doesn't seem possible12:46
carlosspiv: ping12:48
carlosspiv: seems like the current functional test status does not let you execute two tests inside the same class12:50
carlosa class with two tests fails because the second one tries to drop the database but it's already open 12:51
spivThat's bizarre.12:51
carlosthen the tests fails12:51
spivsetUp and tearDown are supposed to be run for each test method.12:51
dafBradB: any ideas, or shall I just leave it for now?12:51
spivYou've tried running the second one alone (e.g. by commenting out the first)?12:52
carlosno, let me try it12:52
carlosit will take sometime...12:52
carlosspiv: it's running and it was able to drop and recreate the database12:53
carloshmm, wait, I think I got the problem..12:54
carlos def tearDown(self):12:54
carlos        super(LaunchpadFunctionalTestCase, self).tearDown()12:54
carlos        FunctionalTestSetup().tearDown()12:54
carlosShould I call the super method after the FunctionalTestSetup()tearDown()?12:55
=== carlos tests it
carlosdaf: should we talk about the rosetta alpha move to the dogfood server?12:58
=== carlos is going to leave soon
BradBdaf: i'd say leave it for now. if you tla undo i'll look at it, but more likely tomorrow.01:06
carlosspiv: no that's not the problem, same error01:07
elmois there some way to get screen width in python without resorting to ncurses?01:08
elmonum of chars I mean by width, not pixels or anything01:08
carlosthe postgres log shows lots of messages like: 01:08
carlos2004-11-10 01:04:27 [9019]  LOG:  statement: BEGIN; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE01:08
carlos2004-11-10 01:04:27 [9019]  LOG:  statement: ABORT TRANSACTION01:08
carlos2004-11-10 01:04:27 [9019]  LOG:  statement: DROP DATABASE launchpad_ftest01:08
carlos2004-11-10 01:04:27 [9019]  ERROR:  database "launchpad_ftest" is being accessed01:08
carlosby other users01:08
carlos2004-11-10 01:04:27 [9019]  LOG:  statement: ABORT01:08
carlos2004-11-10 01:04:27 [9019]  WARNING:  there is no transaction in progress01:08
dafBradB: I'll leave new bugs using simple_sendmail now, and finish off the others tonight, I think01:08
carlosand the second test fails with this trace:01:08
carlosTraceback (most recent call last):01:09
carlos  File "./lib/canonical/rosetta/ftests/test_poimport.py", line 28, in testTemplateImporter01:09
carlos    project = Project.selectBy(name = 'gnome')[0] 01:09
carlos  File "/home/carlos/Work/dists/launchpad/lib/sqlobject/main.py", line 1238, in __getitem__01:09
carlos    return list(self.clone(start=start, end=start+1))[0] 01:09
carlos  File "/home/carlos/Work/dists/launchpad/lib/sqlobject/main.py", line 1242, in __iter__01:09
carlos    return conn.iterSelect(self)01:09
carlos  File "/home/carlos/Work/dists/launchpad/lib/sqlobject/dbconnection.py", line 516, in iterSelect01:09
carlos    select, keepConnection=True)))01:09
carlos  File "/home/carlos/Work/dists/launchpad/lib/sqlobject/dbconnection.py", line 444, in __init__01:09
dafelmo: $COLUMNS?01:09
carlos    self.cursor = rawconn.cursor()01:09
carlos  File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/zope/app/rdb/__init__.py", line 308, in cursor01:09
carlos    return ZopeCursor(self.conn.cursor(), self)01:09
carlosInterfaceError: already closed01:09
elmodaf: hmm, I remembered that but env(1) didn't show it.. I guess it's a shell variable01:11
elmoanyway, thanks01:11
dafyeah, I'm not sure what sets it01:11
dafprobably the shell01:12
elmoyeah, and it doesn't work in any spawned process, like python, :(01:12
elmo>>> os.getenv("COLUMNS")01:13
elmo>>> 01:13
spivcarlos: Hmm :/01:19
spivcarlos: So I guess that means the other test isn't related (which is good)01:20
=== carlos is tired and does not read correctly...
carlosspiv: that error is from the first test :-O01:22
carlosbut it makes no sense 01:22
carlosthe line where it fails is the start of the test01:22
carlosand it executes lots of queries...01:23
carlosis it possible that they are executed in reversed order?01:23
carloshmm, that sucks, that functional test is not working as it should01:24
spivThey're executed in an arbitrary order.01:24
carlosbut that's not a justification for the error01:25
spivMost likely dependent on the order they pop out of the dict of the test case.01:25
carlosI mean, the functional test is not running as it was wrote, but it should not fail01:25
carlosso I will care about it later, when the error is gone (the first should be executed first)01:26
spivSorry, you mean the tests depend on being run in a certain order?01:26
=== stub [~stub@dsl-] has joined #launchpad
carlosspiv: that was the way it was designed, yes. Don't ask :-), those tests suck and needs  lot of love01:28
spivOk :)01:28
carlosone imports a file into the database (a .pot file) and the second one imports another file (a po file) related to the first01:28
carloswith the current test database the functional tests have changed the objective of this functional test01:29
carlosspiv: if you can tell me for sure that multiple functional tests should work, I could disable those test for now and write new ones that really work01:30
carlosand forget this error01:30
spivWell, they *should* work, yeah :)01:31
carlosok, I believe you :-)01:31
carlosI will "poke" you if the problem appears again :-P01:31
spivAnd, I think they even do work ;)01:31
spivA quick grep shows other places run them too.01:32
spiv(canonical.mail, canonical.lp.placelessauth, canonical.ftests.test_sqlos)01:32
carlosperhaps the problem is with LaunchpadFunctionalTestCase01:33
carlosI didn't found a functional tests that uses it01:33
carlosI will review tomorrow If I really need the Utilities and Adapters from Zope or I could move to LaunchpadTestCase01:34
spivA grep finds a couple of places that use it for me...01:34
spiv(as mentioned above)01:35
=== carlos needs to improve his grep command...
BradBdaf: ok (re: doing id's for all but bug adding)01:35
carlosspiv: could you point me to a concrete file, please?01:35
spiv"grep -Irn class.*LaunchpadFunc"01:35
stubLaunchpadFunctionalTestCase was going to be first used in the page test stuff, but I found it wasn't needed - so it may be broken.01:36
BradBtags? :)01:36
spivBradB: Ok, so my full command line is actually "grep -Irn class.*LaunchpadFunc . | grep -v tags:" :P01:36
stubtest_sqlos is a decoy, currently disabled01:37
carlosspiv: then I don't have an example that works :-)01:38
stuband test_launchpadlogingsource is doing its own provideUtility so might work just as well wth LaunchpadTestCase01:38
=== BradB is now known as BradB|afk
carlosspiv: the test_launchpadloginsource.py only have a test inside the class01:38
carlosstub: I'm having problems with LaunchpadFunctionalTestCase and a class with more than a test01:39
carlosthe second one fails01:39
dafcarlos: I'll write an email to the mailing list tonight01:39
carlosdaf: ok01:39
stubcarlos: That is not surprising - LaunchpadFunctionalTestCase does not appear to be calling its superclass' setUp and tearDown methods :-P01:40
carlosstub: I fixed it already01:40
carlosit's in my local archive01:40
carloswill merge it tonight :-)01:41
carlosspiv: I'm not able to commit my changes02:35
carlosRan 57 tests in 74.651s02:35
carlosFAILED (errors=1)02:35
carlosException psycopg.InterfaceError: 'already closed' in <bound method Transaction.__del__ of <sqlobject.dbconnection.Transaction object at 0x41c8c6cc>> ignored02:35
carlos---- end test stderr ----02:35
carlosmake: *** [check]  Error 102:35
carlospqm rejects them because that02:35
stubcarlos: I didn't think make check was looking at stderr to see if things succeeded or failed? That bug needs to be fixed upstream, and I thought existing tests were already triggering it02:52
carlosstub: seems like I'm getting an error in any tests but I'm not sure about which one is it:02:54
carlos  File "/home/pqm/arch/queue/workdir/rocketfuel@canonical.com/rocketfuel@canonical.com---launchpad--devel--0/launchpad/lib/zope/app/rdb/__init__.py", line 308, in cursor02:54
carlos    return ZopeCursor(self.conn.cursor(), self)02:54
carlosInterfaceError: already closed02:54
carlosit's not too much descriptive02:54
stubok. I think that was the area I tried fixing and I thought BradB had finally nailed ;-(02:55
carlosI know the functional test I'm chaning are broken, but they were already broken before any change from my part, so I don't understand why the system is complaning now about it02:57
carlos /s/chaning/changing/02:58
stubYou might be able to get better output running 'python test.py canonical' instead of 'make check'02:58
stubfwiw, you might find the test runs happily standalone (python test.py test_powhatever), but fails if run in a batch. If this is the case, it is a bug in the setup/teardown stuff because a previous test is leaving the system in a bad state.02:59
carlosok, I will look at it tomorrow then, 3:00AM is too late to deal with them 03:01
carlosand night!!03:01
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: added bug submitter to Cc list when new bug is added (patch-754)03:09
=== BradB|afk is now known as BradB|zzz
stubsabdfl: Do teams have karma?06:44
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Database updates (patch-755)07:06
=== doko [doko@dsl-082-082-070-091.arcor-ip.net] has joined #launchpad
=== ddaa [~ddaa@deep-thought.xlii.org] has left #launchpad []
=== ddaa [~ddaa@deep-thought.xlii.org] has joined #launchpad
sabdflstub: hmm.... good question09:37
sabdflnothing in the data model to prevent that09:37
sabdflbut since teams can't log in, i guess we want to collect karma around the individual09:37
sabdfllifeless: around?09:37
=== ddaa [~ddaa@deep-thought.xlii.org] has joined #launchpad
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
=== Kinnison [~dsilvers@haddenham.pepperfish.net] has joined #launchpad
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Make subject lines in Malone notification emails contain bug IDs (patch-756)10:41
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== cprov [~cprov@] has joined #launchpad
KinnisonMorning cprov12:01
cprovKinnison: morning 12:03
=== Kinnison loads the archive mirror elmo did yesterday and prepares to run gina
Kinnisonso we have nice up-to-date dogfood for today12:10
Kinnisongina running...12:13
cprovKinnison: great !12:16
KinnisonMeeting is in 55 minutes yes?12:38
=== Kinnison wonders if daf will show up this time :-)
stubDogfood was updated yesterday. Do another drop now?12:41
Kinnisoncodebase drop?12:41
Kinnisoncan it wait until gina has finished running?12:42
Kinnisonotherwise you'll be stuck unable to frobble the db or the librarian codebase :-)12:42
Kinnisonspiv: ping?12:42
Kinnisonspiv: this is why I thought we were multithreaded:12:43
Kinnison2004/11/10 11:02 GMT [FileUploadProtocol,0,]  Enabling Multithreading.12:43
sabdflstub: i'm seeing odd test failures where the "bounty" table cannot be found12:44
sabdflbut it seems very much integrated in patch 4-0512:44
sabdflany idea what i'm doing wrong?12:44
stubhave you restarted launchpad after applying the patch?12:45
sabdfli'm just running make in database/schema12:45
sabdflthen running make check at the top level12:45
stubthat should be fine... hmm...12:45
sabdfllaunchpad_dev=# select * from launchpaddatabaserevision;12:47
sabdfl major | minor | patch12:47
sabdfl     4 |     5 |     012:47
sabdfl(1 row)12:47
stubUrgh... bad patch. Made two mistakes! (with the first masking the second!)12:47
spivKinnison: Hmm.01:01
Kinnisoncprov: gina is up to openoffice01:03
spivKinnison: storing files is properly threaded, 01:04
Kinnisonspiv: including writing to the db?01:05
spivWell, only writing to the db :)01:05
spivThe writing to a temp file isn't threaded, because it doesn't need to be.01:05
KinnisonSo if upload is threaded; why would it be hard to thread download?01:05
spivIt's not hard.01:06
elmois there a more idiomatic way to split the last work off a string than: ' '.join(s.split()[:-1] )01:06
KinnisonI got the impression you had decided it was01:06
spivIt just a Simple Matter Of Programming :)01:06
spivWell, it's annoying more than anything else.01:06
SteveAelmo: no01:07
cprovKinnison: fine, I'm trying to set a small librarian upload_client locally, librarian starts ok, but when I try to upload some file I get: canonical.librarian.client.UploadFailed: Server said: 500 Internal server error, any idea ?  do I need to create the DB entires for sourcepackagereleasefile by hand ?01:07
spivcprov: Look in the log file.01:08
spiv(For the server)01:08
Kinnisoncprov: yeah; the log file should contain a traceback01:08
Kinnisoncprov: you most likely haven't given it a dir to write the files into01:08
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Fix bad database patch (patch-757)01:08
SteveAelmo: you could make it very explicit, like this:01:09
SteveA>>> s = "foo bar baz"01:09
SteveA>>> words = s.split()01:09
SteveA>>> words.pop()01:09
SteveA>>> s = ' '.join(words)01:09
SteveA>>> s01:09
SteveA'foo bar'01:09
cprovspiv: yep, sqlobject/dbconnect.py lineline 507, in iterSelect | select, keepConnection=True)) | exceptions.TypeError: iteration over non-sequence01:10
ddaaSteveA: is there a particular policy that all "make check" test should be run with a PYTHONPATH which include launchpad/lib?01:10
elmoSteveA: hmm, ok, thanks01:10
SteveAddaa: the stuff that I have added to make check arranges its own sys.path01:10
ddaaSteveA: that is forcing an annoyingly trivial delta between the canonical and public versions of PyArch, which does not depend on anything else in launchpad.01:10
SteveAin general, stuff that you run as a script, or that is invoked directly by a makefile, can set sys.path properly01:10
SteveAwhat exactly is forcing the difference?01:11
spivcprov: Do you have the latest SQLObject? (rocketfuel@canonical.com/sqlobject--test--0.6--patch-4)01:11
ddaaThat's the delta between Canonical and public.01:11
ddaaI am not too sure why I added in the first place, but there might have been a good reaon.01:11
SteveAddaa: running make check from the 'launchpad' directory does not need a special pythonpath to be set01:12
cprovspiv: I must verify, maybe not, just a minute01:12
ddaaSteveA: actually, that's to run make check from the sourcecode/pyarch directory01:12
spivcprov: Otherwise, I'll need to see more of the traceback...01:12
ddaaBut that's needless, since it does not depend on anything there...01:12
ddaaJust want to be sure removing that would not break some policy.01:13
SteveAI don't see why we should be using a separate version of pyarch, seeing as it lives in launchpad/sourcecode/01:13
stub'make check' shouldn't need python path manipulation being done, because I hacked test.py  to add lib into the path01:13
=== ddaa happily syncs canonical pyarch with the public version
dilysMerge to rocketfuel@canonical.com/pyarch--devel--0.5: merge test suite refactoring (still incomplete) (patch-52)01:19
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
SteveAhi carlos01:20
SteveAcarlos: there is still a stub.{py,zcml} in rosetta01:20
SteveAand comments refering to sql in configure.zcml01:20
carlosshould stub.* files be removed?01:21
cprovspiv: my tree (sourcecode/sqlobject) is up to date, please look in http://jeffsblog.info/pastebin/pastebin.php?show=24001:21
SteveAand various obselete crap in the Makefile01:21
carlosI think daf wanted to preserve them (not sure if it's still valid after the big movement of files...)01:21
SteveAlet's get rid of them01:21
SteveAif stuff isn't being used, we should remove it01:22
SteveAif stuff isn't being tested, we should write tests for it, or remove it.01:22
SteveAit will always be available in the archive's history01:22
Kinnisonelmo: can you refresh the archive on mawson?01:22
Kinnisonelmo: I think you caught it mid-xorg upload01:23
SteveAit is important to have clean code, clean source directories, and up to date comments01:23
KinnisonIOError: [Errno 2]  No such file or directory: '/srv/archive.ubuntu.com/ubuntu//pool/main/x/xorg/xfree86-common_6.8.1-1ubuntu1_all.deb'01:23
SteveAdid you and daf look at the i18n information I sent to you before I went on vacation?01:23
spivcprov: Hmm, there's something funny going on.01:23
carlosSteveA: daf was looking on it, not sure its current status at this moment01:24
cprovspiv: what :)01:24
elmoKinnison: nah, the archive probably was actually like that01:24
spivcprov: line 507 of lib/sqlobject/dbconnection.py seems to wrong.  Are you *sure* it's up to date? :)01:24
elmobut i'll update it anyway01:24
Kinnisonelmo: thanks dude.01:25
SteveAcarlos: we need to move along with this.  rosetta needs to lead the way in being internationalized01:25
SteveAthen, we'll be able to dogfood on rosetta as well as alpha testing it with a few volunteers01:25
=== SteveA will bbiab
=== Kinnison heads to grab lunch before the meeting starts
cprovspiv: not sure, tla update in sourcecode/sqlobject says that01:26
spivcprov: What's the tree-version?01:26
spivThat's not up to date?01:27
spivI mean,01:27
spivThat's not up to date :)01:27
carlosSteveA: hmm, something is going really bad in the alpha server01:27
spivWe're using --0.6 now.01:27
carlosI get system error with every url I try to visit01:27
cprovspiv: ehe, so can you drive me to update it ...01:27
spivcprov: Do you have baz installed?01:28
cprovspiv: no yet01:28
spivcprov: If so, you should just be able to run "baz switch rocketfuel@canonical.com/sqlobject--test--0.6" in sourcecode/sqlobject01:29
=== BradB|zzz is now known as BradB
spivcprov: I recommend it :)01:29
spiv"baz diff" is much easier to type than "tla changes --diffs" :)01:29
SteveAis baz in hoary?01:30
carlosSteveA: not yet (or I don't see it)01:30
cprovspiv: ok, I will install it, then do "switch" to --0.6 ... just some minutes :)01:30
SteveAmeeting time folks!01:31
spivSteveA: I use deb http://bazaar.canonical.com/packages/debs ./01:31
=== Kinnison waves. I'm here
SteveAall not present say "nay!"01:32
spivn-- oh. :)01:32
SteveAI can see you here, carlos01:32
SteveAok, all present, please say something01:32
=== SteveA says something
carlosI didn't saw the "not" :-P01:32
spivDamn trick questions :)01:33
=== Kinnison waves. I'm still here :-)
cprovspiv: we can talk briefly about the sqlobject update after meeting, ok ?01:33
SteveAstub: ?01:33
SteveAdaf: ?01:33
SteveAsabdfl: ?01:33
sabdflim here01:33
spivcprov: Sure.01:34
SteveAlet's get started01:34
=== debonzi [~debonzi@] has joined #launchpad
SteveAitem 1: UI widgets that cope with people and projects etc.01:35
SteveAwhat should we do about this?01:36
SteveAthere are a couple of different options.01:36
sabdflthis is now critical to get malone usable01:36
sabdflbradb, would you agree?01:36
sabdflwe have a couple of options01:36
sabdflon the people front, we could use a well-sorted dropdown listbox that only lists people with passwords01:37
sabdflso you could only assign a bug to someone with a password in the system01:37
sabdflthat would reduce the list dramatically01:37
sabdfland make a dropdown sufficient01:37
SteveAthis will still be an interim measure, as we expect to grow a lot01:37
sabdflcan anyone think of cases where such a measure would fail us?01:38
sabdflfor example, where you want to assign a bug to someone who is NOT a canonical user?01:38
stubProduct bug assignments will get assigned to the developers01:38
stubI think we need to cope with thousands of options, just like the other problem widgets01:39
SteveAisn't it a bit rude to assign someone a bug when they can't log into the system?01:39
BradBSteveA: it's a bit practical01:40
BradBit doesn't seem out of the realm of possibility to me01:40
carlosSteveA: but they will be able to log into it if they activate their account, right?01:40
sabdflstub: sure, we need t be able to handle the full case, i'm just trying to find a way to get malone usable by the warty team asap01:40
sabdflhoary team, really01:41
sabdflfor packages and products, i don't thnk a straight dd-listbox would be workable01:41
=== kiko [~kiko@200-206-134-238.async.com.br] has joined #launchpad
SteveAwhat are our options?  1. reduce the number of people we need to select from (as an interim measure)  2. use a cached javascript datastructure (slightly longer term interim measure)  3. fancy javascript HTTP stuff to dynamically search people on a single page01:42
stubsabdfl: Short term the dropdown should be fine then.01:42
sabdflfor people, yes01:42
SteveA4. type in thing like in bugzilla01:43
carlosI like the current Bugzilla solution01:43
Kinnisonis that not a cached javascript thing?01:43
sabdflstevea: limi did some tests on the current bugzilla code01:44
sabdflit doesn't scale beyond about 2,000 items01:44
BradBsabdfl: surely it can be made to be though.01:44
sabdflit also does not really allow you to search for anything other than a flat namespace01:44
sabdflBradB: not easily01:44
sabdflyou end up downloading a huge page (which takes time) and then get---a---very-----jerky-----typing----experience01:44
!lilo:*! Hi all. Reminder, if you're in the US and you want to attend the second day of the FTC's email authentication summit by phone, it begins in about 45 minutes, and the conference info is here: http://www.ftc.gov/bcp/workshops/e-authentication/ .... thanks!01:45
carlosI'm talking about the entry that is submitted and then in a new form shows you the people that match that name, not the product thing01:45
BradBdepending on the definition of "not easily" a good combo box is definitely something that would be music to users' ears01:45
sabdfli would really like to have something slick using lucene client side, but we dont have the skills inhouse to tackle that01:45
kikocarlos, that's user matching, and it works in a quite ingenious fashion.01:45
elmo[it doesn't scale as it is now - reporting a bug is painful - it loads > 500kb of crap just so you can enter the component field] 01:45
stub4. Use popup search dialogs01:46
!lilo:*! And please feel free to join us on ##ftc-summit (please note the two #'s).... thanks!01:46
SteveAI think for the people field, we've agreed that limiting people to those who can log in is sufficient for right now.01:46
sabdfllimi's recommendation was to do an xmlrpc query in javascript01:46
sabdflSteveA: agreed01:47
spivcarlos: Yes, I like that too.01:47
sabdflwho knows JavaScript around here?01:47
SteveA(technical issue: easier to do an HTTP GET, better for authentication and sessions, requires less javascript, and achieves the same end.)01:47
sabdflspiv, carlos, where can i see the bugzilla example?01:48
spivcarlos: Although it's not very discoverable :/01:48
SteveAI know a bit.  It is a bit rusty, but I've done this kind of dynamic stuff before.01:48
sabdflstevea: so the JS does an HTTP GET or POST, to a known URL?01:48
carlossabdfl: add someone to the CC field of any bug01:48
SteveAthe bugger is always in the cross-browser testing01:48
spivsabdfl: Add "Daniel" as an assignment or CC, it should then prompt on the next page.01:49
carlossabdfl: and type just "Mark" 01:49
carlossabdfl: it will give you a list of users with that name01:49
spiv(Or any ambiguous name.  If there's only one match, it'll pick it automatically though)01:49
SteveAsabdfl: yes, that's right.  and it returns something the js can handle.  either an xml doc, or some text, or some js. 01:49
SteveAthe known url might be relative to the current one, for example.01:49
sabdflthis sounds quite manageable01:50
sabdflneed to design the query interface01:50
sabdfland the response data structure01:50
sabdfland then make it look relatively good01:50
sabdflwould xml be the best structured data format for JS to parse?01:51
kikonot really.01:51
kikothe best structured data format would be, well, a JS array.01:51
sabdflwhat would you recommend, kiko?01:51
sabdflok, so we can send back an actual JS datastructure?01:52
SteveAdepends.  if it is just a list of names, or names and email addresses, then some js or space delimited text is best01:52
kikosure, we could just return a .js file and eval it.01:52
sabdflfor people, would be browsername, name and email addresses01:52
sabdfleval... is that how you would return a JS array?01:53
SteveAthat's how you get returned JS from the server incorporated into the JS runtime of the page01:53
SteveAso that you can use it in the page01:53
SteveAthen you need to do some DOM stuff to make the UI display change01:53
KinnisonI take it that we're not able to wait for hoaryconf for implementing this? Otherwise I'd offer to bring my javascript and dhtml references to the conference01:54
sabdflso, should we divide this problem up between us, or assign it all to one person01:54
SteveAit is pretty straightforward, so long as you don't try to do asynchronous stuff01:54
sabdflthis is something we really need asap01:55
=== Kinnison nods
sabdflSteveA: how do you want to organise this to get it done01:56
=== SteveA considers
SteveAlet's make a one-page prototype of it, to prove the concept in launchpad01:57
SteveAif no-one else feels particularly attracted to the task, I'll take it on.  Volunteers who know some javascript welcome, though.01:57
=== SteveA waits for calls of "no wait, I'll do it"
sabdflbradb, can you make the "person" dropdown limit itself to people with passwords?01:58
SteveAok, I'll do it.01:58
carlosSteveA: I need to learn javascript first, long ago since last time I used it01:58
BradBsabdfl: yes01:58
SteveAhow many different browsers do we have available to test this with? 01:59
sabdflfirefox and ie01:59
carlosSteveA: I can test it with explorer for mac, safari01:59
stubI've got a Windows partition01:59
carlosand also explorer 5 and 601:59
carlosand of course firefox/mozilla :-)02:00
SteveAI don't know whether the HTTP stuff in javascript works outside of mozilla and IE-based browsers02:00
SteveAit didn't a while ago.02:00
!lilo:*! l-fy tells us that after 5 months of hard work, YATE 0.8.4 is now out.... YATE is Yet Another Telephony Engine .... for more information, see http://yate.null.ro/pmwiki/ .... thanks!02:00
kikothere is indeed a client-side concern02:00
sabdflkiko: what's that?02:00
Kinnisonwhat if they user has javascript disabled?02:00
Kinnisonor set to disallow outgoing javascript connections?02:01
stubSafari doesn't have xml/xmlrpc stuff. I think it is fine for HTTP stuff.02:01
SteveAthey'd have to type in email addresses from memory, perhaps02:01
kikowhether the browser supports the JS we want to use. we can sniff and disable it, but we need to take into account that some people won't be able to use it (lynx users, anyone?)02:01
kikothat's fine if it works. just need to ensure it does.02:01
sabdflthe other way to do this would be with wizards02:02
sabdflwhere the form has to be submitted several times to get what you want02:02
stubI think fallback to no-js browsers should be a secondary consideration - we need a system *some* people can use at least, and can work on a system *everyone* can use later.02:02
sabdflhas anybody got experience with zope3 wizards?02:03
SteveAthere will always be the HCT-style tools for non-JS folks02:03
SteveAwho really want to use the command line02:03
stubI wrote the Z3 wizard code, which may still work, but I don't think it is what you want in this situation.02:03
=== salgado [~salgado@200-206-134-238.async.com.br] has joined #launchpad
SteveAAre we done on large-collections-of-things-selectors?02:05
BradBSteveA: will your demo include multi-selection?02:05
SteveAI'll do a proof-of-concept dynamic JS thing, Brad can make a list of people who can log in02:06
stubSteveA: Let me know if it is going to be a slow job. I can rip out the 'popup search' logic from Roundup if necessary.02:06
stub(which is a suckier UI, but simpler to implement)02:06
SteveABradB: is this stuff a reasonable target for what you want?  http://plone.org/Members/limi/tests/ubersearchwidget02:07
sabdflshould we just use popup for the moment, if it's much simpler?02:07
sabdflwe have longer to get it right, need to get it out there sooner02:07
BradBSteveA: i commented on that to the list last week. i'm not a huge fan of the way it's described in that page. it seems that what we've just discussed is a different, more usable approach.02:08
sabdflthat early draft looked crap. alex did a lot of work on it while he was here02:08
SteveAwhere is alex's latest work on that?02:08
sabdflBradB: you mean, the http get approach?02:08
BradBsabdfl: no, the layout and selection of the results is really cumbersome.02:09
kikoit's a lot of real estate.02:09
SteveAstub: can you get the pop-up stuff working soon?02:09
stubsabdfl: I'll try knocking something up quickly tomorrow - if it works happily the popup idea man be useful in the future even after the JS version replaces it for the product/sourcepackage selects02:09
sabdflBradB: i agree if you are saying the ubersearchwidget looks cumbersome02:10
BradByep, that's what i'm saying :)02:10
SteveAI think if we get something like what alex proposed, we can mess around with the UI of it later.  it is the "workflow" if it that I'm most concerned about getting to work.02:10
sabdflwould this all be inside a form field in the actual form?02:12
SteveAthe dynamic stuff?  yes, although the JS for it would probably live in a file included in the standard page header02:13
kikothis is precisely my and Brad's point -- do we need to redesign the pages to accomodate for this search form?02:13
kikooh. that's something else :)02:13
SteveAthe search form to select a person ought to be just one rather large widget02:14
=== stub [~stub@dsl-] has left #launchpad []
=== stub [~stub@dsl-] has joined #launchpad
SteveAas far as zope forms are concerned02:14
sabdfldid we establish if there's a way to pass information to widgets to help them display themselves?02:14
BradBSteveA: eeg, i hope not :) that takes way too much effort.02:15
sabdflcanyou have forms within forms?02:15
sabdflthat sounds nasty02:15
Kinnisonsabdfl: IIRC no you can't nest <form>s02:15
SteveABradB: that doesn't mean that you *have* to use it that way.  But, that it can be used that way.02:15
BradBSteveA: considering that when you add a bug you currently have three values that need choosing from large lists.02:15
kikoKinnison, you are indeed correct.02:15
sabdflBradB: so, do you think it should be a wizard?02:15
BradBsabdfl: no. wizards are meant for things that are done rarely enough that one needs handholding to complete the process. they hurt power users.02:16
BradBi like the popup idea for this.02:16
sabdflpopups are going to be hated on principle02:16
SteveAbrowsers handle this kind of pop up fairly well -- they are directly initiated from a mouse click02:17
kikowell, unless we get the w3c to speed up and the feature implemented in at least FF...02:17
BradBit seems to take the silver medal to a combo box02:17
SteveAso mozilla knows they are legitimate02:17
stubWe implemented the popup stuff for Roundup at Common Ground - seems to be quite well accepted. People are aware that there might be slicker ways of doing it, but are happy using the popups.02:17
sabdflok, let's go with popups for the first round02:18
spivI've never had the roundup one break due to mozilla's popup blocking.02:18
sabdflthat at least keeps the form tight02:18
kikoI think it's the only realy solution that is cheap on real estate and familiar enough to use.02:18
sabdflbecause it doesn't take a log of space to display the person, product or package that has been selected02:18
SteveAdoes gmail have any tricks we can "borrow" ?02:19
sabdfli shudder at thinking about bending zope3 auto-form widgetry to our will on this02:19
sabdflis it not better to have some Python code that generates the HTML that we can call?02:19
SteveAthe HTML of the pop-up?02:20
BradBsabdfl: the deliverable should be a new kind of Z3 widget. once we've figured out how to solve this in a prototype, it should be easy to genericize as a Z3 widgete.02:20
BradBwidget, even02:20
sabdflthen have a <div tal:replace="structure view/makeWidget">02:20
SteveAthat would be a separate view altogether, as it is a page on its own02:20
SteveAsabdfl: we can do that, if it is easier.02:21
BradBit'll be the same as any other Z3 widget really (except it'll take different init params, of course)02:21
SteveAI'd like us to review what we have decided about people and package selectors, and then move on.02:22
sabdfli'm talking about the forms that have these selectors on them02:22
sabdflare we going to try to make them work well with the autogenerated forms?02:22
BradBsabdfl: yeah, that's what i'm saying. this'll be a widget like any other. (why wouldn't it be, afterall?)02:23
SteveAit isn't hard -- they take the same input from a browser as any other widget that handles the same kind of data02:23
SteveAthis is just overriding the presentation of the data02:23
SteveAas far as the code is concerned02:23
sabdflSteveA: let's pick up the pace of this meeting02:24
SteveAthe complex icky parts of a widget are those that handle form data sent by the browser02:24
SteveAI'd like us to review what we have decided about people and package selectors, and then move on.  (restated)02:24
SteveA1. brad will make a people-who-can-log-in selection02:24
SteveA2. stub will work on a pop-up people/packages selector02:24
sabdflok, some net weirdness, y'all disappeared02:25
SteveA3. steve will do a proof-of-concept-js thing02:25
SteveAall done?02:25
SteveAdogfood:  how is it going?02:26
SteveAall new bugs shoudl be filed in dogfood malone now, right Brad?02:26
Kinnisoncan dogfood malone email people now?02:26
BradBSteveA: *have* to be :) i got jdub to disable the lp product in bugzilla02:26
BradBKinnison: yes02:26
carloskiko: yes, I got already some mails02:26
kikoare we migrating bugs from bz?02:26
BradBdilys integration should happen todayish02:27
sabdfldo we have the bug watch updater running on mawson?02:27
BradBkiko: i filed a bug for that. it's probably a topic for the next or next-next meeting02:27
sabdflso we can set watches on bugzilla bugs?02:27
=== BradB doesn't know anything about that. stub?
stubNo - I pinged elmo about basic auth but didn't chase it through.02:28
stubWatches are up and running, but our own bugzilla is problematic because of security (erm... not basic auth... SSL certificate I think?)02:29
SteveAcan we not allow things based on ip address in this case?02:29
elmostub: huh?02:29
SteveAmawson has an "intranet" ip address wrt the bugzilla02:29
BradBbugzilla watching is of very low priority to be honest. we're dogfooding, so even if it worked perfectly, you wouldn't know.02:30
stubelmo: mawson needs to access the canonical bugzilla without a client certificate or basic auth.02:30
BradBof high priority is bug resolution workflow, because people are going to go in and fix bugs that i've already fixed.02:30
stubSteveA: Oh - if "intranet" access means no cert or basic auth required, it should be working right now.02:31
elmostub: it doesn't use client cert or basic auth (via apache), the auth is done on the bugzilla side?02:32
SteveAstub: I'm making a suggestion that mandatory authentication in bugzilla could be turned off for requests originating at mawson.02:33
BradBare we sure we want to discuss bugzilla watching in this meeting? :)02:33
SteveAyes.  can we have bugzilla watching soon?02:33
sabdflwatching is a neat way to transition to malone02:33
SteveAI'm not really too bothered about the details02:33
stubelmo: bugzilla.warthogs.hbd.com is publicly available?02:34
kikoAFAIK it is02:34
SteveAhow about stub and elmo and brad can sort out bugzilla watching after the meeting?02:34
sabdflelmo: the goal is for malone on mawson to be able to check the status of bugzilla bugs without needting to do client cert or basic auth02:34
SteveAdaf: ping02:35
elmostub: yes - but bugzilla won't let you see anything until you login02:35
dafSteveA: pong02:35
sabdflhiya daf02:35
stubeek.... how embarassing... all those bugs are open to the world ;)02:35
dafsabdfl: hi02:35
BradBSteveA: it was something i wasn't planning to think about until a week from now. my time is probably better spent making it possible to resolve bugs, right? :)02:35
stubok. Watches should be available right now on our internal bugzillas, and if it don't work it is a bug and should be reported!02:35
SteveAdaf and carlos: would you talk about getting rosetta to use the dogfood system?02:36
sabdflbradb - can you not resolve a bug by editing the assignment to mark it "closed"?02:36
Kinnison<interjection style="prof. farnsworth">Good news people! Gina just completed an update to today's hoary</interjection>02:36
dafSteveA: sure02:36
sabdflKinnison: rock02:36
BradBsabdfl: kind of...there's no filtering though, so it doesn't buy you a heck of a lot (the amount of effort to actually find if something you're about to report has already been reported, and then from there already been resolved is enough to call it unusable.)02:37
elmostub: eh, which bugzilla are you looking at?02:38
BradBsabdfl: and also, what if the bug is "closed", but there's still two package infestations saying "affected"? do we still show the package maintainer those in the bug listing?02:38
SteveABradB: I wasn't clear.  By "sort out bugzilla watching", I meant "sort out how we're going to go about it, and write a message to that effect to the mailing list"02:38
sabdflbradb good point02:38
BradBSteveA: ok02:39
SteveAI'd like to defer discussion particular to malone to a malone meeting sometime after this meeting02:39
SteveAas we are rather dragging on today02:39
sabdflBradB: mdz wanted a "pending upload" state02:39
sabdflfor the assignment02:39
sabdflmaybe we should change "closed" to "pending upload"02:40
BradBSteveA: the sanity of bug workflow though depends on the people that are using it, so we need input not only "also", but rather "especially" from not-malone people. :)02:40
sabdflthen add a field to point at the "fixed" package02:40
sabdflso "pending upload" is basically "closed" without a fixing package02:40
sabdflSteveA: ok02:41
BradBsabdfl: we need closed though.02:41
SteveABradB: sure, but we can continue that after the other stuff in this meeting02:41
SteveAdaf and carlos02:41
BradBSteveA: sure02:41
sabdflbut you're right, there is a problem with a bug marked "closed" without a package that closes it02:41
SteveAwhat are you going to do to get rosetta on the dogfood system?02:42
SteveAwhat help do you need from others?02:42
SteveAhow long will it take?02:42
carlosafter the launchpad's mails we can assume then that our alpha testers will use the dogfood sytem, right?02:42
SteveAwhen you're done movingn it, yes02:42
SteveAalthough, the domain name they use will be the same as it is now02:43
sabdflsame db, same code, different domain02:43
sabdflneed to (a) move user accounts, (b) move PO/POT files02:43
SteveAI need a list of the things that are "particular" to the rosetta alpha system02:43
dafthe trickiest bit as far as I can see, is hiding Malone and Soyuz from the testers02:43
dafperhaps we can do this using layers02:44
SteveAsuch as having a custom front page, or whatever02:44
sabdflwe need to solve that problem anyhow02:44
sabdflmaybe we should solve it properly now02:44
stubCan we just run multiple launchpad instances talking to the same database?02:44
SteveAdaf: I think that should be as simple as using the correct virtual hosting proxy rule02:44
SteveAstub: we can, but I'd rather not do so if they are to have different code on them.02:44
SteveAthe code should be exactly the same02:45
dafSteveA: really?02:45
dafSteveA: how will it know to hide the tabs?02:45
stubSteveA: Sure. A code drop would mean updating two codebases rather than one.02:45
SteveAdaf: get me the list of what is significantly "forked" in the code, and we'll work through it02:45
dafI think it's mainly the main template02:45
SteveAstub: we'd need to start thinking about ZEO if there was a round-robin/load balancing involved.  For different domains, no problem with our current use of ZODB.02:46
SteveAdaf: ok, we can fix that with layers.02:46
sabdflwould it be easier if we just publish everything at launchpad.ubuntu.com?02:46
SteveAthen fix it properly when I've done the context stuff discussed yesterday02:46
carlossabdfl: then all alpha testers will have access to all applications, is that what we want?02:47
SteveAsabdfl: that doesn't make anything easier02:47
sabdfluse some sort of client-cert bsaed filtering to block access to directories other than /rosetta/ for the rosetta testers02:47
sabdflSteveA: ok, will leave it in your hands02:47
SteveAdaf: so, as a matter of priority, make the appropriate change on the rosetta layer of the main launchpad code02:48
sabdfli'm wondering whether we want to have people think of them each as distinct, or as a single system02:48
SteveAdaf: is there anything else in the code that needs changing ?02:48
dafSteveA: other than that, it's changing the database and the ports used, I think02:48
sabdflfor example, for an upstream project foo.org, do we want them to just setup launchpad.foo.org and get bugs/bounties/translations/packages/support all in one02:48
sabdflor do we want them to setup rosetta.foo.org and malone.foo.org etc.02:48
SteveAdaf: ok.  Can you do the template change today, and start working on the moving of user accounts and product imports and po/pot export-import ?02:49
SteveAdaf: please stick up a wiki page with the list of tasks for getting rosetta using the dogfood system, estimate them, then start them02:50
carlosSteveA: do we have a cron jobs policy?02:50
carlosSteveA: we will need something like that to feed the database02:50
carloswith updated translations02:50
dafcarlos: but we don't need that yet, do we?02:50
carloslaunchpad dogfood server has lots of products already02:51
SteveAdo you have that on rosetta alpha already?02:51
carlosand if we want to add their translations.. I hope we don't do it by hand02:51
carlosnot yet02:51
!lilo:*! Hi all. Reminder, if you're in the US and you want to attend the second day of the FTC's email authentication summit by phone, it begins in about 45 minutes, and the conference info is here: http://www.ftc.gov/bcp/workshops/e-authentication/ .... and please stop by ##ftc-summit (note two #'s).... thanks!02:51
SteveAso it is a separate task, after getting rosetta alpha running on the dogfood system02:51
!lilo:*! Actually, the conference has started now, please check the url for information on how to connect02:51
carlosbut the script is almost ready (need to do some code refactoring)02:51
kikosabdfl, launchpad.foo.org makes things a lot easier, IMO, and preserves the "launchpad brand"02:51
SteveAit should not delay getting rosetta to use the dogfood system02:51
stubsabdfl: If they have malone.foo.org and rosetta.foo.org, they will also need foaf.foo.org (or else foaf would have to be available under both malone.foo.org and rosetta.foo.org)02:51
kikoI would love not having a soyuz virtualhost.02:51
kiko(because that means a virtualhost for each service)02:52
dafcarlos: well, updating translations by cron job is not the same as importing02:52
SteveAdaf: let me know when the wiki page is done, okay?02:52
kikovirtualhosts could be used to redirect into lp.../soyuz/ if the client wanted so02:52
carlosdaf: the update can also do the import automatically02:52
sabdflok, and launchpad.foo.org we could get working a LOT sooner02:52
sabdflalso simplifies URL's, since everything is then in a fixed structure02:52
sabdfland if we needed the separate virtual host thing, we can develop it later02:53
dafSteveA: sure02:54
SteveAso long as there is an easy API to get the public URL of something, it should be easy to change our minds later02:54
kikoas I said, it complicates URLs significantly; I'd rather soyuz.launchpad.org -> www.launchpad.org/soyuz automagically. and *that* be sold as the vhosting solution.02:54
dafcarlos: hmm, is an update really the same as the import?02:54
carlossabdfl: what happens with our current alpha test domain? a forward to launchpad.shuttleworthfoundation.org/ ?02:54
Kinnisonkiko: I agree02:54
SteveAI suggest to keep the rosetta alpha as it is, from the outside02:54
kikobecause you also need to consider02:54
kikowhat if the person doesn't want a foaf.foo.org?02:55
carlosdaf: as we are not creating new products/projects and we use soyuz information, yes02:55
kikoor rosetta.foo.org?02:55
sabdflkiko: what complicates url's?02:55
kikovirtualhosting projects independently, sabdfl02:55
kiko(even if it is in the future)02:55
dafcarlos: we still need to create PO templates02:55
sabdflprojects being.... rosetta, malone, or projects being the upstream domains?02:55
kikorosetta, malone and soyuz and foaf and doap and ... (you get the picture :)02:56
=== SteveA wonders about calling them "launchplatforms"
sabdflbut you are ok with an upstream project being able to create launchpad.upstream.org and have us handle that02:56
=== SteveA thinks he's being silly
kikosabdfl, yes, definitely, that's perfect.02:56
sabdflthe answer seems to be different for soyuz02:57
carlosdaf: true, is it a problem to create it if needed on update time?, a module could add a new domain so we will need to create a new template for an old product02:57
sabdfli mean, soyuz WANTS to have a distro context02:57
stubsabdfl: It means that if someone jumps from launchpad.upstream.org to  launchpad.ubuntu.com, they will need to login a second time since the cookies cannot be shared cross domains.02:57
kikosabdfl, but soyuz links to rosetta and malone internally. and then?02:58
dilysBug 1949 resolved: first input field should be focused when translation page loads02:58
SteveAstub: the single-sign-on stuff can fix that easily enough.  it would be a couple of instant re-directs on going to the new site.02:58
sabdflstub: we do have a solution to that, i think02:58
sabdflnice work daf02:58
stubsabdfl: It also complicates the issue of what URL to put in emails - launchpad.upsteam.org/malone/bug/65 or launchpad.ubuntu.com/malone/bug/6502:58
dafsabdfl: the code will work for any form that uses tabindexes correctly02:58
sabdflstub: good point02:59
dafcarlos: I'm not sure -- is there any extra information needed?02:59
stubSteveA: Sucky because you have to use javascript redirects03:00
SteveAstub: no, not javascript redirects03:00
stubSteveA: Also doesn't scale if we end up with a few hundred virtual hosted launchpads.03:00
carlosdaf: don't think so, we could use names like "main-1, main-2, main-3...." and rename it later by hand and get them based on their path inside the source code03:00
SteveAstub: don't see why not.  but, I think we're talking about different things.03:01
carlosdaf: or we could even try to get the domain name for that po directory03:01
SteveAdo we have a decision on what to do about choosing virtual hosts for the present?03:01
dafcarlos: hmm, that's a bit smelly03:01
dafcarlos: let's add a form for creating new templates, and use that03:02
carlosdaf: I know it's not perfect03:02
sabdflSteveA: lets discuss it, you and i, after this meeting03:02
SteveAI'd like to move on to karma03:02
carloswill you add by hand all templates we have in hoary/warty?03:02
SteveAthere was a discussion about karma yesterday03:02
carlosthat's a huge work load...03:02
SteveAand adding this kind of thing to the database03:02
SteveAhow's that all going?03:02
sabdflcarlos: we can't try to scale up rosetta till we can automate large amounts of it03:03
sabdflthe arch guys have made some good progress with getting code syncing03:03
sabdflin december we can plan how to hook that automatically into rosetta03:03
sabdflso once an upstream is syncing to arch, we can easily add it to rosetta03:04
carlossabdfl: I have solved (more or less) the lack of arch archives03:04
carlosso that's not the problem03:04
carloswith python-apt (or whatever it's called)03:04
carlosand now, using soyuz data03:05
carlosI get the information from where I can download the orig.tar.gz + diffs + .dsc 03:05
carlosI download it and extract it03:05
carlosand I'm ready to find the .po/.pot directories 03:06
carlosand import them into rosetta03:06
SteveAI'm hoping for an email to the list outlining the plan for karma stuff, as this will touch various parts of launchpad in due course.03:06
Kinnisoncarlos: are you extracting those from the librarian?03:07
carlosIt needs to add the distribution archives by hand, but more or lees it's a help until we finish the arch part03:07
SteveACookie auth should be working by tomorrow.  I'm not wholy sure how this will affect page tests, so for now, page tests will continue to use basic auth.03:07
SteveAAny other things to discuss at this launchpad meeting? 03:07
carlosKinnison: not yet, in fact I'm starting moving from apt-get to soyuz03:07
SteveAIf not, let's finish.03:07
Kinnisoncarlos: when you want to use the librarian; let me know03:08
carlosKinnison: is there any documentation about it? :-P03:08
KinnisonSteveA: I just want to ask if elmo could open port 8000 up to the outside world for us?03:08
Kinnisoncarlos: Not yet :-)03:08
sabdflspiv: whats the current position on having a status field on project / product?03:08
Kinnisoncarlos: If I can gather some use-cases from you and the others; I could write some03:08
dafSteveA: so cookie auth will work in addition to basic auth rather than replacing it?03:08
SteveAdaf: yes, at least for now03:08
KinnisonSteveA: so soyuz can provide links directly to the librarian instead of having to act as a proxy to download from it03:09
carlosKinnison: ok03:09
dafcarlos: for now, I think you'll just have to probe Kinnison's brain03:09
Kinnisonmmmm cranial probage03:09
SteveAKinnison: can we do a proxy pass thing so that /downloads/... on the server is for the librarian?03:09
KinnisonSteveA: yes; but then soyuz will have to manipulate the URLs it gets from the FileDownloadClient instance03:09
carlossabdfl: ouside the meeting scope, I have some questions about launchpad, I will give a speech tomorrow that will mention it and I'm not sure what should be said and what should not 03:10
SteveAI expect it will have to do so anyway, in reality03:10
carlosdaf: :-)03:10
KinnisonSteveA: in that case; it'd be fine to do it proxy_pass03:10
sabdflcarlos: go ahead and make your own judgement03:10
SteveAKinnison: I think that's the kind of url we'd want to present to the outside world, rather than a port 8000 thing03:11
sabdflcarlos: you can speak freely03:11
KinnisonSteveA: ack.03:11
carlossabdfl: ok, and about the "prize" of it? I mean, I don't know if it will be free of charge for all people or only to the community, etc... 03:11
KinnisonSteveA: Should I add a getURIForAlias() method then? To only return the URI03:11
KinnisonSteveA: then soyuz can composite that with its url to form the full url for download03:11
carlosthere will be many people working on local distributions in Spain03:11
SteveAKinnison: you mean the path?03:11
sabdflrosetta, malone will be free of charge for any project to use03:11
KinnisonSteveA: yes03:12
SteveAgetPathForAlias or getURLPathForAlias ?03:12
KinnisonThe former I think I prefer03:12
=== Kinnison will code that
KinnisonIt'll be very short03:12
carlossabdfl: ok03:12
SteveAand we can have a convention that it will always be /downloads/... on any virtual host03:12
SteveAor /files/ or whatever you think is best03:12
Kinnisonthat's up to the web-app guys :-)03:13
SteveAwrapping up the meeting?  Same time next week -- wednesday 12:30 UTC ?03:13
carlosSteveA: ok03:14
SteveAthanks everyone.  I'll send a mail about the next meeting.03:14
dafthanks, Steve03:15
carlosdaf: do we need to talk about anything urgent now?03:16
dafcarlos: we need to talk about the move, but it can wait for a few hours03:17
carlosI need to have lunch and go out for a while03:17
carlosas soon as I'm back I will ping you, ok?03:17
carlos(I think that will be in about 2 hours or so)03:17
KinnisonWell; this patch to the librarian compiles03:18
Kinnison(which is always a good start)03:18
carlosok, later03:18
Kinnison>>> fdc = FileDownloadClient("launchpad.ubuntu.com", 8000)03:20
Kinnison>>> fdc.getPathForAlias(1)03:20
KinnisonSteveA: would that do?03:20
KinnisonSteveA: then the webapp can put 'https://....../download' on the front of that as appropriate and we can proxypass the result03:20
=== debonzi is now known as debonzi|lunch
=== salgado is now known as salgado-lunch
elmomaybe I misunderstanding something, but you realise you're going to have to present a traditional archive layout too, right ?03:24
Kinnisonelmo: that's an entirely separate thing03:24
elmook - what's this for then?03:24
SteveAthe webapp can just make the url an abs url as <a href="/downloads/1/1/3dchess_0.8.1-11.dsc">3dchess_0.8.1-11.dsc</a>03:24
elmo'cos serving up an archive via https makes me want to run into a wall03:24
Kinnisonelmo: this is to allow the soyuz webapp to generate urls to specific files in the librarian03:24
Kinnisonelmo: It is not a generic archive-exposing thing03:25
KinnisonSteveA: yeah; that's do03:25
Kinnisonelmo: remember the librarian will also have build-logs and stuff in it03:25
SteveAand, if the url scheme is https, then apache can perm redir to http same url under /downloads/03:25
SteveAif we want to save https stuff.  hmm, I guess that involves the same set-up cost, though03:26
=== doko [doko@dsl-082-082-067-024.arcor-ip.net] has joined #launchpad
SteveAdo clients generally do pipelining of requests for https ?03:26
elmofor stuff in an archive, shouldn't the webapp generate to the URL to the archive, not a librarian-specific URL ?03:26
stubWhy are we trying to munge the URL's the librarian is giving us? It should be returning the one  true URL for that file.03:26
Kinnisonstub: for dogfood we don't want to expose the librarian directly03:26
Kinnisonelmo: When we have a useful place to put the archive; then yes it should03:27
stubKinnison: Then the librarian should be returning the correct URL rather than localhost:8080 or some port that is internal only03:27
dafKinnison: it should expose itself to the public?03:27
elmowe don't want to expose the librarian URLs period, IMO03:27
=== Kinnison has no strong preference either way
dafoh, a prudish librarian03:28
KinnisonI was just supplying a solution as asked :-)03:28
KinnisonSteveA: dunno; but they can do session-restart to save the asymmetric crypto03:29
KinnisonShould I commit this patch or not then?03:33
dafSteveA: https://wiki.canonical.com/RosettaToDogfood03:34
=== kiko is now known as kiko-fud
=== kiko-fud needs to run off
SteveAdaf: write the main template layer first03:41
SteveAthat way the code is ready03:42
SteveAand you just need to get the data transfered03:42
SteveAit shouldn't be "write a layer that overrides the main template", but "override the main template for the rosetta layer"03:42
dafdon't we want the layer only to be used by testers?03:45
SteveAdo it for the whole of rosetta now03:46
SteveAwhen we have the context code done (fairly soon), we'll be able to be more selective03:46
dafwhat's "context" in this context?03:47
SteveAobject that allows you to see what applicaiton, package, product, whatever you're in03:47
SteveAand allows you to get an appropriate URL to present for a given object03:47
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Add getPathForAlias to librarian client (patch-758)03:54
Kinnisonthanks babe.03:54
sabdfldilys rocks04:04
KinnisonShe's certainly very handy04:05
Kinnisonsabdfl: What's your favourite backup media format?04:05
KinnisonTrying to choose a backup method for ca. 200 gigs of data04:06
Kinnison(for home)04:06
KinnisonI can't choose between tape or disk for a start04:06
KinnisonI figured since I remembered some mumbling about your backups at home you might have a preference :-)04:07
=== ddaa grumbles..
ddaaThe Warty python does not seem to have the guts to get a traceback out of gdb...04:10
=== ddaa looks for python 2.4 in hoary
=== ddaa wonders where to look for hoary
!lilo:*! Reminder, if you're in the US and you want to attend the second day of the FTC's email authentication summit by phone, it's in progress and the conference info is here: http://www.ftc.gov/bcp/workshops/e-authentication/ .... and please stop by ##ftc-summit (note two #'s).... thanks!04:11
sabdflKinnison: a second hard drive :-)04:14
Kinnisonsabdfl: feh; I already have RAID-1 going on :-)04:14
=== Kinnison was just being taken-aback at the cost of tape hardware
Kinnisonsabdfl: Will the timings i put in that mail be okay for next wednesday?04:15
ddaaMh... python 2.4 does not seem to be in hoary yet...04:16
Kinnisonsabdfl: excellent04:16
sabdfldaf, carlos, is the alpha testing system supposed to be giving errors all over the show?04:19
=== debonzi|lunch is now known as debonzi
Kinnisonrehi debonzi 04:30
debonziKinnison, yo04:30
cprovspiv: librarian works w/ sqlo--0.6, thanks04:31
cprovKinnison: do you have any dump of dogfood db ? those stored in mawson look a bit strange, they have binary code inside or were corrupted .. am I missing something about dumps ?04:32
Kinnisoncprov: erm; you want a dump of the dogfood db? just make one yourself. (you have sudo right?)04:32
Kinnisoncprov: sudo -u launchpad pg_dump launchpad_dogfood | bzip2 -c > ~/lp-dump.bz204:35
stubThe nightly dumps are in pg_dump's custom format, which can be used by pg_restore to reload. Lets you do partial loads and reordering load order and stuff (because pg_dump is TOO STUPID to get the dump order correct).04:37
KinnisonI guess04:38
=== stub goes to bed before he gets grumpier
Kinnisonnighty stub04:39
stubHave to work on these late nights - I've started ranting on mailing lists. Never a good sign ;)04:40
cprovstub: thanks, I'll try this on with pg_restore04:42
sabdflstub: i'd NEVER be  one to suggest beauty sleep04:44
sabdflhowever, you shouldn't have accepted that patch from me without comments04:44
sabdflwill commit a comments fragment now04:44
=== BradB wonders if there's a pgsql option that prevents adding db objects without comments
BradBmeta constraints, as it were04:45
Kinnisonwe'd get piles of crap comments if we enforced that04:45
BradBKinnison: which would mean piles of scolding email, i guess :P04:45
Kinnisonseems easier to persuade stub to not accept poorly commented patches04:46
BradBSteveA: ping05:00
BradBAnyone know offhand if the test runner is smart enough to treat .txt files as documentation/test code (i.e. doctests :)?05:18
BradBI want to test code in dir foo/, and so I want demonstration in foo/README.txt to get run as doc tests.05:19
BradBs/demonstration/demonstration code/05:19
carlossabdfl: no, I saw it this morning but I don't understand why it does it if the code is not changing nor the database... daf is looking at it already05:24
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: bring bounty tests on stream (patch-759)06:13
=== BradB is now known as BradB|lunch
SteveABradB|lunch: no, it isn't.  you have to explicitly say in a test_something.py module that a particular text file is a test.  There is a test_pages.py module that does that for all .txt files in canonical/launchpad/pagetests/06:50
SteveAI wouldn't like to have just any .txt file treated as a test06:50
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Rosetta functional tests disabled, they were not working and we should improve them (patch-760)07:02
=== kiko-fud is now known as kiko-afk
kiko-afkBradB|lunch, question for you in bug 2167.07:15
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad []
=== BradB|lunch is now known as BradB
BradBSteveA: I want to test that my changes to the PersonVocabulary work. I started writing this as doctest, then realized I sort of need the zope machinery running (e.g. to register an IZopeDatabaseAdapter) to test this. How would you recommend I write a simple test like that? (I could shoehorn it as a page test, but it's nothing near a functional test; all I'm testing is that PersonVocabulary returns the terms I expect.)08:15
BradBkiko-afk: ?08:15
kiko-afkyes BradB?08:15
BradB<kiko-afk>BradB|lunch, question for you in bug 2167.08:16
kiko-afkBradB, right, there's a question -- two actually -- for you, in bug 2167. 08:16
BradBok, /me reads08:16
SteveABradB: why do you need to register an IZopeDatabaseAdapter?  Can't you just register an IPeople or IPersons utility?08:17
SteveAthat's half the point of using utilities here -- to make this kind of test more straightforward08:18
BradBSteveA: It's a vocab that hits the DB.08:18
BradBSteveA: this test is only effective if it proves that noone broke the change i made to only return people who have passwords08:19
SteveAif the vocab were to use IPersonSet...08:20
SteveAthen you'd just need to test that it uses the correct IPersonSet api08:20
SteveAotherwise, you need to write a functional test08:20
SteveAto live in .../ftests08:20
BradBoh well08:20
SteveAdaf: can you add time estimates to here https://wiki.canonical.com/RosettaToDogfood   or link to malone bugs, if there are any ?08:24
SteveAthank you08:30
dafcarlos: what's the ETA on that SQL script?08:30
carloswork in progress08:30
dafestimated time?08:31
daf>>> int("phone")08:32
dafValueError: invalid literal for int(): phone08:32
carlosdaf: I think it will take about 1:3008:37
=== salgado [~salgado@200-206-134-238.async.com.br] has joined #launchpad
carlosideally, only one hour08:37
BradBkiko-afk: i replied. that should give you enough to get started, i think.08:38
carlosdaf: we only have 4 people doing alphatesting...08:55
carlosthe others don't have selected a language...08:55
dafcarlos: hmm, that explains why everyone has been quiet08:56
carlos Philipp von Weitershausen, Dwayne Bailey, Dinu Gherman and Denis Jacquerye08:57
carlosok, my friends suck a lot :-(08:57
carlosnone tested it08:57
SteveAdid you mail godefroid?08:59
dafI ahven't09:00
dafI have two people to add to the testers09:00
dafI'm now planning to add them after we make the move09:01
SteveAgodefroid was keen to have a look.  it is good to respond promptly to keen people09:01
SteveAotherwise their keenness tends to evaporate09:02
sabdfldaf: how difficult is it to get a new POT and set of PO files into rosetta?09:04
dafsabdfl: not very09:04
sabdflcan it be user driven at this stage?09:05
sabdflhmmm.... 09:05
dafthat would be useful09:05
dafthe current model is "you ask for a project and the admins create it for you"09:05
sabdflhow long does it take you to do it currently?09:05
sabdflhow many projects have been asked for?09:06
dafperhaps we should move towards a "you can do it and the admins will fix it if you mess it up"09:06
dafnobody has explicitly asked for projects09:06
=== daf -> food
sabdflright, then let's stick with that till it becomes too much of a bottleneck09:06
SteveAis zope3 in there yet?09:07
SteveAI asked for that09:07
SteveAis plone in there yet?09:07
sabdflin where?09:08
SteveAin rosetta09:09
SteveAin the alpha09:09
SteveAin reply to "nobody has explicitly asked for projects"09:09
sabdflah, right09:09
sabdflok, how do i jump to the *next* matching tag09:14
sabdflctrl-} gets me to the first09:14
sabdflbut that's not the one I want09:14
sabdfl] 09:14
sabdfli want another one09:14
sabdflhow do I get the next one?09:15
SteveAI just use tjump, and select from there09:15
SteveAI've never needed anything more fancy for long enough to find out how09:15
SteveA while on a tag, :tjump09:17
spivsabdfl: :ts  (for tag select)09:23
sabdflthanks guys09:23
sabdflspiv: is there such a thing as an IntervalCol?09:48
sabdflDateTimeCol *sort of* works09:48
sabdflif you don't push it09:48
spivHmm, I think I had some work on this somewhere.09:50
spivAh, it's already integrated.09:53
spivsabdfl: Sadly, no, although it would be nice to fix it.09:53
sabdflso using DateTimeCol and restricting it to days hours minutes seconds works best?09:54
sabdfloh bugger that doesn't work either09:55
sabdflunless you also limit it to a value less than one month09:56
sabdflbecause as soon as the interval is greater than one month, datetimecol freaks out09:56
carlosspiv: I'm having some problems using initZopeless from an script09:58
carlosspiv: It's does all work but it's never committed to the database09:59
carlosspiv: If I don't use begin/commit explicity I get:10:00
carlos/home/carlos/Work/launchpad/lib/canonical/database/sqlbase.py:85: UserWarning: Something tried to set a _connection.  Ignored.10:00
carlos  warnings.warn("Something tried to set a _connection.  Ignored.")10:00
spivcarlos: Are you calling .commit on the transaction manager?10:00
carlosand if I add the begin/commit I get an error10:00
carlossame warning and then:10:01
carlosTraceback (most recent call last):10:01
carlos  File "./import_users.py", line 168, in ?10:01
carlos    ztm.commit()10:01
carlos  File "/home/carlos/Work/dists/launchpad/lib/canonical/database/sqlbase.py", line 214, in commit10:01
carlos    self.manager.get().commit(sub)10:01
carlos  File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/transaction/_transaction.py", line 293, in commit10:01
spivI should probably turn that warning off, it never seems to be a real problem.10:01
carlos    self._commitResources(subtransaction)10:01
carlos  File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/transaction/_transaction.py", line 340, in _commitResources10:01
carlos    rm.tpc_vote(self)10:01
carlos  File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/transaction/_transaction.py", line 629, in tpc_vote10:01
carlos    self._datamanager.prepare(transaction)10:01
carlos  File "/home/carlos/Work/dists/launchpad/lib/sqlos/transaction/__init__.py", line 146, in prepare10:01
carlos    raise TypeError('Already prepared')10:01
carlosTypeError: Already prepared10:01
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: still doing soyuz/people improve and preparing for debonzi's soyuz cleanup (patch-761)10:01
spivCan I look at the script, please? :)10:01
spivI tried to pin down this problem for lifeless earlier, but it disappeared before I could.10:02
spivAnd I can't figure out how to reproduce it intentionally :010:02
carlossent by mail10:02
sabdflspiv: who does psycopgda?10:02
carlosdaf: the script is ready10:03
spivsabdfl: I'm not sure.  It lives in Zope's repo somewhere, I think.10:03
carlosbut with the problem I'm asking spiv10:03
spivcarlos: Great, thank you :)10:03
carlosspiv: another thing I was not able to do is use lanchpad_dev directly without using the external env var: LP_DBNAME=launchpad_dev 10:04
dafcarlos: ok, cool10:05
carlosthe dbname='launchpad_dev' seems like it's ignored10:05
carlosdaf: and just in time :-) 1:30 minutes10:05
dafcarlos: I suppose we need to send it to whoever's maintaining the dogfood server10:05
carlosdaf: you don't have access to the database?10:05
dafcarlos: care to update the wiki?10:05
carlosmakes sense10:06
carlosforget that10:06
dafcarlos: I'm not sure10:06
sabdflspiv: ok, the bug appears to be in psycopgda.adapter10:06
carlosdaf: will do it now, I will commit the script also inside rosetta/scripts is that ok for you?10:06
dafcarlos: I'm not sure10:07
sabdflline 19510:07
dafcarlos: if it's a general script, sure10:07
carlosnot really10:07
carlosit has the data inside the script10:07
carlosit's specific for this task10:07
sabdflwho can i get to commit a fix there?10:07
=== BradB finds out the hard way that eliding just a <BLANKLINE> causes the test to fail, thinking there are differences.
carlosI will send you it by mail now so you can review it10:07
carlosspiv: do you need me in the next 30 minutes?10:08
sabdflbradb: banged my head on that one too10:08
=== carlos wants to go to have dinner
spivcarlos: Don't think so.10:08
carlosspiv: ok, thanks10:08
dafBradB: I think I might have filed a bug on that10:08
sabdflspiv: is there a way to get postgres to report a month as "month" instead of "mon"?10:09
sabdflpsycopgda is expecting "month" or "months" from the interval, and postgres is delivering "mon" or "mons"10:09
sabdflwhy, i don't know10:09
sabdfleverything else is sane: day(s), week(s), mon(s), year(s)10:10
dafmaking it mon(th)(s) would fix it10:10
dilysBug 2159 resolved: Remove soyuz/projects10:10
spivsabdfl: maybe it can be changed with "set datestyle", I'm looking at the docs now.10:12
carlosdaf: I have a question inside the script about what should we do if the user already exists, should we change the password or leave it as it's now?10:12
carlosdaf: sent by mail10:12
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has left #launchpad ["Client]
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
dilysBug 2074 resolved: Create the Postgresql Views for Soyuz App10:12
carlosI should stop using Jabber10:12
dafcarlos: print a warning and do nothng, I think10:13
dilysBug 2090 resolved: Add Brad's nickname.py lib and CreatePerson() method to FOAF10:13
carloswill fix it and update the wiki after dinner10:13
=== BradB is now known as BradB|brb
dafcarlos: you can probably remove Limi also10:14
dafother than that, it looks good10:16
spivsabdfl: I can't seem to find a setting to change that :/10:17
sabdflok, so it's a bug10:17
sabdflworks fine for me if i change the code10:18
sabdflbut i cant commit to psycopgda10:18
dafI think we should fix it locally and send a patch upstream10:20
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: Big soyuz clean up and organization. Everything seems to be very cleaner now. (patch-762)10:27
=== elmo [~james@] has joined #launchpad
=== BradB|brb is now known as BradB
=== debonzi -> dinner
cprovnight all10:34
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: temp fix for the person vocab, reducing the people returned to only those that can login (i.e. have passwords) (patch-763)10:37
carlosok, I'm back10:50
dafcarlos: great11:20
dafcarlos: I'm going to leave soon to give a talk11:20
carlosdaf: I'm going to leave soon to sleep11:20
carlosI should wake up in less than 6 hours to drive to Madrid...11:21
carlosok, good night11:22
carlosdaf: If you need anything from me next days, just send me an email and I will try to be online as soon as possible11:22
dafcarlos: sure11:22

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