[12:01] I'm talking about global notifications [12:02] i.e. no global notification will get sent for new bugs that don't have owners [12:03] as i say, all bugs do have owners currently [12:03] in 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:04] ok :) [12:04] next question: [12:05] notify_bug_added seems to get called with a MaloneBugAddForm rather than a bug as the first parameter [12:05] yep [12:06] so how do I get the bug itself? [12:06] hence all that context.context.bug crap [12:06] ("crap" i.e. in several places in the codebase) [12:07] does the bug exist when the notification is called? [12:07] yes [12:07] is there some way of getting hold of it? [12:08] MaloneBugAddForm has no attribute 'id', y'see [12:08] at worst, you can do event.object [12:08] that doesn't sound too bad [12:09] the first param'll have to be renamed to describe whatever it is [12:09] why does the notification get the form rather than the object itself? [12:09] (Pdb) event.object [12:09] [12:09] carlos: I suspect it's not needed, but I'm not usre. [12:10] sure, rather. [12:10] spiv: also, I'm having problems with a test class with two tests, the second one gives me an error because the connection is already closed [12:11] spiv: 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:12] daf: dunno. [12:12] you'd have to debug AddView to get the exact answer [12:13] scary [12:13] perhaps I should leave the new bug notifications unchanged for now, then [12:13] :) [12:13] i can do it. possibly tonight. [12:14] where does AddView live? [12:15] M-. [12:15] AddView [12:15] :P [12:15] I'm not familiar with all this notification stuff [12:15] zope.app.form.browser.add [12:15] oh, you mean :tag AddView :) [12:15] heh [12:17] hmm, the relevant line seems to be: notify(ObjectCreatedEvent(content)) [12:17] yep [12:17] events are dead simple, to be honest [12:20] looks like it's the fault of the custom factory someone wrote [12:20] BugContainer.add [12:21] last line is "return ob", but i think "return bug" would behave more sanely [12:21] groovy, shall I change it? [12:21] you can see if it works. there's a chance all hell'll break loose too (but i'm kind of doubting that :P) [12:22] hmmmm [12:22] return ob # Return this rather than the bug we created from it, [12:22] # as the return value must be adaptable to the interface [12:22] # used to generate the form. [12:22] that doesn't mean much to me [12:22] eh, a bug should be adaptable to that interface, since the generated form is *for* a bug. [12:23] yeah, that would make sense [12:24] hmm, that didn't seem to change anything [12:26] where's the view for creating a bug kept? [12:27] it would be that MaloneBugAddForm [12:27] interesting [12:27] the tal calls view/update [12:28] that's canonical [12:28] which MaloneBugAddForm doesn't appear to have [12:28] it's mixed in from somewhere? [12:28] no, but AddView does [12:29] hm, the ZCML says this addform is for schema="canonical.launchpad.interfaces.IMaloneBugAddForm", which I find bizarre [12:30] why's that? [12:30] I would have thought it'd be for schema IBug :) [12:32] if instead it were for IBug, you'd be getting an IBug surely (for the params) [12:32] I'll try that [12:32] and return bug would be The Right Thing [12:33] hmm, expolosion [12:34] zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/site.zcml", line 5.4-5.35 [12:34] ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/configure.zcml", line 78.4-78.45 [12:34] ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/launchpad/configure.zcml", line 4.2-4.48 [12:34] ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/launchpad/zcml/configure.zcml", line 18.4-18.31 [12:34] ZopeXMLConfigurationError: File "/home/daf/src/canonical/dists/launchpad/lib/canonical/launchpad/zcml/bug.zcml", line 118.4 [12:34] ValueError: ('Field name is not in schema', u'sourcepackage', ) === daf -> workrave === BradB gets back from making a sandwich [12:38] ah yeah, now i know why they did that [12:38] because there's stuff on the add form that isn't part of IBug (e.g. package and product assignments) [12:45] right [12:46] it wouldn't be a problem if you could get the bug from the view class, but it doesn't seem possible [12:48] spiv: ping [12:48] pong [12:50] spiv: seems like the current functional test status does not let you execute two tests inside the same class [12:51] a class with two tests fails because the second one tries to drop the database but it's already open [12:51] That's bizarre. [12:51] then the tests fails [12:51] setUp and tearDown are supposed to be run for each test method. [12:51] BradB: any ideas, or shall I just leave it for now? [12:52] You've tried running the second one alone (e.g. by commenting out the first)? [12:52] no, let me try it [12:52] it will take sometime... [12:53] spiv: it's running and it was able to drop and recreate the database [12:54] hmm, wait, I think I got the problem.. [12:54] def tearDown(self): [12:54] super(LaunchpadFunctionalTestCase, self).tearDown() [12:54] FunctionalTestSetup().tearDown() [12:55] Should I call the super method after the FunctionalTestSetup()tearDown()? === carlos tests it [12:58] daf: should we talk about the rosetta alpha move to the dogfood server? === carlos is going to leave soon [01:06] daf: i'd say leave it for now. if you tla undo i'll look at it, but more likely tomorrow. [01:07] spiv: no that's not the problem, same error [01:08] is there some way to get screen width in python without resorting to ncurses? [01:08] num of chars I mean by width, not pixels or anything [01:08] the postgres log shows lots of messages like: [01:08] 2004-11-10 01:04:27 [9019] LOG: statement: BEGIN; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE [01:08] 2004-11-10 01:04:27 [9019] LOG: statement: ABORT TRANSACTION [01:08] 2004-11-10 01:04:27 [9019] LOG: statement: DROP DATABASE launchpad_ftest [01:08] 2004-11-10 01:04:27 [9019] ERROR: database "launchpad_ftest" is being accessed [01:08] by other users [01:08] 2004-11-10 01:04:27 [9019] LOG: statement: ABORT [01:08] 2004-11-10 01:04:27 [9019] WARNING: there is no transaction in progress [01:08] BradB: I'll leave new bugs using simple_sendmail now, and finish off the others tonight, I think [01:08] and the second test fails with this trace: [01:09] Traceback (most recent call last): [01:09] File "./lib/canonical/rosetta/ftests/test_poimport.py", line 28, in testTemplateImporter [01:09] project = Project.selectBy(name = 'gnome')[0] [01:09] File "/home/carlos/Work/dists/launchpad/lib/sqlobject/main.py", line 1238, in __getitem__ [01:09] return list(self.clone(start=start, end=start+1))[0] [01:09] File "/home/carlos/Work/dists/launchpad/lib/sqlobject/main.py", line 1242, in __iter__ [01:09] return conn.iterSelect(self) [01:09] File "/home/carlos/Work/dists/launchpad/lib/sqlobject/dbconnection.py", line 516, in iterSelect [01:09] select, keepConnection=True))) [01:09] File "/home/carlos/Work/dists/launchpad/lib/sqlobject/dbconnection.py", line 444, in __init__ [01:09] elmo: $COLUMNS? [01:09] self.cursor = rawconn.cursor() [01:09] File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/zope/app/rdb/__init__.py", line 308, in cursor [01:09] return ZopeCursor(self.conn.cursor(), self) [01:09] InterfaceError: already closed [01:11] daf: hmm, I remembered that but env(1) didn't show it.. I guess it's a shell variable [01:11] anyway, thanks [01:11] yeah, I'm not sure what sets it [01:12] probably the shell [01:12] yeah, and it doesn't work in any spawned process, like python, :( [01:13] >>> os.getenv("COLUMNS") [01:13] >>> [01:13] suck [01:19] carlos: Hmm :/ [01:20] carlos: So I guess that means the other test isn't related (which is good) [01:21] hmmm === carlos is tired and does not read correctly... [01:22] spiv: that error is from the first test :-O [01:22] but it makes no sense [01:22] the line where it fails is the start of the test [01:23] and it executes lots of queries... [01:23] is it possible that they are executed in reversed order? [01:24] hmm, that sucks, that functional test is not working as it should [01:24] They're executed in an arbitrary order. [01:25] but that's not a justification for the error [01:25] Most likely dependent on the order they pop out of the dict of the test case. [01:25] I mean, the functional test is not running as it was wrote, but it should not fail [01:26] so I will care about it later, when the error is gone (the first should be executed first) [01:26] Sorry, you mean the tests depend on being run in a certain order? === stub [~stub@dsl-246.248.240.220.dsl.comindico.com.au] has joined #launchpad [01:28] spiv: that was the way it was designed, yes. Don't ask :-), those tests suck and needs lot of love [01:28] Ok :) [01:28] one imports a file into the database (a .pot file) and the second one imports another file (a po file) related to the first [01:29] with the current test database the functional tests have changed the objective of this functional test [01:30] spiv: 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 work [01:30] and forget this error [01:31] Well, they *should* work, yeah :) [01:31] ok, I believe you :-) [01:31] I will "poke" you if the problem appears again :-P [01:31] And, I think they even do work ;) [01:32] A quick grep shows other places run them too. [01:32] (canonical.mail, canonical.lp.placelessauth, canonical.ftests.test_sqlos) [01:33] perhaps the problem is with LaunchpadFunctionalTestCase [01:33] I didn't found a functional tests that uses it [01:34] I will review tomorrow If I really need the Utilities and Adapters from Zope or I could move to LaunchpadTestCase [01:34] A grep finds a couple of places that use it for me... [01:35] (as mentioned above) [01:35] hmm === carlos needs to improve his grep command... [01:35] daf: ok (re: doing id's for all but bug adding) [01:35] spiv: could you point me to a concrete file, please? [01:35] "grep -Irn class.*LaunchpadFunc" [01:36] ok [01:36] lib/canonical/ftests/test_sqlos.py [01:36] LaunchpadFunctionalTestCase 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] tags? :) [01:36] lib/canonical/lp/placelessauth/ftests/test_launchpadloginsource.py [01:36] :) [01:36] BradB: Ok, so my full command line is actually "grep -Irn class.*LaunchpadFunc . | grep -v tags:" :P [01:37] heh [01:37] test_sqlos is a decoy, currently disabled [01:38] spiv: then I don't have an example that works :-) [01:38] and test_launchpadlogingsource is doing its own provideUtility so might work just as well wth LaunchpadTestCase === BradB is now known as BradB|afk [01:38] spiv: the test_launchpadloginsource.py only have a test inside the class [01:39] stub: I'm having problems with LaunchpadFunctionalTestCase and a class with more than a test [01:39] the second one fails [01:39] carlos: I'll write an email to the mailing list tonight [01:39] daf: ok [01:40] carlos: That is not surprising - LaunchpadFunctionalTestCase does not appear to be calling its superclass' setUp and tearDown methods :-P [01:40] stub: I fixed it already [01:40] it's in my local archive [01:41] will merge it tonight :-) [02:35] grr [02:35] spiv: I'm not able to commit my changes [02:35] Ran 57 tests in 74.651s [02:35] FAILED (errors=1) [02:35] Exception psycopg.InterfaceError: 'already closed' in > ignored [02:35] ---- end test stderr ---- [02:35] make: *** [check] Error 1 [02:35] pqm rejects them because that [02:52] carlos: 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 it [02:54] stub: seems like I'm getting an error in any tests but I'm not sure about which one is it: [02:54] 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 cursor [02:54] return ZopeCursor(self.conn.cursor(), self) [02:54] InterfaceError: already closed [02:54] it's not too much descriptive [02:55] ok. I think that was the area I tried fixing and I thought BradB had finally nailed ;-( [02:57] I 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 it [02:58] /s/chaning/changing/ [02:58] You might be able to get better output running 'python test.py canonical' instead of 'make check' [02:59] fwiw, 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. [03:01] ok, I will look at it tomorrow then, 3:00AM is too late to deal with them [03:01] thanks [03:01] and night!! [03:09] Merge to rocketfuel@canonical.com/launchpad--devel--0: added bug submitter to Cc list when new bug is added (patch-754) === BradB|afk is now known as BradB|zzz [06:44] sabdfl: Do teams have karma? [07:06] Merge to rocketfuel@canonical.com/launchpad--devel--0: Database updates (patch-755) === 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 [09:37] stub: hmm.... good question [09:37] nothing in the data model to prevent that [09:37] but since teams can't log in, i guess we want to collect karma around the individual [09:37] lifeless: around? === 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 [10:37] Morning [10:41] Merge to rocketfuel@canonical.com/launchpad--devel--0: Make subject lines in Malone notification emails contain bug IDs (patch-756) === mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad === cprov [~cprov@200.158.100.251] has joined #launchpad [12:01] Morning cprov [12:03] Kinnison: morning === Kinnison loads the archive mirror elmo did yesterday and prepares to run gina [12:10] so we have nice up-to-date dogfood for today [12:13] gina running... [12:16] Kinnison: great ! [12:38] Meeting is in 55 minutes yes? [12:38] yes [12:38] cool === Kinnison wonders if daf will show up this time :-) [12:41] Dogfood was updated yesterday. Do another drop now? [12:41] codebase drop? [12:42] can it wait until gina has finished running? [12:42] Sure [12:42] otherwise you'll be stuck unable to frobble the db or the librarian codebase :-) [12:42] spiv: ping? [12:43] spiv: this is why I thought we were multithreaded: [12:43] 2004/11/10 11:02 GMT [FileUploadProtocol,0,127.0.0.1] Enabling Multithreading. [12:44] stub: i'm seeing odd test failures where the "bounty" table cannot be found [12:44] but it seems very much integrated in patch 4-05 [12:44] any idea what i'm doing wrong? [12:45] have you restarted launchpad after applying the patch? [12:45] i'm just running make in database/schema [12:45] then running make check at the top level [12:45] that should be fine... hmm... [12:47] launchpad_dev=# select * from launchpaddatabaserevision; [12:47] major | minor | patch [12:47] -------+-------+------- [12:47] 4 | 5 | 0 [12:47] (1 row) [12:47] Urgh... bad patch. Made two mistakes! (with the first masking the second!) [12:47] ok [01:01] Kinnison: Hmm. [01:03] cprov: gina is up to openoffice [01:04] Kinnison: storing files is properly threaded, [01:05] spiv: including writing to the db? [01:05] Well, only writing to the db :) [01:05] The writing to a temp file isn't threaded, because it doesn't need to be. [01:05] So if upload is threaded; why would it be hard to thread download? [01:06] It's not hard. [01:06] aah [01:06] is there a more idiomatic way to split the last work off a string than: ' '.join(s.split()[:-1] ) [01:06] I got the impression you had decided it was [01:06] It just a Simple Matter Of Programming :) [01:06] +? [01:06] Well, it's annoying more than anything else. [01:06] s/work/word/ [01:07] elmo: no [01:07] Kinnison: 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:08] cprov: Look in the log file. [01:08] (For the server) [01:08] cprov: yeah; the log file should contain a traceback [01:08] cprov: you most likely haven't given it a dir to write the files into [01:08] Merge to rocketfuel@canonical.com/launchpad--devel--0: Fix bad database patch (patch-757) [01:09] elmo: you could make it very explicit, like this: [01:09] >>> s = "foo bar baz" [01:09] >>> words = s.split() [01:09] >>> words.pop() [01:09] 'baz' [01:09] >>> s = ' '.join(words) [01:09] >>> s [01:09] 'foo bar' [01:09] >>> [01:10] spiv: yep, sqlobject/dbconnect.py lineline 507, in iterSelect | select, keepConnection=True)) | exceptions.TypeError: iteration over non-sequence [01:10] SteveA: is there a particular policy that all "make check" test should be run with a PYTHONPATH which include launchpad/lib? [01:10] SteveA: hmm, ok, thanks [01:10] ddaa: the stuff that I have added to make check arranges its own sys.path [01:10] SteveA: 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] in general, stuff that you run as a script, or that is invoked directly by a makefile, can set sys.path properly [01:11] what exactly is forcing the difference? [01:11] cprov: Do you have the latest SQLObject? (rocketfuel@canonical.com/sqlobject--test--0.6--patch-4) [01:11] -PYTHONPATH=$(PWD)/../../lib:$(PWD) [01:11] +PYTHONPATH=$(PWD) [01:11] That's the delta between Canonical and public. [01:11] I am not too sure why I added in the first place, but there might have been a good reaon. [01:12] ddaa: running make check from the 'launchpad' directory does not need a special pythonpath to be set [01:12] spiv: I must verify, maybe not, just a minute [01:12] SteveA: actually, that's to run make check from the sourcecode/pyarch directory [01:12] cprov: Otherwise, I'll need to see more of the traceback... [01:12] But that's needless, since it does not depend on anything there... [01:13] Just want to be sure removing that would not break some policy. [01:13] I don't see why we should be using a separate version of pyarch, seeing as it lives in launchpad/sourcecode/ [01:13] 'make check' shouldn't need python path manipulation being done, because I hacked test.py to add lib into the path === ddaa happily syncs canonical pyarch with the public version [01:19] Merge to rocketfuel@canonical.com/pyarch--devel--0.5: merge test suite refactoring (still incomplete) (patch-52) === carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad [01:20] hi carlos [01:20] hi [01:20] carlos: there is still a stub.{py,zcml} in rosetta [01:20] and comments refering to sql in configure.zcml [01:21] should stub.* files be removed? [01:21] spiv: my tree (sourcecode/sqlobject) is up to date, please look in http://jeffsblog.info/pastebin/pastebin.php?show=240 [01:21] and various obselete crap in the Makefile [01:21] absolutely [01:21] I think daf wanted to preserve them (not sure if it's still valid after the big movement of files...) [01:21] let's get rid of them [01:21] ok [01:22] if stuff isn't being used, we should remove it [01:22] if stuff isn't being tested, we should write tests for it, or remove it. [01:22] it will always be available in the archive's history [01:22] elmo: can you refresh the archive on mawson? [01:23] elmo: I think you caught it mid-xorg upload [01:23] it is important to have clean code, clean source directories, and up to date comments [01:23] ok [01:23] IOError: [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] did you and daf look at the i18n information I sent to you before I went on vacation? [01:23] cprov: Hmm, there's something funny going on. [01:24] SteveA: daf was looking on it, not sure its current status at this moment [01:24] spiv: what :) [01:24] Kinnison: nah, the archive probably was actually like that [01:24] cprov: line 507 of lib/sqlobject/dbconnection.py seems to wrong. Are you *sure* it's up to date? :) [01:24] but i'll update it anyway [01:25] elmo: thanks dude. [01:25] carlos: we need to move along with this. rosetta needs to lead the way in being internationalized [01:25] then, we'll be able to dogfood on rosetta as well as alpha testing it with a few volunteers === SteveA will bbiab === Kinnison heads to grab lunch before the meeting starts [01:26] spiv: not sure, tla update in sourcecode/sqlobject says that [01:26] cprov: What's the tree-version? [01:27] rocketfuel@canonical.com/sqlobject--test--0.5.1 [01:27] That's not up to date? [01:27] I mean, [01:27] That's not up to date :) [01:27] SteveA: hmm, something is going really bad in the alpha server [01:27] We're using --0.6 now. [01:27] I get system error with every url I try to visit [01:27] spiv: ehe, so can you drive me to update it ... [01:28] cprov: Do you have baz installed? [01:28] spiv: no yet [01:29] cprov: If so, you should just be able to run "baz switch rocketfuel@canonical.com/sqlobject--test--0.6" in sourcecode/sqlobject === BradB|zzz is now known as BradB [01:29] cprov: I recommend it :) [01:29] "baz diff" is much easier to type than "tla changes --diffs" :) [01:30] is baz in hoary? [01:30] SteveA: not yet (or I don't see it) [01:30] spiv: ok, I will install it, then do "switch" to --0.6 ... just some minutes :) [01:31] meeting time folks! [01:31] SteveA: I use deb http://bazaar.canonical.com/packages/debs ./ === Kinnison waves. I'm here [01:32] all not present say "nay!" [01:32] nay! [01:32] n-- oh. :) [01:32] I can see you here, carlos [01:32] ok, all present, please say something [01:32] X-) === SteveA says something [01:32] I didn't saw the "not" :-P [01:33] Damn trick questions :) [01:33] meep [01:33] here === Kinnison waves. I'm still here :-) [01:33] spiv: we can talk briefly about the sqlobject update after meeting, ok ? [01:33] stub: ? [01:33] daf: ? [01:33] sabdfl: ? [01:33] im here [01:34] cprov: Sure. [01:34] Greetings [01:34] let's get started === debonzi [~debonzi@200.158.100.251] has joined #launchpad [01:35] item 1: UI widgets that cope with people and projects etc. [01:36] what should we do about this? [01:36] there are a couple of different options. [01:36] this is now critical to get malone usable [01:36] bradb, would you agree? [01:36] yes [01:36] we have a couple of options [01:37] on the people front, we could use a well-sorted dropdown listbox that only lists people with passwords [01:37] so you could only assign a bug to someone with a password in the system [01:37] that would reduce the list dramatically [01:37] and make a dropdown sufficient [01:37] this will still be an interim measure, as we expect to grow a lot [01:38] can anyone think of cases where such a measure would fail us? [01:38] for example, where you want to assign a bug to someone who is NOT a canonical user? [01:38] yeah [01:38] Product bug assignments will get assigned to the developers [01:39] I think we need to cope with thousands of options, just like the other problem widgets [01:39] isn't it a bit rude to assign someone a bug when they can't log into the system? [01:40] SteveA: it's a bit practical [01:40] it doesn't seem out of the realm of possibility to me [01:40] SteveA: but they will be able to log into it if they activate their account, right? [01:40] stub: 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 asap [01:41] hoary team, really [01:41] for packages and products, i don't thnk a straight dd-listbox would be workable === kiko [~kiko@200-206-134-238.async.com.br] has joined #launchpad [01:42] what 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 page [01:42] sabdfl: Short term the dropdown should be fine then. [01:42] for people, yes [01:43] 4. type in thing like in bugzilla [01:43] I like the current Bugzilla solution [01:43] is that not a cached javascript thing? [01:44] stevea: limi did some tests on the current bugzilla code [01:44] it doesn't scale beyond about 2,000 items [01:44] sabdfl: surely it can be made to be though. [01:44] it also does not really allow you to search for anything other than a flat namespace [01:44] BradB: not easily [01:44] you end up downloading a huge page (which takes time) and then get---a---very-----jerky-----typing----experience [01:45] !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] I'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 thing [01:45] depending on the definition of "not easily" a good combo box is definitely something that would be music to users' ears [01:45] i would really like to have something slick using lucene client side, but we dont have the skills inhouse to tackle that [01:45] carlos, that's user matching, and it works in a quite ingenious fashion. [01:45] [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:46] 4. Use popup search dialogs [01:46] !lilo:*! And please feel free to join us on ##ftc-summit (please note the two #'s).... thanks! [01:46] c/4/5 [01:46] I think for the people field, we've agreed that limiting people to those who can log in is sufficient for right now. [01:46] limi's recommendation was to do an xmlrpc query in javascript [01:47] SteveA: agreed [01:47] carlos: Yes, I like that too. [01:47] who knows JavaScript around here? [01:47] (technical issue: easier to do an HTTP GET, better for authentication and sessions, requires less javascript, and achieves the same end.) [01:48] spiv, carlos, where can i see the bugzilla example? [01:48] carlos: Although it's not very discoverable :/ [01:48] I know a bit. It is a bit rusty, but I've done this kind of dynamic stuff before. [01:48] stevea: so the JS does an HTTP GET or POST, to a known URL? [01:48] sabdfl: add someone to the CC field of any bug [01:48] the bugger is always in the cross-browser testing [01:49] sabdfl: Add "Daniel" as an assignment or CC, it should then prompt on the next page. [01:49] sabdfl: and type just "Mark" [01:49] sabdfl: it will give you a list of users with that name [01:49] (Or any ambiguous name. If there's only one match, it'll pick it automatically though) [01:49] sabdfl: yes, that's right. and it returns something the js can handle. either an xml doc, or some text, or some js. [01:49] the known url might be relative to the current one, for example. [01:50] this sounds quite manageable [01:50] need to design the query interface [01:50] and the response data structure [01:50] and then make it look relatively good [01:51] would xml be the best structured data format for JS to parse? [01:51] not really. [01:51] the best structured data format would be, well, a JS array. [01:51] what would you recommend, kiko? [01:52] ok, so we can send back an actual JS datastructure? [01:52] depends. if it is just a list of names, or names and email addresses, then some js or space delimited text is best [01:52] sure, we could just return a .js file and eval it. [01:52] for people, would be browsername, name and email addresses [01:53] eval... is that how you would return a JS array? [01:53] that's how you get returned JS from the server incorporated into the JS runtime of the page [01:53] so that you can use it in the page [01:53] ok [01:53] then you need to do some DOM stuff to make the UI display change [01:54] right [01:54] I 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 conference [01:54] so, should we divide this problem up between us, or assign it all to one person [01:54] it is pretty straightforward, so long as you don't try to do asynchronous stuff [01:55] this is something we really need asap === Kinnison nods [01:56] SteveA: how do you want to organise this to get it done === SteveA considers [01:57] let's make a one-page prototype of it, to prove the concept in launchpad [01:57] ok [01:57] if no-one else feels particularly attracted to the task, I'll take it on. Volunteers who know some javascript welcome, though. [01:58] ok === SteveA waits for calls of "no wait, I'll do it" [01:58] bradb, can you make the "person" dropdown limit itself to people with passwords? [01:58] ok, I'll do it. [01:58] SteveA: I need to learn javascript first, long ago since last time I used it [01:58] sabdfl: yes [01:58] great [01:59] how many different browsers do we have available to test this with? [01:59] firefox and ie [01:59] SteveA: I can test it with explorer for mac, safari [01:59] I've got a Windows partition [01:59] and also explorer 5 and 6 [02:00] and of course firefox/mozilla :-) [02:00] I don't know whether the HTTP stuff in javascript works outside of mozilla and IE-based browsers [02:00] it 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] there is indeed a client-side concern [02:00] kiko: what's that? [02:00] what if they user has javascript disabled? [02:01] or set to disallow outgoing javascript connections? [02:01] Safari doesn't have xml/xmlrpc stuff. I think it is fine for HTTP stuff. [02:01] they'd have to type in email addresses from memory, perhaps [02:01] whether 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] that's fine if it works. just need to ensure it does. [02:02] the other way to do this would be with wizards [02:02] where the form has to be submitted several times to get what you want [02:02] I 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:03] has anybody got experience with zope3 wizards? [02:03] there will always be the HCT-style tools for non-JS folks [02:03] who really want to use the command line [02:03] I wrote the Z3 wizard code, which may still work, but I don't think it is what you want in this situation. [02:04] ok === salgado [~salgado@200-206-134-238.async.com.br] has joined #launchpad [02:05] Are we done on large-collections-of-things-selectors? [02:05] SteveA: will your demo include multi-selection? [02:06] I'll do a proof-of-concept dynamic JS thing, Brad can make a list of people who can log in [02:06] SteveA: 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] (which is a suckier UI, but simpler to implement) [02:07] BradB: is this stuff a reasonable target for what you want? http://plone.org/Members/limi/tests/ubersearchwidget [02:07] should we just use popup for the moment, if it's much simpler? [02:07] we have longer to get it right, need to get it out there sooner [02:08] SteveA: 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] that early draft looked crap. alex did a lot of work on it while he was here [02:08] where is alex's latest work on that? [02:08] BradB: you mean, the http get approach? [02:09] sabdfl: no, the layout and selection of the results is really cumbersome. [02:09] it's a lot of real estate. [02:09] stub: can you get the pop-up stuff working soon? [02:09] sabdfl: 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 selects [02:10] BradB: i agree if you are saying the ubersearchwidget looks cumbersome [02:10] yep, that's what i'm saying :) [02:10] I 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:12] ok [02:12] would this all be inside a form field in the actual form? [02:13] the dynamic stuff? yes, although the JS for it would probably live in a file included in the standard page header [02:13] this is precisely my and Brad's point -- do we need to redesign the pages to accomodate for this search form? [02:13] oh. that's something else :) [02:14] the search form to select a person ought to be just one rather large widget === stub [~stub@dsl-246.248.240.220.dsl.comindico.com.au] has left #launchpad [] === stub [~stub@dsl-246.248.240.220.dsl.comindico.com.au] has joined #launchpad [02:14] as far as zope forms are concerned [02:14] did we establish if there's a way to pass information to widgets to help them display themselves? [02:15] SteveA: eeg, i hope not :) that takes way too much effort. [02:15] canyou have forms within forms? [02:15] that sounds nasty [02:15] sabdfl: IIRC no you can't nest
s [02:15] BradB: that doesn't mean that you *have* to use it that way. But, that it can be used that way. [02:15] SteveA: considering that when you add a bug you currently have three values that need choosing from large lists. [02:15] Kinnison, you are indeed correct. [02:15] BradB: so, do you think it should be a wizard? [02:16] sabdfl: 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] i like the popup idea for this. [02:16] so... [02:16] ok [02:16] popups are going to be hated on principle [02:17] browsers handle this kind of pop up fairly well -- they are directly initiated from a mouse click [02:17] well, unless we get the w3c to speed up and the feature implemented in at least FF... [02:17] it seems to take the silver medal to a combo box [02:17] so mozilla knows they are legitimate [02:17] We 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:18] ok, let's go with popups for the first round [02:18] I've never had the roundup one break due to mozilla's popup blocking. [02:18] that at least keeps the form tight [02:18] I think it's the only realy solution that is cheap on real estate and familiar enough to use. [02:18] because it doesn't take a log of space to display the person, product or package that has been selected [02:19] does gmail have any tricks we can "borrow" ? [02:19] i shudder at thinking about bending zope3 auto-form widgetry to our will on this [02:19] is it not better to have some Python code that generates the HTML that we can call? [02:20] the HTML of the pop-up? [02:20] sabdfl: 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] widget, even [02:20] then have a
[02:20] that would be a separate view altogether, as it is a page on its own [02:21] sabdfl: we can do that, if it is easier. [02:21] it'll be the same as any other Z3 widget really (except it'll take different init params, of course) [02:22] I'd like us to review what we have decided about people and package selectors, and then move on. [02:22] i'm talking about the forms that have these selectors on them [02:22] are we going to try to make them work well with the autogenerated forms? [02:23] sabdfl: yeah, that's what i'm saying. this'll be a widget like any other. (why wouldn't it be, afterall?) [02:23] it isn't hard -- they take the same input from a browser as any other widget that handles the same kind of data [02:23] this is just overriding the presentation of the data [02:23] as far as the code is concerned [02:23] yep [02:23] hello? [02:24] SteveA: let's pick up the pace of this meeting [02:24] the complex icky parts of a widget are those that handle form data sent by the browser [02:24] I'd like us to review what we have decided about people and package selectors, and then move on. (restated) [02:24] 1. brad will make a people-who-can-log-in selection [02:24] 2. stub will work on a pop-up people/packages selector [02:25] ok, some net weirdness, y'all disappeared [02:25] 3. steve will do a proof-of-concept-js thing [02:25] all done? [02:25] yup [02:25] yes [02:25] right [02:25] ok [02:26] dogfood: how is it going? [02:26] all new bugs shoudl be filed in dogfood malone now, right Brad? [02:26] can dogfood malone email people now? [02:26] SteveA: *have* to be :) i got jdub to disable the lp product in bugzilla [02:26] Kinnison: yes [02:26] yay [02:26] kiko: yes, I got already some mails [02:26] nice [02:26] Excellent. [02:26] are we migrating bugs from bz? [02:27] dilys integration should happen todayish [02:27] do we have the bug watch updater running on mawson? [02:27] kiko: i filed a bug for that. it's probably a topic for the next or next-next meeting [02:27] so we can set watches on bugzilla bugs? === BradB doesn't know anything about that. stub? [02:28] No - I pinged elmo about basic auth but didn't chase it through. [02:29] Watches are up and running, but our own bugzilla is problematic because of security (erm... not basic auth... SSL certificate I think?) [02:29] can we not allow things based on ip address in this case? [02:29] stub: huh? [02:29] mawson has an "intranet" ip address wrt the bugzilla [02:30] bugzilla watching is of very low priority to be honest. we're dogfooding, so even if it worked perfectly, you wouldn't know. [02:30] elmo: mawson needs to access the canonical bugzilla without a client certificate or basic auth. [02:30] of high priority is bug resolution workflow, because people are going to go in and fix bugs that i've already fixed. [02:31] SteveA: Oh - if "intranet" access means no cert or basic auth required, it should be working right now. [02:32] stub: it doesn't use client cert or basic auth (via apache), the auth is done on the bugzilla side? [02:33] stub: I'm making a suggestion that mandatory authentication in bugzilla could be turned off for requests originating at mawson. [02:33] are we sure we want to discuss bugzilla watching in this meeting? :) [02:33] yes. can we have bugzilla watching soon? [02:33] watching is a neat way to transition to malone [02:33] I'm not really too bothered about the details [02:34] elmo: bugzilla.warthogs.hbd.com is publicly available? [02:34] AFAIK it is [02:34] how about stub and elmo and brad can sort out bugzilla watching after the meeting? [02:34] elmo: 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 auth [02:35] next? [02:35] daf: ping [02:35] stub: yes - but bugzilla won't let you see anything until you login [02:35] SteveA: pong [02:35] hiya daf [02:35] eek.... how embarassing... all those bugs are open to the world ;) [02:35] sabdfl: hi [02:35] SteveA: 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] ok. 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:36] daf and carlos: would you talk about getting rosetta to use the dogfood system? [02:36] bradb - can you not resolve a bug by editing the assignment to mark it "closed"? [02:36] Good news people! Gina just completed an update to today's hoary [02:36] SteveA: sure [02:36] Kinnison: rock [02:36] yep [02:37] sabdfl: 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:38] stub: eh, which bugzilla are you looking at? [02:38] sabdfl: 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] BradB: 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] bradb good point [02:39] SteveA: ok [02:39] I'd like to defer discussion particular to malone to a malone meeting sometime after this meeting [02:39] as we are rather dragging on today [02:39] BradB: mdz wanted a "pending upload" state [02:39] for the assignment [02:40] maybe we should change "closed" to "pending upload" [02:40] SteveA: 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] then add a field to point at the "fixed" package [02:40] so "pending upload" is basically "closed" without a fixing package [02:41] SteveA: ok [02:41] sabdfl: we need closed though. [02:41] yes [02:41] BradB: sure, but we can continue that after the other stuff in this meeting [02:41] daf and carlos [02:41] SteveA: sure [02:41] but you're right, there is a problem with a bug marked "closed" without a package that closes it [02:42] what are you going to do to get rosetta on the dogfood system? [02:42] what help do you need from others? [02:42] how long will it take? [02:42] after the launchpad's mails we can assume then that our alpha testers will use the dogfood sytem, right? [02:42] when you're done movingn it, yes [02:43] although, the domain name they use will be the same as it is now [02:43] same db, same code, different domain [02:43] ok [02:43] need to (a) move user accounts, (b) move PO/POT files [02:43] I need a list of the things that are "particular" to the rosetta alpha system [02:43] the trickiest bit as far as I can see, is hiding Malone and Soyuz from the testers [02:44] perhaps we can do this using layers [02:44] such as having a custom front page, or whatever [02:44] we need to solve that problem anyhow [02:44] maybe we should solve it properly now [02:44] Can we just run multiple launchpad instances talking to the same database? [02:44] daf: I think that should be as simple as using the correct virtual hosting proxy rule [02:44] stub: we can, but I'd rather not do so if they are to have different code on them. [02:45] the code should be exactly the same [02:45] SteveA: really? [02:45] SteveA: how will it know to hide the tabs? [02:45] SteveA: Sure. A code drop would mean updating two codebases rather than one. [02:45] daf: get me the list of what is significantly "forked" in the code, and we'll work through it [02:45] I think it's mainly the main template [02:46] stub: 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] daf: ok, we can fix that with layers. [02:46] would it be easier if we just publish everything at launchpad.ubuntu.com? [02:46] then fix it properly when I've done the context stuff discussed yesterday [02:47] sabdfl: then all alpha testers will have access to all applications, is that what we want? [02:47] sabdfl: that doesn't make anything easier [02:47] use some sort of client-cert bsaed filtering to block access to directories other than /rosetta/ for the rosetta testers [02:47] SteveA: ok, will leave it in your hands [02:48] daf: so, as a matter of priority, make the appropriate change on the rosetta layer of the main launchpad code [02:48] i'm wondering whether we want to have people think of them each as distinct, or as a single system [02:48] daf: is there anything else in the code that needs changing ? [02:48] SteveA: other than that, it's changing the database and the ports used, I think [02:48] for 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 one [02:48] or do we want them to setup rosetta.foo.org and malone.foo.org etc. [02:49] daf: 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:50] daf: please stick up a wiki page with the list of tasks for getting rosetta using the dogfood system, estimate them, then start them [02:50] SteveA: do we have a cron jobs policy? [02:50] SteveA: we will need something like that to feed the database [02:50] with updated translations [02:50] carlos: but we don't need that yet, do we? [02:51] launchpad dogfood server has lots of products already [02:51] do you have that on rosetta alpha already? [02:51] and if we want to add their translations.. I hope we don't do it by hand [02:51] not yet [02: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] so it is a separate task, after getting rosetta alpha running on the dogfood system [02:51] !lilo:*! Actually, the conference has started now, please check the url for information on how to connect [02:51] but the script is almost ready (need to do some code refactoring) [02:51] sabdfl, launchpad.foo.org makes things a lot easier, IMO, and preserves the "launchpad brand" [02:51] it should not delay getting rosetta to use the dogfood system [02:51] sabdfl: 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] ok [02:51] I would love not having a soyuz virtualhost. [02:52] (because that means a virtualhost for each service) [02:52] carlos: well, updating translations by cron job is not the same as importing [02:52] daf: let me know when the wiki page is done, okay? [02:52] virtualhosts could be used to redirect into lp.../soyuz/ if the client wanted so [02:52] daf: the update can also do the import automatically [02:52] ok, and launchpad.foo.org we could get working a LOT sooner [02:52] also simplifies URL's, since everything is then in a fixed structure [02:53] YES! [02:53] and if we needed the separate virtual host thing, we can develop it later [02:53] well [02:54] SteveA: sure [02:54] so long as there is an easy API to get the public URL of something, it should be easy to change our minds later [02:54] as 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] carlos: hmm, is an update really the same as the import? [02:54] sabdfl: what happens with our current alpha test domain? a forward to launchpad.shuttleworthfoundation.org/ ? [02:54] kiko: I agree [02:54] I suggest to keep the rosetta alpha as it is, from the outside [02:54] because you also need to consider [02:55] what if the person doesn't want a foaf.foo.org? [02:55] daf: as we are not creating new products/projects and we use soyuz information, yes [02:55] or rosetta.foo.org? [02:55] kiko: what complicates url's? [02:55] virtualhosting projects independently, sabdfl [02:55] (even if it is in the future) [02:55] carlos: we still need to create PO templates [02:55] projects being.... rosetta, malone, or projects being the upstream domains? [02:56] rosetta, malone and soyuz and foaf and doap and ... (you get the picture :) === SteveA wonders about calling them "launchplatforms" [02:56] but you are ok with an upstream project being able to create launchpad.upstream.org and have us handle that === SteveA thinks he's being silly [02:56] sabdfl, yes, definitely, that's perfect. [02:57] the answer seems to be different for soyuz [02:57] daf: 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 product [02:57] i mean, soyuz WANTS to have a distro context [02:57] sabdfl: 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:58] sabdfl, but soyuz links to rosetta and malone internally. and then? [02:58] Bug 1949 resolved: first input field should be focused when translation page loads [02:58] https://bugzilla.warthogs.hbd.com/bugzilla/show_bug.cgi?id=1949 [02:58] stub: 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] stub: we do have a solution to that, i think [02:58] nice work daf [02:58] sabdfl: It also complicates the issue of what URL to put in emails - launchpad.upsteam.org/malone/bug/65 or launchpad.ubuntu.com/malone/bug/65 [02:58] sabdfl: the code will work for any form that uses tabindexes correctly [02:59] ok [02:59] stub: good point [02:59] carlos: I'm not sure -- is there any extra information needed? [03:00] SteveA: Sucky because you have to use javascript redirects [03:00] stub: no, not javascript redirects [03:00] SteveA: Also doesn't scale if we end up with a few hundred virtual hosted launchpads. [03:00] daf: 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 code [03:01] stub: don't see why not. but, I think we're talking about different things. [03:01] daf: or we could even try to get the domain name for that po directory [03:01] do we have a decision on what to do about choosing virtual hosts for the present? [03:01] carlos: hmm, that's a bit smelly [03:02] carlos: let's add a form for creating new templates, and use that [03:02] daf: I know it's not perfect [03:02] SteveA: lets discuss it, you and i, after this meeting [03:02] k [03:02] I'd like to move on to karma [03:02] will you add by hand all templates we have in hoary/warty? [03:02] there was a discussion about karma yesterday [03:02] that's a huge work load... [03:02] and adding this kind of thing to the database [03:02] how's that all going? [03:03] carlos: we can't try to scale up rosetta till we can automate large amounts of it [03:03] the arch guys have made some good progress with getting code syncing [03:03] in december we can plan how to hook that automatically into rosetta [03:04] so once an upstream is syncing to arch, we can easily add it to rosetta [03:04] sabdfl: I have solved (more or less) the lack of arch archives [03:04] ok [03:04] how? [03:04] so that's not the problem [03:04] with python-apt (or whatever it's called) [03:04] que? [03:05] and now, using soyuz data [03:05] I get the information from where I can download the orig.tar.gz + diffs + .dsc [03:05] I download it and extract it [03:06] and I'm ready to find the .po/.pot directories [03:06] and import them into rosetta [03:06] I'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] neat [03:07] carlos: are you extracting those from the librarian? [03:07] It needs to add the distribution archives by hand, but more or lees it's a help until we finish the arch part [03:07] Cookie 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] Any other things to discuss at this launchpad meeting? [03:07] Kinnison: not yet, in fact I'm starting moving from apt-get to soyuz [03:07] If not, let's finish. [03:08] carlos: when you want to use the librarian; let me know [03:08] Kinnison: is there any documentation about it? :-P [03:08] SteveA: I just want to ask if elmo could open port 8000 up to the outside world for us? [03:08] carlos: Not yet :-) [03:08] spiv: whats the current position on having a status field on project / product? [03:08] carlos: If I can gather some use-cases from you and the others; I could write some [03:08] SteveA: so cookie auth will work in addition to basic auth rather than replacing it? [03:08] daf: yes, at least for now [03:09] SteveA: so soyuz can provide links directly to the librarian instead of having to act as a proxy to download from it [03:09] Kinnison: ok [03:09] carlos: for now, I think you'll just have to probe Kinnison's brain [03:09] mmmm cranial probage [03:09] Kinnison: can we do a proxy pass thing so that /downloads/... on the server is for the librarian? [03:09] SteveA: yes; but then soyuz will have to manipulate the URLs it gets from the FileDownloadClient instance [03:10] sabdfl: 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] I expect it will have to do so anyway, in reality [03:10] daf: :-) [03:10] SteveA: in that case; it'd be fine to do it proxy_pass [03:10] carlos: go ahead and make your own judgement [03:11] Kinnison: I think that's the kind of url we'd want to present to the outside world, rather than a port 8000 thing [03:11] carlos: you can speak freely [03:11] SteveA: ack. [03:11] sabdfl: 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] SteveA: Should I add a getURIForAlias() method then? To only return the URI [03:11] SteveA: then soyuz can composite that with its url to form the full url for download [03:11] there will be many people working on local distributions in Spain [03:11] Kinnison: you mean the path? [03:11] rosetta, malone will be free of charge for any project to use [03:12] SteveA: yes [03:12] getPathForAlias or getURLPathForAlias ? [03:12] The former I think I prefer === Kinnison will code that [03:12] k [03:12] It'll be very short [03:12] sabdfl: ok [03:12] and we can have a convention that it will always be /downloads/... on any virtual host [03:12] or /files/ or whatever you think is best [03:13] that's up to the web-app guys :-) [03:13] wrapping up the meeting? Same time next week -- wednesday 12:30 UTC ? [03:14] ok [03:14] SteveA: ok [03:14] ack. [03:14] yep [03:14] thanks everyone. I'll send a mail about the next meeting. [03:15] thanks, Steve [03:16] daf: do we need to talk about anything urgent now? [03:17] carlos: we need to talk about the move, but it can wait for a few hours [03:17] ok [03:17] I need to have lunch and go out for a while [03:17] as soon as I'm back I will ping you, ok? [03:17] (I think that will be in about 2 hours or so) [03:18] ok [03:18] Well; this patch to the librarian compiles [03:18] (which is always a good start) [03:18] ok, later [03:20] >>> fdc = FileDownloadClient("launchpad.ubuntu.com", 8000) [03:20] >>> fdc.getPathForAlias(1) [03:20] '/1/1/3dchess_0.8.1-11.dsc' [03:20] SteveA: would that do? [03:20] SteveA: then the webapp can put 'https://....../download' on the front of that as appropriate and we can proxypass the result === debonzi is now known as debonzi|lunch === salgado is now known as salgado-lunch [03:23] uh [03:24] maybe I misunderstanding something, but you realise you're going to have to present a traditional archive layout too, right ? [03:24] elmo: that's an entirely separate thing [03:24] ok - what's this for then? [03:24] the webapp can just make the url an abs url as 3dchess_0.8.1-11.dsc [03:24] 'cos serving up an archive via https makes me want to run into a wall [03:24] elmo: this is to allow the soyuz webapp to generate urls to specific files in the librarian [03:25] elmo: It is not a generic archive-exposing thing [03:25] SteveA: yeah; that's do [03:25] elmo: remember the librarian will also have build-logs and stuff in it [03:25] and, if the url scheme is https, then apache can perm redir to http same url under /downloads/ [03:26] if we want to save https stuff. hmm, I guess that involves the same set-up cost, though === doko [doko@dsl-082-082-067-024.arcor-ip.net] has joined #launchpad [03:26] do clients generally do pipelining of requests for https ? [03:26] for stuff in an archive, shouldn't the webapp generate to the URL to the archive, not a librarian-specific URL ? [03:26] Why 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] stub: for dogfood we don't want to expose the librarian directly [03:27] elmo: When we have a useful place to put the archive; then yes it should [03:27] Kinnison: Then the librarian should be returning the correct URL rather than localhost:8080 or some port that is internal only [03:27] Kinnison: it should expose itself to the public? [03:27] we don't want to expose the librarian URLs period, IMO === Kinnison has no strong preference either way [03:28] oh, a prudish librarian [03:28] I was just supplying a solution as asked :-) [03:29] SteveA: dunno; but they can do session-restart to save the asymmetric crypto [03:33] Should I commit this patch or not then? [03:34] SteveA: https://wiki.canonical.com/RosettaToDogfood === kiko is now known as kiko-fud === kiko-fud needs to run off [03:41] daf: write the main template layer first [03:42] that way the code is ready [03:42] and you just need to get the data transfered [03:42] it shouldn't be "write a layer that overrides the main template", but "override the main template for the rosetta layer" [03:42] hmm [03:45] don't we want the layer only to be used by testers? [03:46] do it for the whole of rosetta now [03:46] when we have the context code done (fairly soon), we'll be able to be more selective [03:47] context? [03:47] what's "context" in this context? [03:47] object that allows you to see what applicaiton, package, product, whatever you're in [03:47] and allows you to get an appropriate URL to present for a given object [03:54] Merge to rocketfuel@canonical.com/launchpad--devel--0: Add getPathForAlias to librarian client (patch-758) [03:54] thanks babe. [04:04] dilys rocks [04:05] She's certainly very handy [04:05] sabdfl: What's your favourite backup media format? [04:05] why? [04:06] Trying to choose a backup method for ca. 200 gigs of data [04:06] (for home) [04:06] I can't choose between tape or disk for a start [04:07] I figured since I remembered some mumbling about your backups at home you might have a preference :-) === ddaa grumbles.. [04:10] The Warty python does not seem to have the guts to get a traceback out of gdb... === ddaa looks for python 2.4 in hoary === ddaa wonders where to look for hoary [04:11] !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:14] Kinnison: a second hard drive :-) [04:14] sabdfl: feh; I already have RAID-1 going on :-) === Kinnison was just being taken-aback at the cost of tape hardware [04:15] sabdfl: Will the timings i put in that mail be okay for next wednesday? [04:15] yup [04:16] Mh... python 2.4 does not seem to be in hoary yet... [04:16] sabdfl: excellent [04:19] daf, carlos, is the alpha testing system supposed to be giving errors all over the show? === debonzi|lunch is now known as debonzi [04:30] rehi debonzi [04:30] Kinnison, yo [04:31] spiv: librarian works w/ sqlo--0.6, thanks [04:32] Kinnison: 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] cprov: erm; you want a dump of the dogfood db? just make one yourself. (you have sudo right?) [04:35] cprov: sudo -u launchpad pg_dump launchpad_dogfood | bzip2 -c > ~/lp-dump.bz2 [04:37] The 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:38] yeah [04:38] I guess === stub goes to bed before he gets grumpier [04:39] nighty stub [04:40] Have to work on these late nights - I've started ranting on mailing lists. Never a good sign ;) [04:42] stub: thanks, I'll try this on with pg_restore [04:44] stub: i'd NEVER be one to suggest beauty sleep [04:44] however, you shouldn't have accepted that patch from me without comments [04:44] will commit a comments fragment now === BradB wonders if there's a pgsql option that prevents adding db objects without comments [04:45] meta constraints, as it were [04:45] we'd get piles of crap comments if we enforced that [04:45] Kinnison: which would mean piles of scolding email, i guess :P [04:45] hehe [04:46] seems easier to persuade stub to not accept poorly commented patches [05:00] SteveA: ping [05:18] Anyone know offhand if the test runner is smart enough to treat .txt files as documentation/test code (i.e. doctests :)? [05:19] I want to test code in dir foo/, and so I want demonstration in foo/README.txt to get run as doc tests. [05:19] s/demonstration/demonstration code/ [05:24] sabdfl: 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 already [05:55] ok [06:13] Merge to rocketfuel@canonical.com/launchpad--devel--0: bring bounty tests on stream (patch-759) === BradB is now known as BradB|lunch [06:50] BradB|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] I wouldn't like to have just any .txt file treated as a test [07:02] Merge to rocketfuel@canonical.com/launchpad--devel--0: Rosetta functional tests disabled, they were not working and we should improve them (patch-760) === kiko-fud is now known as kiko-afk [07:15] BradB|lunch, question for you in bug 2167. === lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad [] === BradB|lunch is now known as BradB [08:15] SteveA: 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] kiko-afk: ? [08:15] yes BradB? [08:16] BradB|lunch, question for you in bug 2167. [08:16] BradB, right, there's a question -- two actually -- for you, in bug 2167. [08:16] :) [08:16] heh [08:16] ok, /me reads [08:17] BradB: why do you need to register an IZopeDatabaseAdapter? Can't you just register an IPeople or IPersons utility? [08:18] that's half the point of using utilities here -- to make this kind of test more straightforward [08:18] SteveA: It's a vocab that hits the DB. [08:19] SteveA: this test is only effective if it proves that noone broke the change i made to only return people who have passwords [08:20] if the vocab were to use IPersonSet... [08:20] then you'd just need to test that it uses the correct IPersonSet api [08:20] yeah [08:20] otherwise, you need to write a functional test [08:20] to live in .../ftests [08:20] darn [08:20] oh well [08:24] daf: can you add time estimates to here https://wiki.canonical.com/RosettaToDogfood or link to malone bugs, if there are any ? [08:29] sure [08:30] thank you [08:30] carlos: what's the ETA on that SQL script? [08:30] work in progress [08:31] estimated time? [08:32] phone [08:32] >>> int("phone") [08:32] ValueError: invalid literal for int(): phone [08:34] :-P [08:37] daf: I think it will take about 1:30 === salgado [~salgado@200-206-134-238.async.com.br] has joined #launchpad [08:37] ideally, only one hour [08:38] ok [08:38] thanks [08:38] kiko-afk: i replied. that should give you enough to get started, i think. [08:55] daf: we only have 4 people doing alphatesting... [08:55] the others don't have selected a language... [08:56] carlos: hmm, that explains why everyone has been quiet [08:57] Philipp von Weitershausen, Dwayne Bailey, Dinu Gherman and Denis Jacquerye [08:57] ok, my friends suck a lot :-( [08:57] none tested it [08:57] heh [08:59] did you mail godefroid? [09:00] I ahven't [09:00] I have two people to add to the testers [09:01] I'm now planning to add them after we make the move [09:01] godefroid was keen to have a look. it is good to respond promptly to keen people [09:02] otherwise their keenness tends to evaporate [09:02] true [09:04] daf: how difficult is it to get a new POT and set of PO files into rosetta? [09:04] sabdfl: not very [09:05] can it be user driven at this stage? [09:05] no [09:05] hmmm.... [09:05] that would be useful [09:05] the current model is "you ask for a project and the admins create it for you" [09:05] how long does it take you to do it currently? [09:06] how many projects have been asked for? [09:06] perhaps we should move towards a "you can do it and the admins will fix it if you mess it up" [09:06] nobody has explicitly asked for projects === daf -> food [09:06] right, then let's stick with that till it becomes too much of a bottleneck [09:07] is zope3 in there yet? [09:07] I asked for that [09:07] is plone in there yet? [09:08] in where? [09:09] in rosetta [09:09] in the alpha [09:09] in reply to "nobody has explicitly asked for projects" [09:09] ah, right [09:14] ok, how do i jump to the *next* matching tag [09:14] ctrl-} gets me to the first [09:14] but that's not the one I want [09:14] ] [09:14] sorry [09:14] i want another one [09:15] how do I get the next one? [09:15] I just use tjump, and select from there [09:15] I've never needed anything more fancy for long enough to find out how [09:17] tjump? [09:17] while on a tag, :tjump [09:23] sabdfl: :ts (for tag select) [09:23] thanks guys [09:48] spiv: is there such a thing as an IntervalCol? [09:48] DateTimeCol *sort of* works [09:48] if you don't push it [09:50] Hmm, I think I had some work on this somewhere. [09:53] Ah, it's already integrated. [09:53] sabdfl: Sadly, no, although it would be nice to fix it. [09:54] so using DateTimeCol and restricting it to days hours minutes seconds works best? [09:55] oh bugger that doesn't work either [09:56] unless you also limit it to a value less than one month [09:56] because as soon as the interval is greater than one month, datetimecol freaks out [09:58] spiv: I'm having some problems using initZopeless from an script [09:59] spiv: It's does all work but it's never committed to the database [10:00] spiv: If I don't use begin/commit explicity I get: [10:00] /home/carlos/Work/launchpad/lib/canonical/database/sqlbase.py:85: UserWarning: Something tried to set a _connection. Ignored. [10:00] warnings.warn("Something tried to set a _connection. Ignored.") [10:00] carlos: Are you calling .commit on the transaction manager? [10:00] and if I add the begin/commit I get an error [10:01] same warning and then: [10:01] Traceback (most recent call last): [10:01] File "./import_users.py", line 168, in ? [10:01] ztm.commit() [10:01] File "/home/carlos/Work/dists/launchpad/lib/canonical/database/sqlbase.py", line 214, in commit [10:01] self.manager.get().commit(sub) [10:01] File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/transaction/_transaction.py", line 293, in commit [10:01] I should probably turn that warning off, it never seems to be a real problem. [10:01] self._commitResources(subtransaction) [10:01] File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/transaction/_transaction.py", line 340, in _commitResources [10:01] rm.tpc_vote(self) [10:01] File "/home/carlos/Work/dists/launchpad/sourcecode/zope/src/transaction/_transaction.py", line 629, in tpc_vote [10:01] self._datamanager.prepare(transaction) [10:01] File "/home/carlos/Work/dists/launchpad/lib/sqlos/transaction/__init__.py", line 146, in prepare [10:01] raise TypeError('Already prepared') [10:01] TypeError: Already prepared [10:01] Oh! [10:01] Merge to rocketfuel@canonical.com/launchpad--devel--0: still doing soyuz/people improve and preparing for debonzi's soyuz cleanup (patch-761) [10:01] Can I look at the script, please? :) [10:02] sure [10:02] I tried to pin down this problem for lifeless earlier, but it disappeared before I could. [10:02] And I can't figure out how to reproduce it intentionally :0 [10:02] sent by mail [10:02] spiv: who does psycopgda? [10:03] daf: the script is ready [10:03] sabdfl: I'm not sure. It lives in Zope's repo somewhere, I think. [10:03] but with the problem I'm asking spiv [10:03] carlos: Great, thank you :) [10:04] spiv: another thing I was not able to do is use lanchpad_dev directly without using the external env var: LP_DBNAME=launchpad_dev [10:05] carlos: ok, cool [10:05] the dbname='launchpad_dev' seems like it's ignored [10:05] daf: and just in time :-) 1:30 minutes [10:05] carlos: I suppose we need to send it to whoever's maintaining the dogfood server [10:05] daf: you don't have access to the database? [10:05] hmm [10:05] ok [10:05] carlos: care to update the wiki? [10:06] makes sense [10:06] forget that [10:06] carlos: I'm not sure [10:06] :-) [10:06] spiv: ok, the bug appears to be in psycopgda.adapter [10:06] daf: will do it now, I will commit the script also inside rosetta/scripts is that ok for you? [10:07] carlos: I'm not sure [10:07] line 195 [10:07] carlos: if it's a general script, sure [10:07] not really [10:07] it has the data inside the script [10:07] it's specific for this task [10:07] who can i get to commit a fix there? === BradB finds out the hard way that eliding just a causes the test to fail, thinking there are differences. [10:07] I will send you it by mail now so you can review it [10:08] spiv: do you need me in the next 30 minutes? [10:08] bradb: banged my head on that one too [10:08] heh === carlos wants to go to have dinner [10:08] carlos: Don't think so. [10:08] spiv: ok, thanks [10:08] BradB: I think I might have filed a bug on that [10:09] spiv: is there a way to get postgres to report a month as "month" instead of "mon"? [10:09] psycopgda is expecting "month" or "months" from the interval, and postgres is delivering "mon" or "mons" [10:09] why, i don't know [10:10] everything else is sane: day(s), week(s), mon(s), year(s) [10:10] making it mon(th)(s) would fix it [10:10] Bug 2159 resolved: Remove soyuz/projects [10:10] https://bugzilla.warthogs.hbd.com/bugzilla/show_bug.cgi?id=2159 [10:12] sabdfl: maybe it can be changed with "set datestyle", I'm looking at the docs now. [10:12] daf: 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] daf: sent by mail === 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 [10:12] grrrr [10:12] Bug 2074 resolved: Create the Postgresql Views for Soyuz App [10:12] https://bugzilla.warthogs.hbd.com/bugzilla/show_bug.cgi?id=2074 [10:12] I should stop using Jabber [10:13] carlos: print a warning and do nothng, I think [10:13] Bug 2090 resolved: Add Brad's nickname.py lib and CreatePerson() method to FOAF [10:13] https://bugzilla.warthogs.hbd.com/bugzilla/show_bug.cgi?id=2090 [10:13] ok [10:13] will fix it and update the wiki after dinner [10:13] later [10:14] later === BradB is now known as BradB|brb [10:14] carlos: you can probably remove Limi also [10:15] ok [10:16] other than that, it looks good [10:17] sabdfl: I can't seem to find a setting to change that :/ [10:17] ok, so it's a bug [10:18] works fine for me if i change the code [10:18] but i cant commit to psycopgda [10:20] I think we should fix it locally and send a patch upstream [10:27] Merge to rocketfuel@canonical.com/launchpad--devel--0: Big soyuz clean up and organization. Everything seems to be very cleaner now. (patch-762) === elmo [~james@83.216.141.215] has joined #launchpad === BradB|brb is now known as BradB === debonzi -> dinner [10:34] night all [10:37] Merge 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:50] ok, I'm back [11:20] carlos: great [11:20] carlos: I'm going to leave soon to give a talk [11:20] daf: I'm going to leave soon to sleep [11:21] I should wake up in less than 6 hours to drive to Madrid... [11:22] ok, good night [11:22] night [11:22] daf: If you need anything from me next days, just send me an email and I will try to be online as soon as possible [11:22] carlos: sure [11:23] night!