[00:19] do we still use the keyring trust analyzer ? [00:28] lifeless: I doubt it and I hope not. [00:28] But it doesn't seem to log to scriptactivity, so we'll never know. [00:28] hmm [00:28] where is that cronscripts branch [00:29] It's not in there. [00:29] ah, you checked ? [00:29] wgrant@lamuella:~/launchpad/lp-production-crontabs$ bzr grep email-clus [00:29] wgrant@lamuella:~/launchpad/lp-production-crontabs$ [00:31] It was added in 2005 and hasn't really been touched since. [00:31] I blame jamesh. [00:31] Maybe he knows something. [00:31] I suspect it's been obsolete for 5 years, but we'd best check. [00:31] I think I had something to do with it too :P [00:31] I'll just delete it. [00:31] You appear too, yes. [00:31] * robert.collins@canonical.com/launchpad--keyring-trust-analyzer--0--patch-1 [00:31] snapshotting current pgp work [00:31] But jamesh is all the later stuff. [00:31] IIRC I did the plumbing [00:32] Gets rid of stupid tests from canonical.launchpad, too. [00:32] Kill it! [00:36] Ah, I didn't do too badly last week. [00:36] ? [00:36] My stale appserver pid file is from before EOD on the Friday before! [00:37] class LogCollector(logging.Handler): [00:37] -yet- -another- -yes- [00:37] Heh. [00:37] They're mostly cleaned up! [00:44] lifeless: I guess there wasn't much fdt progress last week? [00:47] you guess well [00:52] not as much code as I hoped [00:52] 7 files changed, 750 deletions(-) [00:52] :( [00:59] can has revooo https://code.launchpad.net/~lifeless/launchpad/bug-830789/+merge/72371 [01:02] Huh, only three gpghandler methods? [01:02] indeed [01:03] I'm not sure what to do with zeca [01:03] it seems massively overkill for it to be a twisted daemon [01:04] but I'd hate to have a transitive dependency on twisted for a web.py microservice [01:04] Probably. [01:04] so I need to either rewrite it, or have two entirely separate packages with gpg support stuff [01:04] I'm thinking rewrite [01:08] lifeless: Approved, but with lint. [01:09] hah [01:09] at least its valid [01:09] Yes. [01:10] wgrant: did you see privmsg ? [01:12] Missed that, sorry. [01:23] wgrant: I don't think we ever put the keyring trust analyzer code into production (at least, we didn't while I was working on LP) [02:28] lifeless! [02:28] You deleted the pygpgme sourcecode! [02:28] Yay. [02:28] Burn! [02:30] Re-add it so we can delete it again! [02:36] wgrant: yes, I did. [02:38] wheee 1800 OOPS-2059AY24 POFile:+translate [02:43] wgrant: It moves to an egg [02:43] StevenK: Yes. [02:43] But at least it's not a patched branch in sourcecode. [02:44] Bah, why do I still have a sourcecode/shipit directory [03:58] I wish the test suite wouldn't leave my /tmp full of launchpadlib caches and my swap full of librarians. [04:00] jtv: you're experiencing librarian leakage? [04:00] Yes. [04:00] * jtv had no idea such a word existed [04:00] grah. I thought we'd squashed that [04:00] jtv: does that happen when no failures happen? [04:01] or only when you have failures / errors? [04:01] No idea. Don't know what the lifetime of a librarian is currently supposed to be, so I have no basis for comparison. [04:02] I can tell you that the launchpadlib caches and the createdb templates (whatever those may be) are leaking with successful test runs. [04:02] its meant to be the lifetime of the layer [04:02] the createdb templaes - launchpad_ftest_template_1234 ? [04:03] or launchpad_ftest_1234? [04:07] Trying it again now. [04:08] the former has a lifetime of test-runner-process [04:08] the latter is a lifetime of one-test [04:08] A limited test run just leaked lp.createdb.launchpad_ftest_template_13091 and lp.createdb.launchpad_ftest_template [04:08] so the leak points for them are different [04:08] jtv: oh, these are files in /tmp ? [04:08] Yes [04:08] I would really like to squash the test suite creating odd files [04:08] ok, please file a bug on them leaking; [04:09] they exist to workaround postgresql behaviour on concurrent CREATE DATABASE calls [04:09] StevenK: so would I. Passionately. [04:09] the former we can fix leaks of easily - when the test runner cleansup the temp template db it can remove the lock [04:09] One of the archiveuploader tests creates a strange file [04:09] the latter file is a bit harder to nuke safely [04:10] lifeless: if the leak points are different, should they be the same bug? [04:10] jtv: could go either way [04:10] StevenK: a big source of leaks on publisher tests for me has been the lack of publisher config pointing to temp directories. [04:11] I'm trying a passing test that uses the librarian now, to see if that leaks. [04:11] jtv: I'm not really concerned about files in temporary directories -- I'm concerned about tests that dump random files into the source tree [04:12] StevenK: yes, that's what I'm talking about. [04:12] steven@liquified:~% ls -1 /tmp/lp.createdb.* | wc -l [04:12] 105 [04:12] RARGH [04:12] It's a good thing suspend and hibernate don't work, so I reboot regularly anyway. [04:13] lifeless: a successful test with the librarian just now did not leak a librarian. [04:13] thanks [04:13] I wish I had time deal with that storm problem that broke the fake librarian. :/ [04:16] lifeless: bug 830845 [04:16] <_mup_> Bug #830845: Tests leak "lp.createdb" files in /tmp < https://launchpad.net/bugs/830845 > [04:17] I bet it's nascentupload [04:18] I think I just got it from running registry browser tests. [04:18] I can recall one from archiveuploader and one from code tests [04:19] lifeless: these look like empty marker files. Would it help debugging to dump a stack trace into them? [04:19] Hmm, the unlock is in a finally: :/ [04:21] lifeless: Do you understand sinzui's comment in bug #829105? [04:21] <_mup_> Bug #829105: Able to target to release that I cannot upload to < https://launchpad.net/bugs/829105 > [04:22] jtv: no, they are just lock files [04:22] jtv: we use a lock to prevent calling CREATE DATABASE with the same template concurrently, because doing that breaks postgresql [04:22] Exactly. If you need to know where they are leaked from, it might help to know more about where they are created. [04:23] jtv: there is only one place that makes them [04:23] jtv: the stacktrace will be identical every time [04:23] OK [04:24] the one without a number in it is made when we clone launchpad_ftest_template to a per-runner template [04:24] that reduces contention on db cloning in parallel test environments [04:25] the one with a number in it is made when we clone each concrete test db (because the same code runs each time) [04:25] wgrant: which unlock ? [04:26] wgrant: I think sinzui means 'before the recent retargeting work you could not do this' + 'if someone does it the impact is severe because of the inability to delete the task' [04:27] lifeless: The recent retargeting work is unrelated. [04:27] lifeless: The lp.createdb unlock. [04:27] wgrant: I can't remember which lock system I used [04:27] wgrant: but most won't delete the lock because doing so can be racy [04:27] Ah. [04:28] e.g. with a lockdir, the lockdir itself is racy-as, but the object so locked can be locked reliably [04:29] Morning! [04:30] Hi nigelb. [04:30] Can haz review? https://code.launchpad.net/~nigelbabu/launchpad/4595-upgrade-bug-linking/+merge/71575 [04:30] Morning wgrant [04:30] (actually, is it afternoon for you?) [04:30] It is 14:30 [04:31] Ah [04:31] not its not, its 16:30 [04:32] woah, didn't know you were living that far ahead in the future. [04:32] New Zealand doesn't exist. [04:32] nigelb: I think 'Checks if links of the form /bugs/100' should be re-worded [04:32] <_mup_> Bug #100: uploading po file overwrites authors list < https://launchpad.net/bugs/100 > [04:33] ah, yes. [04:33] I had a branch that set $TEMPDIR etc. per test, but then made the mistake of trying to enforce stuff to clean up temp files and it never landed :-( [04:34] StevenK: At, remove the first 'if'? :) [04:34] *Aah [04:34] That sounds better [04:35] jtv: Your em dashes offend me. [04:35] Good. [04:39] Dear bzr push, GO FASTER [04:45] No problem here with the UK, but the US? [04:47] StevenK: well I found out why my dputs to dogfood didn't work. Next questions are why, and what to do about it. In dput config section [dogfood], "incoming = %(dogfood)s/ubuntu" translates to "ubuntu". [04:47] StevenK: updated. [04:48] jtv: If you just ran dput dogfood , then that would explain it [04:49] That's what I've always been told to run. Is it wrong? [04:51] It can be. Where do you want your uploads to go? [04:52] If you say "Onto dogfood", I'll slap you [04:54] “Wherever on dogfood a test upload for an Ubuntu series is supposed to go.“ [04:55] * jtv thinks he dodged that slap rather nicely [04:55] heh [04:56] jtv: It depends if you are uploading to a ppa as well, you see [04:56] I'm not [04:56] As far as I know. [04:56] I'm trying to upload to Ubuntu Ridiculous Rat [04:58] I think /ubuntu should be okay then [04:59] Not /srv/launchpad.net/ubuntu-queue/ubuntu or somesuch? [04:59] I mean, the poppy log suggests it's trying to write to /ubuntu [05:00] (Unless it's not being very clear, which is also possible) [05:00] exceptions.OSError: [Errno Path not allowed:] /ubuntu/farewell_1.0-1.dsc.tmp.1313988369.200371027.15260.1143614958 [05:01] Hm [05:01] Something called rootpath seems to be empty for some reason. [05:01] But it's got to be something on my end, because it was working for Raphaël. [05:01] It's been too long since I dealt with poppy [05:02] Oh, no, rootpath is okay; it's just that the path does not begin with it. [05:03] Maybe it needs a restart. One of the line numbers in the traceback was off by one. [05:03] jtv: My incoming = %(dogfood)s, and I think for distro uploads I use dogfood:ubuntu [05:04] I was told to set incoming = %(dogfood)s/ubuntu (and then I use just dogfood, not dogfood:ubuntu) [05:04] I see we have a script for starting poppy on dogfood. How do we stop poppy though? [05:05] kill; [05:06] There's no pidfile? [05:07] ps aux | grep poppy [05:07] Grr [05:11] there should be a pid file [05:12] It could be created on prod by start-stop-daemon [05:12] But poppy is a twistd. [05:12] There should be one. [05:12] But ps is easier than tracking it down. [05:13] It's been running for 5 minutes, so I guess jtv has restarted it [05:13] Yup [05:13] But I'd much prefer to automate it. [05:13] StevenK: One moreround of reviews? :) [05:14] wgrant: twistd generates pidfiles by default? I didn't see anything in /var/run [05:14] nigelb: I didn't review the last one? [05:14] It does, yes. The default is ./twistd.pid [05:14] Which has to be the most useless thing EVER [05:14] /var/tmp/poppy/poppy.pid! [05:15] StevenK: Oh. If you're busy, should I wait for OCR? [05:15] jtv: Which is wrong [05:15] Oh [05:15] It's definitely got the wrong pid in it, yes [05:15] And was created over 18 months ago [05:15] Yup. Delete. [05:15] nigelb: It gets awkward when jtv starts arguing with himself [05:16] Hehe [05:16] jtv: So we can fix startpoppy.sh to write a pid file [05:17] Personally, I don't care at all. [05:17] I track it down via ps and shoot it in the face [05:17] Which is wonderful makework but personally I'd like to avoid participating in it. [05:18] Then don't complain when poppy doesn't have a pid file :-P [05:20] * nigelb looks for another interesting bug to start work on. [05:21] StevenK: I'm not complaining that poppy doesn't have a pidfile, I'm trying to clean up one bit of the mess that dogfood has become by people personally not caring at all. [05:21] wow, mega disrupted day. where did it go. [05:24] How do I create a private branch again? Registering a branch before push only seems to let me do a +junk branch [05:25] stub: code.launchpad.net/launchpad [05:26] OTOH 2 branches landed [05:26] stub: we should do a catchup call; we missed last week (but not right now) [05:27] k [05:27] Think we missed the previous week too :-) [05:27] what's the recommended way to update devel? [05:27] rocketful-get or just doign bzr pull inside it? [05:29] I've done rocketful-get, but I don't know if its "The Right Way (tm)" [05:29] rocketfuel-get is a good way to make sure sourcecode/download-cache/devel are up to date. [05:30] hmm, wonder rif I can get two branches landed on same day. *tries* [05:31] stub: we got the week before ;) [05:32] anyhpw [05:32] -> groceries [05:35] StevenK: the dogfood:ubuntu did do the trick after all, thanks! [05:35] I thought the "/ubuntu" in my config would obviate that. [05:35] BTW poppy has a pidfile now, and startpoppy.sh has a sibling stoppoppy.sh. [05:35] all information related to user profile like timezone, go into registry, right? [05:48] What changed with gpgme recently? [05:49] We're using an egg instead of a branch. [05:49] Which is good. [05:50] No. [05:50] It's just better than a branch. [05:53] Make is failing until devel is merged in [05:53] poolie: You no longer need to retarget to null. [05:54] poolie: Expand the bugtask row and retarget to Ubuntu directly. [05:54] (gpgme is gone from sourcecode, but buildout won't build the egg until versions.cfg etc. has the update) [05:56] We don't test logout() anywhere. Fails when it attempts to redirect through codehosting to clear any secure codehosting auth cookie, which isn't running under the test suite. [05:58] ok, small world. I just realized who the author of pytz is. [05:59] stub: It's not tested end-to-end, no. [05:59] stub: That would be difficult, as I don't think testopenid supports logout. [06:00] Which would have been the next roadblock :-P [06:00] (it doesn't support login) [06:01] It doesn't? I thought it was the same as we use running a local dev instance. [06:01] (And logout fails on my local dev instance because... no codehosting.) [06:02] The redirect path is launchpad->codebrowse->OP [06:02] stub: There's a special make run for codehosting on .dev [06:02] I don't think testopenid.dev exposes a logout interface. [06:02] Or is it just my setup that doesn't have a working bazaar.launchpad.net? [06:02] Because it doesn't have authentication. [06:02] run_codehosting or something [06:03] Well, doesn't cache authentication. [06:03] So it would be a noop [06:03] we should move auth cookie maintenance to a microservice anway [06:03] It's SSO all the way down? [06:03] * stub has a single line fix and no way to test it [06:04] stub: Oh? [06:04] wgrant: well, one possibility is to talk directly to sso; but that won't work with being openid consumer unless we teach sso about that too [06:04] I'll try getting a codehosting setup running locally [06:04] So the hardcoded redirect path works [06:04] wgrant: another possibility is a microservice (xmlrpc on the main appservers initially) which maintains session cookies [06:05] StevenK, wgrant: any objections to a publish-ftpmaster run on dogfood? [06:06] lifeless: Oh, you mean for codebrowse? [06:06] lifeless: Not sure how that solves the problem, which is we need to clear cookies on a number of domains that are not always available. [06:06] stub: 'make run_codehosting' rather than 'make run' [06:06] jtv: None. [06:06] stub: it removes the cookies from those domains [06:06] jtv: Only that it will take EONS [06:06] StevenK: all the more reason to get started as soon as possible! [06:07] lifeless: How does that work without requiring the authentication being treated as a web bug and blocked? [06:07] Also, this run shouldn't take as long as normal ones do. [06:07] stub: let me check an assumption: these are all LP domains right ? *.launchpad.net ? [06:08] lifeless: Not quite. We go all the way through to SSO. [06:08] oh, yes. So no idea why we need to bounce through codehosting. [06:08] Well, unless you count login.launchpad.net as *.launchpad.net, in which case get out. [06:08] wgrant: I do [06:08] Die. [06:08] anyhow [06:08] Don't mess with SSO. [06:08] login.launchpad.net is hopefully not long for this world. [06:08] redirecting to SSO isn't what I was mumbling about. [06:09] We should treat it opaquely. [06:09] it was codebrowser + the wikis [06:09] which we only slightly log out of at the moment [06:09] The wikis aren't part of LP yet.... I'm not sure we should go near them. [06:09] anyhow, the real key point is we don't need to clear the cookie [06:09] we need to invalidate the session [06:10] Yes. [06:10] which is really quite different [06:10] We need to rewrite all our session management for everything. [06:10] Because it's wrong and inconsistent and hard to manager. [06:10] s/r\././ [06:10] Yes. [06:10] I can't type. [06:11] aiieee [06:11] that paged in a phil collins song [06:11] logout is still broken running run_codehosting [06:11] Hah. [06:11] stub: What happens in that situation? [06:11] I don't seem to have bazaar.launchpad.dev [06:11] StevenK: 503 [06:11] check your hosts [06:12] StevenK: you don't get logged out [06:12] Well, you only get logged out of LP. [06:12] Rather than LP+codebrowse+SSO [06:12] % grep bazaar.launchpad.dev /etc/hosts [06:12] 127.0.0.99 bazaar.launchpad.dev [06:12] which is still horribly partial [06:12] do we invalidate api tokens too [06:13] ? [06:13] Not sure if serious. === jtv is now known as jtv-eat [06:15] me? I am, logging out really should Log You Out. [06:16] What if I want my many cronscripts to not need resetting every time I want to log out on some machine somewhere? [06:16] provide an advanced partial logout [06:16] sane defaults and all that [06:16] your many cronscripts case is not the common case [06:16] So logging out on one machine should log you out of *all* machines? [06:16] There should be a way to revoke sessions and tokens, sure. [06:16] But having that be the default is insane. [06:17] INF [20110822-13:16:27.297] [47438788081408] loggerhead: Processed err https://bazaar.launchpad.dev/%2Blogout?next_to=https%3A%2F%2Ftestopenid.dev%2F%2Blogout [0.001 seconds]: ['TypeError: oops_start_response() takes exactly 2 arguments (3 given)\n'] [06:17] lifeless! [06:17] stub: thank you! [06:17] lifeless: Does any other webapp do the s/Log Out/KILL EVERYTHING/ thing you are suggesting? [06:17] fixing [06:17] I've never seen it. [06:18] wgrant: its recommended by security folk AIUI [06:18] I've seen revoking all sessions and tokens on *password changes* recommended. [06:18] But never on logout. [06:18] wgrant: the distinction between oauth, browser session and machine session is not well understood by casual users [06:18] So we should make the default action blow everything up for advanced users? [06:19] tokens should only be revoked that are being used by the web browser on logout, not the ones that have been setup for use by command line/desktop integration etc. [06:19] Let me just log out... [06:19] Oh fuck now I have to reauthorize 30 scripts on 10 servers. [06:19] wgrant: don't conflate default-setting with UI [06:20] we could fix the 'get /logout' logs you out bug, moving logout to an actual post; supply a confirmation form with everything checked and let you unselect stuff you want kept (with the current session having an 'online this session' option beside it for quick selection. [06:20] Logout isn't logout everywhere - it is logout the web browser. Not logout on your laptop too, and deauthorize all your other clients. [06:20] stub: this is exactly the point, that subtlety is lost on casual users. [06:21] stub: they don't understand that e.g. the 'log in with gmail' button establishes a persistent 3rd party session [06:21] It doesn't [06:21] (ok - replace with twitter oauth argument) [06:22] We should certainly fix the OAuth token view to be a general authentication session management view, and make that obvious and next to the logout button. [06:22] But the browser logout button should log the browser out. [06:22] Not destroy the world. [06:22] from where does things go into the context? [06:22] I don't think the subtleties are lost. Most of what I see is that people expect their tokens to be destroyed on password change, not logout. [06:23] In a view, 'context' is normally the object that the view is on. [06:23] nigelb: ^^ [06:24] stub, lifeless: Facebook doesn't do this, AFAIK. [06:24] And if Facebook doesn't, then I think even non-technical users are probably not too terrible about this concept. [06:24] wgrant: argh. So, how would I add a variable to that? [06:24] ugh [06:24] (replace "Facebook" with "99% of websites on the Internet" and it will still fit) [06:24] its wsgi oops thats broken [06:24] fixing [06:24] who knew... http://www.python.org/dev/peps/pep-0333/#the-start-response-callable [06:25] wgrant: No, which surprises people when they change their twitter password and linkedin is still connecting. [06:25] nigelb: Find the class, add an attribute to it. [06:25] wgrant: But that is password change [06:25] stub: Yes. [06:25] wgrant: the class I found from configure.zcml, but I can't find the other attributes defined there, which confuses me. [06:26] stub: I think defaulting to reset stuff on password change may be permissible, as long as it's very obvious what is about to happen. [06:26] But on logout is just insane. [06:27] wgrant: yes, and reset tokens on password auth is what I've seen recommended. I don't think I've seen it recommended for logout either (I thought initially lifeless meant the tokens being used by the javascript api, but I'm not sure they actually exist?) [06:27] stub: JS just uses the cookie for now. [06:27] We should certainly make it easy to do. [06:28] At present there's no way to revoke a remote machine's session. [06:28] Unless you are stub. [06:28] urg [06:29] s/machine/browser/ [06:30] thought you meant an oauth token there :) [06:31] No, those have had a view to manage them since day 1 :) [06:36] Anybody up for a rather trivial review? https://code.launchpad.net/~wgrant/launchpad/bug-830803/+merge/72378 [06:36] And https://code.launchpad.net/~wgrant/launchpad/bug-830849/+merge/72379 is a little bigger. [06:39] wgrant: r=me for the first. [06:40] wgrant: For the second, r=me, if there are already tests for _syncSourcePackages [06:40] stub: http://paste.ubuntu.com/672219/ should fix it for you [06:40] stub: I'm working on a test now [06:41] stub: (thats to python-oops-wsgi, easiest way is for you to checkout the trunk, set develop= . ../path/to/that/checkout and run bin/buildout again [06:41] Nah, its easier to do something else until it winds its way through ;) [06:42] StevenK: Thanks. It is tested somewhere (I ran into it some time in the last 15 branches), but I will add direct tests on transitionToTarget. [06:43] wgrant: In that branch itself? [06:43] StevenK: Yes. [06:43] StevenK: review? https://code.launchpad.net/~nigelbabu/launchpad/4595-upgrade-bug-linking/+merge/71575 :D [06:44] nigelb: You know, stub is OCR today :-P [06:45] Is there a page saying who's reviewing when? [06:45] https://dev.launchpad.net/ReviewerSchedule [06:46] ah [06:46] stub: could you review the brach above? [06:46] :) [06:46] yo [06:50] nigelb: Not sure I approve of calling a private bug a bug with an invalid link - seems a separate case to test to me. [06:50] Hahahah [06:50] He was doing that, but then lifeless said they were the same case :) [06:50] That ^ [06:51] Also, its similar to what happens in the UI. [06:51] I'm open to changing the text to make it clearer. [06:53] I think it is better to be explicit. Saves fallout if we linkify private bugs (which we can do if it is client side). [06:53] So, say "Bug 123 is either invalid or not visible to you" [06:53] <_mup_> Bug #123: There's no direct way to see the project info when translating it < https://launchpad.net/bugs/123 > [06:53] nigelb: We treat invisible private bugs as not existing. [06:54] Say something like "Bug 123 does not exist", perhaps. [06:54] <_mup_> Bug #123: There's no direct way to see the project info when translating it < https://launchpad.net/bugs/123 > [06:54] nigelb: No, it is invalid if you don't have access. Same as we 404 private bug pages rather than a no-permission errorcode. [06:54] I'm confused now. [06:54] *Test* both cases. [06:54] In one case, there's a private bug you have access to, it linkifies correctly. [06:55] The cases behave the same way. [06:55] nigelb: Simplest thing to keep me happy is a second invalid link, which is really invalid, in addition to the private bug, which is only invalid if you don't have permissions. [06:55] But test both. [06:55] stub: It does that. [06:55] The private bug case linkifies correctly if you do have permission [06:55] make_invalid_bug_links returns a single link, a link to a private bug. [06:55] My test case, however, uses a user who doesn't have access. [06:56] wgrant: Grar, lifeless told me to do the opposite. [06:56] Right. So we are testing that we handle private bugs correctly, but not utterly broken urls [06:56] Test one case since it should behave the same anyway. [06:56] nigelb: Yes. Normally I would agree. but this is a bit of an odd case, and I disagree with him. [06:56] Unless we defer that to searchBugs [06:57] Ok, so how do I create an invalid bug for sure? [06:57] (inside a test) [06:57] Bug a helper called 'make_invalid_bug_links' that returns a perfectly valid bug would certainly need a comment to avoid a WTF. [06:57] heh [06:57] nigelb: make a bug and add one to its id would be good enough. [06:58] okay, I'll update the test with both the cases. [06:58] (or add 1000 - add one will only be invalid until the next makeBug call. [06:58] jml: hi [06:59] stub: wgrant: testing the behaviour of searchIds is inappropriate for a view test :( [07:00] lifeless: It's a very unobvious implementation detail. [07:00] I think it's reasonable to test it here, as long as it's not too long. [07:00] mmm, this is really just exposing searchIds on an adhoc API [07:00] lifeless: make_invalid_bug() that returns a valid bug is WTF. [07:00] stub: the test being unclear ? sure :) [07:01] wtf, gpgme error when I run tests. [07:01] nigelb: Merge devel, run make. [07:02] okay. [07:02] nigelb: So lifeless and me sort of agree. [07:02] okay === jtv-eat is now known as jtv [07:02] so just add a comment to the test? [07:03] That would work. [07:04] 'As far as searchBugs() is concerned, this is an invalid bug to the currently authenticated user' or similar. [07:04] https://code.launchpad.net/~lifeless/python-oops-wsgi/extraction/+merge/72380 can has review [07:04] stub: I'll land it with a version bump and do a new egg etc after the review [07:07] actually I see you are distracted [07:08] I will land a 0.0.2 tarball + lp simple tweak to use it, and you can review later. [07:11] StevenK: Test added. [07:11] stub: updated, could you land it as well? [07:12] lifeless: I'll review it. [07:13] ok, man sensible-browser lies [07:14] I'm trying to fix bug 188187, should I add another property to the view class for that? Is that the right way? [07:14] <_mup_> Bug #188187: Please display offset to UTC with timezone info for profiles < https://launchpad.net/bugs/188187 > [07:15] jtv: thanks [07:15] nigelb: I would do it in the formatting of the field [07:16] nigelb: ok [07:16] lifeless: hm, where do I look to find that. I've been unsuccessful in finding that. I traced the it from the configure.zcml file and then got lost. [07:16] stub: Thanks! [07:17] lifeless: done [07:17] nigelb: well, start with the view [07:17] nigelb: see what it does, does it do a formatter call, or access an attribute of the timezone object.. [07:17] it access a context variable [07:18] jtv: you may not know this , but pep8 mandates indent by 8 for function call continuation lines [07:18] I didn't, no. [07:19] So does that mean we're going to have a mess of inconsistent indentations now? [07:19] its under code layout 'When using a hanging indent the following [07:19] considerations should be applied; there should be no arguments on the [07:19] first line and further indentation should be used to clearly distinguish [07:19] itself as a continuation line.' [07:20] jtv: uhm, I don't know what we should do in LP itself; these new trees are pure PEP8 though [07:20] jtv: so I wouldn't expect any inconsistency within a single project [07:20] Phew. :) [07:20] lifeless: You mean function definition? [07:20] Although I must say the 8-char indent would help the broken-if-condition situation. [07:20] wgrant: no, this is function call. [07:21] wgrant: it applies to both [07:21] # Further indentation required as indentation is not distinguishable [07:21] wgrant: function calls are listed as optional [07:21] def long_function_name( [07:21] \ Optional: [07:21] var_one, var_two, var_three, [07:21] var_four): [07:21] print(var_one) [07:21] # Extra indentation is not necessary. [07:21] foo = long_function_name( [07:21] var_one, var_two, [07:21] var_three, var_four) [07:22] I'mnot seeing the mandated indentation by 8 for function calls. [07:22] Only function definitions. [07:22] wgrant: its a contextual rule, not specific to function definition or calling [07:22] wgrant: just so you know, this isn't working very well in my IRC client. [07:23] and further indentation should be used to clearly distinguish [07:23] itself as a continuation line. [07:23] please use etherpad? [07:23] For a function call it is already clearly distinguished. [07:23] wgrant: yes, thats what I quoted above:) [07:23] There's no following block. [07:23] wgrant: not always (e.g. call within an if) [07:23] Huh? [07:24] Oh, within an if statement, not an if block? [07:24] correct [07:24] jtv: the del exc_info is there to avoid circular references [07:24] jtv: its advised by the wsgi pep [07:25] I thought the python gc had some special trick for dealing with circular references. === henninge changed the topic of #launchpad-dev to: https:dev.launchpad.net/ | On call reviewer: henninge | Critical bugs: 238 - 0:[#######=]:256 [07:25] jtv: it puts its hand up in the air, runs around and gibbers. [07:25] Oh, OK. That makes sense. [07:25] jtv: some of the time this works, other times it leaves uncollectable objects. [07:26] lifeless: I still see nothing that suggests two levels of indentation for normal function calls. [07:26] s/objects/cycles. [07:26] lifeless: don't forget the closing / [07:26] jtv: a cycle of objects is uncollectable (today) if any have __del__ [07:27] To avoid the horrors of object revival through finalization? [07:27] jtv: so avoiding cycles is pretty important for library code. [07:27] * jtv loves constructors, hates finalizers [07:27] jtv: to avoid race conditions or injecting altered state into the objects [07:27] e.g. A -> B -> A, and A has a __del__ [07:28] if you delete B first, A's __del__ might use B and boom. if you delete A first, its ok. [07:28] I don't recall if the gc handles one __del__ ok, or only fails when there are two involved. [07:28] Or as I put it, the horrors of object revival through finalization. :) [07:28] IIRC it just taints the cycle when it finds a __del__ and moves on. [07:29] one common trick, while we're on this, is to have A -> B, C then B->A and C has the __del__ [07:29] it handles that just fine [07:31] EPARSE [07:31] A→B, C? [07:31] A holds a reference to B and C [07:31] B holds a reference to A [07:31] Ah. [07:31] 'points at' :) [07:31] Not what I meant. [07:32] "A → B, C then B→A and C has the __del__" is ambiguously scoped. [07:33] jtv: how would you layout the dict better? even out of the assert those lines are just too long [07:33] they are already only 4 characters in [07:34] One item per line, with comma after each item. [07:34] AHHHH [07:35] Ignore me. I think I just figured out why I couldn't get something to work. [07:36] jtv: so the problem bit isn't in the dict, its the expected start_response args [07:36] lifeless: could be—a bit hard to say given the current layout. [07:37] jtv: how does this grab you [07:37] http://paste.ubuntu.com/672245/ [07:37] good morning [07:37] lifeless: Gently and not altogether unpleasantly. [07:38] Even so, I may sue. [07:38] is that +1? [07:38] hi adeuring. I bet you're wondering what all that was about, but you missed it and now it's too late. [07:38] lifeless: yes [07:38] ? [07:39] :-P [07:42] hmm [07:43] lxc-stop -n lucid-test-lp is dropping my box of the network for 60 seconds [07:43] this is not coincidentally the default bridge watchdog timeout [07:43] no liky [07:44] stub: all the bits you need are in trunk [07:44] ta [07:44] stub: I suspect loggerheads is further broken based on lp's qastaging behaviour [07:45] stub: ... so please try before I sleep :) [07:45] lifeless: sorry, I'm stealing stub at the moment for some emergency U1 work [07:45] Got u1 replication, then I need to guilt mthaddon into doing the pgbouncer LP config updates [07:45] heh [07:53] hm, was the StyleGuide overview page removed from the dev wiki on purpose? [07:53] https://dev.launchpad.net/StyleGuides [07:53] It's still linked from here https://dev.launchpad.net/PatchSubmission [08:08] jml: ping [08:15] hi henninge! Review? https://code.launchpad.net/~jtv/launchpad/post-824553/+merge/72389 [08:16] jtv: r=me [08:17] thanks [08:17] although I had to look up the exact meaning of "vestigial" ... ;-) [08:18] rvba: it prints None. [08:18] henninge: good, so we're all learning. :) [08:18] jtv: arg ... thank you! [08:18] rvba: want me to make any changes? [08:18] Hello [08:19] jtv: I'll change it a bit and ask you to run it again if you don't mind, thanks for the offer :) [08:19] OK [08:19] hi mrevell [08:20] jtv: http://paste.ubuntu.com/672274/ [08:20] coming [08:22] rvba: pretty-printed for your convenience… http://paste.ubuntu.com/672278/ [08:23] jtv: thank you! [08:23] rvba: by the way, the default argument for dict.get defaults to None. [08:23] So {}.get('x') == None. [08:24] jtv: ah, right :) [08:24] Thanks [08:24] rvba: I still have the shell open so if there's anything more you need from that variable, say the word. [08:25] jtv: great, I'll ask you if I need another execution on "real" data. [08:30] lifeless: hi [08:31] lifeless: got a call w/ rickspencer3 scheduled now. let me juggle a bit [08:31] jml: FYI its now 2030 [08:31] jml: we're about to eat [08:31] lifeless: oh, ok. then go eat. [08:31] jml: in about 15 I'll be available [08:31] lifeless: ok, thanks. [08:38] AttributeError: https://api.launchpad.net/1.0/~nigelbabu/launchpad/4595-upgrade-bug-linking object has no attribute 'queue_status' [08:38] Anyone else having issues with ec2 land? [08:38] That's a branch [08:38] Not an MP [08:39] ahh [08:39] er, do I need to do anything? :) [08:39] nigelb: Yes. Tell stub he is a numpty :-P [08:39] A better reviewer? [08:39] Haha [08:40] stub: It used to say "Entry" object has no attribute, which was ... handy [08:40] heh [08:40] raise PEBKAC("You suck") [08:42] Thats better - back to the usual 3rd world ISP issues [08:46] My first non-trival branch to LP! :) [08:46] Meaning of course my code diff is comparable to the size of the tests diff. [08:48] jml: ok [08:51] lifeless: hi [08:51] lifeless: skype? [08:51] sounds good [08:51] jml: except [08:51] jml: its evening here and my isp is fail [08:51] jml: can you ring my landline ? [08:51] lifeless: oh. sure. [08:52] e..g skypeout to that [08:52] yeah, I have skypeout. [08:52] nigelb: Have you done all the contributer's agreement stuff? [08:53] stub: Yeah. Its my 6th branch :) [08:53] Cool. [08:53] lifeless: I dialled the number in the directory. Got a beep, then no sound. === danilo_ is now known as danilos [08:59] jelmer: are you up to date on Q/A? The production report seems a little behind the times but it looks like you're set to be the next blocker after bac gets his Q/A done. [09:00] jtv: I checked up on it yesterday, but it appears that tellarium is down at the moment and that blocks my QA. [09:00] Ah. Sometimes I wonder if IS sprints are organized just to remind us to appreciate our admins. :) [09:00] (-: [09:02] lifeless: sorry for the late feedback, but I did find one obvious problem with python-oops-wsgi: https://bugs.launchpad.net/python-oops-wsgi/+bug/830931 [09:02] <_mup_> Bug #830931: python-oops-wsgi's proxy start_response callback does not handle a third argument. < https://launchpad.net/bugs/830931 > [09:11] jamesh: http://bazaar.launchpad.net/~canonical-launchpad-branches/python-oops-wsgi/trunk/revision/9 might be relevant. [09:12] ah. probably should have checked that before filing the bug report [09:12] It's only a couple of hours old :) [09:14] bigjools, hi, can you perhaps lend a hand with triaging bug 829253? [09:14] <_mup_> Bug #829253: issues with virtualized buillds? < https://launchpad.net/bugs/829253 > [09:14] danilos: it's not a launchpad issue, it's either an RT or a buildd problem [09:15] Or a Xen bug [09:15] indeed [09:15] Or a package bug. [09:15] I'd retarget to buildd and raise an RT [09:16] bigjools, ok, I'll do that, but what should I put in the RT? [09:16] danilos: link to the sme build pages as in the bug [09:16] same* [09:17] and ask if it's a buildd problem === mrevell_ is now known as mrevell [09:21] mrevell: hi! === almaisan-away is now known as al-maisan [09:29] Hey there nigelb :) [09:29] mrevell: Morning! Were you able to look into that bug? :) [09:30] nigelb, Not yet but it is on my list for today. As Gary said last week, it's likely we'll want to do some testing on it. [09:30] mrevell: Yeah, that sounds good. [09:31] nigelb, At first it sounds pretty obvious that we need a "Subscribe me" button but, as Gary said, there are a few things to consider. I'll update the bug report and ping you when I've done something about it :) [09:35] bigjools, another one for you: in bug 798611 cjwatson asks if we could run the sync more frequently? (if you think we could, I'll file an RT or simply propose a merge against launchpad-production-configs) [09:35] <_mup_> Bug #798611: Package Auto Sync seems to get ahead of +localdiff calculation < https://launchpad.net/bugs/798611 > === al-maisan is now known as almaisan-away [09:35] danilos: leave it with me [09:35] bigjools, ack [09:35] thanks [09:35] mrevell: sounds good :) [09:59] those possessing Zope knowledge: Do you know if there's a standard way to test security proxies? I've done it by hand in some recent code (see https://code.launchpad.net/~allenap/launchpad/job-status-validator/+merge/62509, line 532) but it's the kind of thing for which I suspect someone else has already come up with a good solution. [10:11] StevenK, wgrant: can you think of how we could possibly close LP bugs when syncing? The current code requires a changes file. [10:11] which ain't gonna fly for syncs [10:13] gah @ qastaging timeouts [10:15] bigjools: We'll have to parse them from the changelog-since-base manually. [10:15] they are mentioned there? === mrevell_ is now known as mrevell [10:16] as in, Debian changlogs reference LP bugs? [10:16] bigjools: Occasionally, yes. Most Ubuntu developers, and some Debian-only developers, put LP bug references in Debian uploads when they fix LP bugs. [10:17] So they can sync through and the bugs sort themselves out. [10:17] ok ta [11:12] henninge: Hi, could you have a look at these 2 (tiny) MPs? [11:12] https://code.launchpad.net/~rvb/launchpad/ids-fix/+merge/72398 [11:12] https://code.launchpad.net/~rvb/launchpad/queue-bug-830983/+merge/72406 [11:12] rvba: Hi! Having a look ... [11:13] ta [11:14] rvba: IDS = "Intrusion Detection System" ? [11:14] henninge: InitializeDistroSeries ;) [11:14] ;-) [11:15] First line of diff reveals it but it confuses in the cover letter ... [11:25] rvba: why did you move those methods in test_initialize_distroseries.py? [11:26] henninge: To put them in InitializationHelperTestCase which is the base class for the new tests in test_initderiveddistroseries.py. [11:27] henninge: And of course because the new tests use them. [11:27] rvba: ok [11:28] henninge: BTW, these branch depend on one another for no other reason than the fact that these are tiny fixes that I want to land in one go. [11:28] branches* [11:29] rvba: why did you add the "return true" [11:29] ? [11:29] rvba: did you just do it so you can use "assertTrue"? [11:29] henninge: Exactly. [11:30] rvba: no need for that [11:30] For the test to be more "explicit". [11:30] More "readable". [11:30] rvba: but it is not, it is more confusing ;-) [11:30] better to assert the behaviour [11:30] henninge: The behavior is that no exception is raised. [11:30] I understand that [11:31] but your test does not mention that. [11:31] I could assert that it returns None. [11:31] it never returns "False" so there is no point in "assert True" [11:31] but that is not what you are testing ... [11:32] henninge: makes sense, so you would recommend changing that to assert that None is returned then. [11:32] ? [11:32] rvba: it is perfectly fine to just call the method under test and add a comment like "This should not raise an exception" [11:32] rvba: no, assert nothing [11:32] (and remove the "return true") [11:32] Okay. [11:33] then everybody knows you are just running it to see if it won't raise an exception. [11:33] rvba: that's why we have "assertRaises" but we don't have "assertRaisesNot" ... ;-) [11:38] rvba: Same issue with the other branch. [11:38] henninge: Yep, I'm fixing this right now. [11:38] rvba: cool, thanks ;-) [11:38] r=me with those fixes. [11:39] henninge: thanks a lot! [11:45] henninge, rvba: if something isn't raising an exception then presumably something else happened which can be tested? [11:45] bigjools: that is a good point! [11:45] bigjools: this is IDS.check() so completing without raising an exception is what I want to test. [11:46] rvba: that's not a good test though [11:46] I think .check() returns None if everything was fine [11:46] StevenK: exactly [11:46] So assert that it did so, and you're good [11:46] I could make a function return "wibble" and check for that. [11:47] doesn't test much :) [11:47] No, I think a funtion should be clear about it's interface. [11:47] it either communicates by raising exceptions or by returning values. [11:47] IDS.check() returns None if everything is good, or it raises an exception with the problem. What's the issue? [11:48] I agree with StevenK's question :) [11:48] if it communicates by raising exceptions, not raising one is a valid test according to the functions interface. [11:48] StevenK: because it changes nothing and does not improve the test. [11:49] the function will either raise an excpetion OR return None [11:49] but the None is useless [11:49] if it returns None when everything is ok then the test needs to make sure everything is actually ok [11:49] otherwise how do you know returning None was correct? [11:50] bigjools: I agree that the test could check for data that was changed by a function after it completed without an exception [11:50] bigjools: I see this the other way around: I setup data to test for a specific case, then I test that ids.check() does not raise an exception for this case. [11:50] only that a validation function should be definition not modify data ... [11:50] rvba: I think that is a poor test [11:51] bigjools: it is no different to testing that a constant value is returned. [11:51] that is equally poor and misleading [11:51] and of course I have other tests to make sure the proper exceptions are raised when it's appropriate. [11:52] because reading the test you think the None (or True in rvba's case) has some meaning which it does not have. [11:52] if there are other tests to make sure that certain inputs DTRT then that excuses this test, I was just taking the test in isolation [11:52] rvba: exactly, I expected those to be there. [11:52] henninge: bigjools these tests *are* already in the same file. [11:53] * rvba is ready to pull the "ec2 land" trigger on this. [11:53] rvba: I expected that, otherwise some previous reviewer did a poor job ;-) [11:53] rvba: go ahead, this reviewer approves ;-) [11:54] and goes to lunch === henninge is now known as henninge-lunch [11:55] Anyone here familiar with recipe builds? [11:56] I pushed a change to meta-lp-deps and got some emails along the lines of "[recipe build #73739] of ~launchpad meta-lp-deps-on-demand in lucid: Chroot problem" [11:56] <_mup_> Bug #73739: unstoppable (probably) gnome-panel looping crash < https://launchpad.net/bugs/73739 > [11:56] Shut up mup. === jtv1 is now known as jtv [11:56] Chroot problem is not a recipe problem [11:56] No, but I need to know what this implies. Did something break fatally? Do I need to push it again? [11:57] No and no [11:57] Thanks. [11:57] Something is broken, but you didn't break it [11:57] Link me the URL in the body of the mail? [11:57] * jtv digs [11:58] Here's one: https://launchpadlibrarian.net/77594282/buildlog.txt.gz [11:58] And: https://launchpad.net/~launchpad/+archive/ppa/+build/2721413/+files/buildlog_ubuntu-natty-i386.launchpad-dependencies_0.98%7Enatty1_CHROOTWAIT.txt.gz [11:58] And: https://launchpad.net/~launchpad/+archive/ppa/+build/2721414/+files/buildlog_ubuntu-oneiric-i386.launchpad-dependencies_0.98%7Eoneiric1_CHROOTWAIT.txt.gz [11:58] Certainly not your probnlem [11:58] There's also links in the sigs. Need those? [11:59] No, I have enough [11:59] OK [12:02] jtv: When did you push, around now-ish? === benji changed the topic of #launchpad-dev to: https:dev.launchpad.net/ | On call reviewer: henninge, benji | Critical bugs: 238 - 0:[#######=]:256 [12:03] StevenK: when does the debian publisher run, exactly? And do you know typically how long it takes to complete? [12:04] bigjools: I have no idea. [12:05] StevenK: ok :) Do you know where I can find out? [12:06] bigjools: Mail/bug Ganneff? [12:06] StevenK: Friday IIRC [12:06] bigjools: https://answers.launchpad.net/launchpad/+question/161595 [12:07] bigjools: the last line is (if I'm reading it correctly) from Debian. [12:07] bigjools: No idea how long it takes, though. [12:09] So, based on that question, we give Debian 2 hours to run dinstall *and* for ftp.uk.debian.org to pulse and update. I don't think that's long enough. [12:09] soren: thanks [12:10] in fact 2h13m [12:10] And in fact, there is another missing piece [12:10] yes, our own rsync [12:11] When does debmirror on iron run, since *that* is what gina pulls from [12:12] jtv: Right. I think that mess has been sorted out. [12:12] Good, thanks. [12:12] StevenK: 52 2,8,14,20 [12:12] Let me see if I can resurrect stuff [12:13] so we give debian 1hr to publish and sync [12:13] And sync from ftp.debian.org to ftp.uk.debian.org [12:13] I don't think that's long enough [12:13] StevenK: how do you know we get it from the uk mirror? [12:13] ftp.uk.debian.org shouldn't sync from ftp.debian.org [12:13] It'll sync direct from ftp-master. [12:14] wgrant: Right [12:14] bigjools: Since I had to help fix debmirror, and I *think* it pulls from ftp.uk.debian.org. A LOSA could confirm. [12:14] StevenK: ok ta === henninge-lunch is now known as henninge [12:50] I've been doing some reviews in GH with pull requests... at first glance the thing where you add comments to a diff seems nice, but in practice I miss the simple textarea from Launchpad where I can copy and paste code and review my review before I send it. [12:50] With GH the line items to add to a diff are visible, in realtime, to everyone else. [12:50] Sometimes fancy isn't better. [12:54] jkakar: I've never really used it, but it also seems to be that if the patch is revised based on the feedback, how will you be able to tell a) which line a comment pertains to now (since the line number and/or content might have changed) and b) whether it's still relevant. [12:55] jkakar: I tend to prefer LP's e-mail interface for code reviews, though. [12:55] soren: No idea. I'm finding GitHub generally confusing so far and I miss a number of things from Launchpad. [12:55] For example, there's on way to specify a prerequisite branch when you create a pull request... and it isn't smart enough to figure it out for itself. [12:55] jkakar: Oh, I always assumed GitHub line-based comments were still done in sort of a single transaction, like Launchpad's. [12:56] wgrant: No, they're not. They're realtime... people can respond to your comments while you're reviewing. [12:56] bah, test failure [12:56] Which seems a bit useless really. When a review is so important that you need that kind of response just phone someone and do it in person, or do it on IRC or something. [12:57] Pull requests also have no state beyond open and closed. I miss 'Needs Fixing' and 'Needs Information'. I also miss the +activereviews page where you can see pull requests you can do, that need your attention, etc. [12:57] GH does have a much more polished UI than Launchpad. And being able to follow people is pretty cool. [12:57] The biggest reasons we've switched to GH are (a) price (b) builtin wikis and (c) perceived easier UI. [12:58] Probably in a, c, b order. [12:58] GH looks much more like an OS X app than Launchpad, yeah. [12:58] soren: Yeah. It also has some wicked features, like builtin webhooks and builtin services like commit bots. [12:58] But the things I use on a daily basis leave me feeling a bit underwhelmed after Launchpad (bugs + merge proposals). [12:58] jkakar: I always like launchpad for its +activereviews page and overall better review panel. [12:59] Maybe it'll just time to get used to it. [12:59] jkakar: But as you point out, pull requests and issues lack of lot of metadata. [12:59] nigelb: Yeah, me too. [12:59] I constantly use both. [13:00] I seem to be allergic to git. Every time I try and use it, I break out into bouts of vicious swearing. [13:00] There's creams for that sort of thing now :P [13:01] Achivement Unlocked: Broke a bucketload of tests on landing. [13:03] StevenK: The sense that I have to punch someone in the face everytime I use it is dwindling with experience. [13:04] StevenK: I don't find it any faster or slower than Bazaar, which is interesting since speed is the thing everyone goes on and on about. [13:04] As far as I can tell they're the same: local operations are fast and network operations are slow. [13:05] Two years ago bzr was really slow. [13:05] And nobody has used it since then. [13:06] I *think* most of what that git can do can be accomplished with bzr. [13:06] But some are not out of the box. [13:06] are co-located branches out of the box yet? [13:06] Very nearly. [13:06] jelmer has been working on that, I believe. [13:07] But bzr-colo does a pretty damn good job. [13:07] I agree. So, the last time I checked that was my only irk, except I learn that's around in bzr too. [13:07] I find colocated branches to be a downside at times. [13:07] yeah, colocated branches are slowly making their way into core bzr [13:08] I've noticed bzr bisect doesn't seem as reliable as git bisect, but that is meerly a module. [13:08] Launchpad UI though could use some work :) [13:08] merely* [13:08] I heard there was a whole bunch of work coming that way too. [13:10] I was initially quite frustrated with colocated branches (in Git) after being used to Bazaar. I'm getting used to it. [13:10] when you work with the github workflow more, its fun [13:10] you start doing the branching with git checkout -b, etc [13:11] nigelb: I'm not having more fun yet. Maybe that'll change. [13:11] I guess so much of this is just about familiarity. [13:12] jkakar: hehe, so some irritating bits in git include, things like "git st", "git co" not working. Create alias instead [13:12] I got used to bzr st [13:12] nigelb: I don't mind those things so much. I can alias or adapt. [13:13] some things in git is pretty rad. [13:13] nigelb: But things like git remote are confusing. I don't care (or want) the staging area. I know about commit -a, but I just don't want to even care about it. [13:13] heh [13:13] I agree, coming from bzr, that's a bit confusing. [13:13] I somehow would like to have that in bzr [13:14] (please don't stab me :P) [13:14] Heh :) [13:14] I don't stab. [13:14] I cut. [13:14] hehe [13:14] jkakar: do you use zsh? There's some neat plugins to show to you which branch you're in. [13:14] Many times I've commited to the wrong branch. [13:15] nigelb: No, I use bash. [13:15] nigelb: You probably wouldn't commit to the wrong branch with a directory-per-branch. ;b [13:15] ah, so there's something I wrote which shows you which branch you're in [13:15] hah [13:15] I like the colocated feature [13:15] Anyway, it's interesting to be a longtime Launchpad/Bazaar user trying tools from "the other side". [13:16] It happens to me every so often that I type bzr commit in a git repo or vice versa [13:16] I've heard a lot of GH/Git users complaining about Launchpad being hard to use... so far, I miss LP, but as I said, perhaps it's just familiarity. [13:16] nigelb: Yeah, I do that a lot too. :) [13:16] heh :) [13:17] jkakar: Did you move from Canonical or does Canonical have stuff in GH now? [13:17] nigelb: I left Canonical in March. I'm at Fluidinfo now. We've just moved from Launchpad to GitHub this week. [13:18] jkakar: Ah. Yeah, github has a pretty healthy eco-system :) [13:18] nigelb: Canonical putting stuff in GH would be a pretty bad sign. :) [13:18] hehe [13:22] GAH! I broke tests all over the place including soyuz. [13:23] :) [13:24] nigelb: Welcome to Launchpad [13:24] StevenK: haha [13:24] Don't let Soyuz consume your soul. [13:24] ok, I need some help with the soyuz tests because I'm not sure if parts of is my breakage [13:25] http://dpaste.com/600458/ [13:25] I don't understand the first bit [13:25] lines 6 to 9 [13:25] Ah yes, doctests are fun [13:25] and lines 21 to 25 [13:26] nigelb: Right, so 6-9 are red herrings [13:26] nigelb: Look at the ++++++++ bits. [13:26] Those are yours. [13:26] The meat is 14 and 17 [13:26] I got those [13:26] I fixed too. [13:26] nigelb: "..." means some text [13:26] And doctest errors suck [13:26] doctests show all diffs even if you didn't change it [13:27] IYSWIM [13:27] Right, only the expected text is elided. [13:27] Oh God, it's xx-sourcepackage-changelog.txt [13:27] Kill it, it's moving! [13:27] the 20 to 21 is weird, cos it shows lines added [13:27] The actual text is shown in full, which makes the diffs rather difficult to interpret. [13:27] StevenK: haha [13:27] nigelb: fix 14/17 and you're done [13:27] phew, okay [13:27] nigelb: 21-24 are normally captured by the '...' on 20. [13:28] aaah. [13:28] Which is what is also going on with lines 6-9 [13:28] * nigelb moves on to next set of tests [13:28] doctests with more than a couple of lines out output to match are a nightmare [13:28] So much breakage. [13:28] s/out/of/ [13:28] should I have run throw the entire tests before my MP? [13:28] or is this sort of breakage common? [13:28] nigelb: BTW have you see utilities/paste? [13:29] nigelb: Did you get a mail from ec2 with a subunit stream? [13:29] StevenK: yes, I'm fixing breakage from that. [13:29] bigjools: no, does it pastebin whatever I want it to paste? [13:29] nigelb: yes, takes stdin [13:29] (in thise case, its from my mail, so entirely useful) [13:29] nigelb: testr init ; zcat | testr load ; testr run --failing [13:29] so bzr diff|utilities/paste is v useful :) [13:30] testr failing --list # if you want to see how many tests you broke [13:30] bigjools: --syntax=diff! [13:30] that's for doctests? [13:30] nigelb: No, that's in general for failures from ec2 [13:30] but shouldn't I need some sort of access to see that? [13:31] nigelb: As in, "Aiee, I broke 100 tests, how can I be sure if I fixed them all" [13:31] nigelb: To see what? [13:31] StevenK: ah. [13:31] wgrant: to see the out put of what StevenK said :) [13:31] nigelb: It's in the email. [13:31] wgrant: I'm sure it could use file magic to do that [13:31] bigjools: Probably. [13:32] StevenK: subunit = bugs/soyuz etc? [13:32] nigelb: Sorry, the subunit stream is the gzipped file that was attached to the mail from ec2 [13:32] nigelb: watching the cricket? [13:32] StevenK: AH! [13:32] bigjools: No, I gave up :P [13:33] nigelb: :D [13:33] nigelb: So you can zcat it into testr load and then testr can tell you exactly which tests failed without you having to read 500,000 lines of librarian log [13:34] StevenK: I think that bug is fixed now, actually. [13:34] bigjools: Oh, so England has discovered that they can actually hit the ball properly if they hold the padded bit of the bat? [13:34] Saw something fly past a day or two ago. [13:35] StevenK: #1 test team. Suckit. [13:35] [r=bac][bug=828151][no-qa] Truncate the librarian log before each test run. [13:35] bigjools: That would require caring about cricket. Which I don't. [13:35] StevenK: ah so you just care about trolling about it? :) [13:36] OH, ALLENAP. Come here, so I can have your babies. [13:36] bigjools: Exactly! [13:36] what did allenap do? [13:37] to deserve your generous offer [13:37] StevenK: I always hoped to get an invitation like that from an attractive woman, but it's been a long time so I guess you'll have to do. [13:37] allenap: Haha [13:37] lol [13:37] not sure I'd be that desperate allenap [13:37] And here I thought StevenK was married :P [13:37] allenap: IOW, *thank you* for fixing the librarian log truncation. [13:37] nigelb: I am [13:38] StevenK: No worries, it sounds like it bothered me as much as it did you. [13:38] StevenK: I know :) [13:38] StevenK: btw, testr is in LP? Or do I install it separately? [13:38] python-zope.testing? [13:39] nigelb: Separate, python-testrepository. [13:39] thanks allenap :) [13:39] bug 823850 [13:39] <_mup_> Bug #823850: AssertionError raised upgrading a branch that doesn't need upgrade < https://launchpad.net/bugs/823850 > [13:40] fuuu, looks england might win by an innings [13:40] nigelb: again [13:41] So India needs to hold the padded bit of the bat? [13:41] bigjools: The best quote about India's perfomance was "India is like a faithful husband. Only performs at home" [13:41] StevenK: Yeah :| [13:41] grar, no testr still. [13:41] ;0 [13:41] % dpkg -S /usr/bin/testr [13:41] testrepository: /usr/bin/testr [13:42] nigelb: ^ [13:42] I installed everything but that. WIN. [13:42] Haha [13:43] StevenK: when I do that, tests are supposed to pass? [13:43] or does it just show me the ones that failed in EC2 [13:44] nigelb: When you did which? [13:44] testr init ; zcat ~/Downloads/4595-upgrade-bug-linking-r13582.subunit.gz | testr load; testr run --failing [13:44] Thank you for the galapagos hint, StevenK [13:45] gary_poster: Welcome. [13:45] nigelb: The last command is what runs the failing tests [13:46] nigelb: If tests aren't failing, you've already fixed them? :-) [13:46] ok, so seeing everything fail is probably not a good thing. [13:46] nigelb: Well, it's probably the expected thing [13:47] wait, I know I fixed these. [13:47] does the fix have to be committed? [13:47] nigelb: You might be seeing testr load output [13:47] It spams everything to stdout [13:48] ah [13:48] deryck, sw your reply. perfect, thanks [13:48] failures 7 [13:48] bah [13:48] gary_poster: np! Thank you for putting the email notes together. [13:48] welcome [13:56] I can run make test to be extra sure right? (worse case) [13:57] nigelb: make check, but yes [13:57] nigelb: It will take AGES [13:57] gah [13:57] nigelb: Or you can ask someone to resubmit it to ec2 [13:57] the testr is showing me false positives. [13:58] fffffuuuu, brb, production server at work died. [14:01] ok. back. [14:01] let me look at the diff to see if I caught them all. If so I'm just going to ask someone to submit it again [14:07] ok, so can someone re-land https://code.launchpad.net/~nigelbabu/launchpad/4595-upgrade-bug-linking/+merge/71575 [14:13] henninge, benji: can I add a MP to your queue? [14:13] jelmer: sure; I can do one now. [14:14] benji: thanks - it's at https://code.launchpad.net/~jelmer/launchpad/re-enable-test_import_bzrsvn/+merge/72411 [14:14] benji: could you re-view and re-land my branch? [14:14] nigelb: sure, which one? [14:14] https://code.launchpad.net/~nigelbabu/launchpad/4595-upgrade-bug-linking/+merge/71575 [14:16] jelmer: done [14:17] benji: merci ! [14:23] hi jelmer, your branch for bug 826136 is now next on the QA hot seat. [14:23] <_mup_> Bug #826136: dictionary changed size during iteration < https://launchpad.net/bugs/826136 > [14:24] hi Brad [14:24] jelmer: just letting you know since i got my blocker done === henninge changed the topic of #launchpad-dev to: https:dev.launchpad.net/ | On call reviewer: benji | Critical bugs: 238 - 0:[#######=]:256 [14:24] bac: Thanks [14:24] * henninge is done reviewing [14:24] bac: I'm waiting for tellarium (storage space for code imports) to come back up, once that happens I'll be able to do the QA [14:24] jelmer: great [14:27] nigelb: I'm afraid that revision is essentially unreviewable, the diff is over thirteen thousand lines long. [14:27] benji: wait, what [14:27] do you have a diff of just the changes you made to fix the failures? [14:27] * nigelb checks [14:27] benji: ah, I merged in devel as well. [14:27] The changes are more easily reviewed on the merge page [14:28] My initial code only touched 3 files [14:29] I'll do that. It would have been nicer if I knew what had been changed to fix the test failures instead of having to re-review all the changes. [14:30] You could have accomplished that by merging from devel in one revision and making your changes in another. [14:31] benji: I should have. Noted for next time. [14:31] cool [14:38] nigelb: the branch looks good, I'm starting the landing process now [14:39] benji: thanks! Sorry again for the messed up diff. [14:39] no worries [14:52] Thanks for the review benji. [14:52] my pleasure [15:09] bigjools: its all over :( [15:09] nigelb: a while ago :) [15:10] bigjools: I wasn't actually watching. my roommate has it on and I just realized I'm listening to the presentation ceremony [15:42] good bye [15:57] jcsackett, do you have time to mumble? [16:21] sinzui: i can mumble now. [16:22] sinzui: are you still free? === matsubara is now known as matsubara-lunch [18:27] Project devel build #982: STILL FAILING in 6 hr 10 min: https://lpci.wedontsleep.org/job/devel/982/ [18:48] deryck: could you do a review for me? The OCR is offline, and it should be pretty straightforward: https://code.launchpad.net/~abentley/launchpad/unnecessary-upgrade/+merge/72480 [18:53] Project db-devel build #815: STILL FAILING in 6 hr 33 min: https://lpci.wedontsleep.org/job/db-devel/815/ [18:57] abentley: I can do it. [18:58] deryck: thanks! [18:58] abentley: I have to go pick up my daughter from school in 15 minutes, so if I'm not done by then, I'll finish when I return. [18:58] deryck: that's cool. [19:25] morning === matsubara-lunch is now known as matsubara [19:33] * jelmer waves to lifeless [19:43] hiya lifeless [19:44] abentley, could you take a look at https://answers.launchpad.net/launchpad/+question/168602 and either give me some advice or take it yourself, as you see fit? [19:44] gary_poster: looking [19:44] thank you [19:46] gary_poster: I doubt it's because a particular revision takes a long time. I bet it's just because the whole branch takes a long time. [19:47] abentley, that's certainly what the log looks like. So should I toss it to Jelmer, or say "so sorry," or...? [19:47] gary_poster: I think canonical staff may have done one-off imports like he's requesting in the past. [19:47] ah [19:48] ok abentley, I'll check with a losa if that is something they are familiar/comfortable with then [19:48] gary_poster: Okay. [19:49] gary_poster: comparing to "hg clone" isn't really the right comparison. You'd want to compare to "bzr branch" with bzr-hg installed. [19:51] ok abentley, I guess I could try that locally for the heck of it... === Pilky_ is now known as Pilky [20:18] abentley: looks good to me. Sorry it took me so long. [20:18] deryck: no worries. [20:36] gary_poster: jelmer_: hiya [20:39] does anybody have an idea what this sort of thing might indicate: [20:39] Fault: [20:40] not enough layers? [20:43] that should be set up by your test process [20:44] whats it coming from ? [20:45] a twisted callback [20:45] hang on, I think I know what might be happening [20:45] sounds like you have a test helper running after the main test process is shutdown [20:46] leftover launchpad processes; I suspect it was tlaking to one of them [20:46] killing them seems to fix the problem [20:46] lifeless, yeah, indeed [21:08] flacoste: oh, I remembered one thing [21:08] flacoste: you're probably gone though ... === matsubara is now known as matsubara-afk [21:09] lifeless: no, i'm still here for an hour [21:09] flacoste: what do you think of us having a launchpad-sites or launchpad-deployments or something project - no code, but a place for bugs that are filed by community folk but really about how things have been deployed. [21:10] lifeless: you mean for things related to Launchpad deployment outside of launchpad.net? [21:10] flacoste: e.g. things like the help wiki needing moin upgrades would sit there [21:11] lifeless: we already have a project for the help wiki though [21:11] and dev [21:11] or python-openid upgrades on lp-oops, or new haproxy or apache versions being needed [21:11] things like needing a shared ssl session cache [21:11] we track those usually through RTs [21:11] right, *we do*, but if a community member files a ticket in any of these spaces [21:11] which is obviously not community accessible currently [21:11] we have nowhere to leave it as a placeholder [21:12] e.g. our moin projects are labelled 'themes' [21:12] which does involve code changes; I'm purely talking stuff with no code [21:12] anyhow, its a thought [21:12] lifeless: i'm not hot on the idea, but i wouldn't mind trying it out, we can assess if this pulls its weight after a while [21:13] which reminds me [21:13] I'll let it percolate [21:13] we should probably kill the lp- tags [21:13] we said we would eventually [21:13] doesn't look like anybody misses the projects [21:13] :) [21:51] allenap: lol! love your review cover letter.