[00:17] wgrant: here is my review pedantry: doctests should have four spaces before >>> [00:18] thumper: But existing code has 2, 3 or 4. I am never sure whether to go with consistency, fix it, or be inconsistent. [00:18] Which should I choose? [00:19] fix the test [00:19] OK, will do so in future. [00:19] thansk [00:19] I'm sure we have this documented somewhere [00:23] wgrant: if I'm using launchpadlib to load something [00:23] wgrant: what is the base url I give it? [00:24] thumper: In a test, or in the real world? [00:24] QAing against edge [00:24] https://api.edge.launchpad.net/$VERSION/ [00:24] Or you pester people to fix the bug. [00:24] Bug 524775 [00:25] Bug #524775: Launchpad.load doesn't like relative urls [00:25] :) [00:25] what version should I be using? 1.0? [00:25] 1.0 shouldn't have any new APIs, although it does. [00:25] Use devel. [00:25] I gotta say, isn't my hack correct? [00:25] so fixing == write a test to confirm? [01:55] * mwhudson afk briefly to post a letter [02:27] how do you suggest testing scripts that use launchpadlib? [02:33] Ursinha_: by prayer [02:33] lol [02:37] lifeless, that was my fear [02:38] Maybe someone needs to write some infrastructure to do it. [02:39] What with LP being open source and all, there's no reason it can't be done. [02:39] the challenge is that launchpadlib is all dynamic [02:39] Hm? [02:40] Ursinha_: there are two basic things; 'are you using launchpadlib as it expects to be used' and 'does your code do what you wanted it to, still' [02:40] Ursinha_: the latter, you can use mocks for fairly effectively, if you like mocks. [02:40] the former, you cannot ever really test without using live launchpad, because it can change without warning. [02:40] There's no reason we can't have an easy way to write launchpadlib script tests that run against a local LP instance. [02:41] wgrant: indeed, but that will be heinously slow [02:41] lifeless, I'm considering using mocks for the second, but I was wondering if it was possible to test the former [02:41] lifeless: Better than having dodgy tests. [02:41] (slightly) [02:42] I'd consider using the same introspection launchpadlib does - compiling the wadl - to compile a set of fake objects [02:42] be nontrivial to do [02:42] wgrant: many of my projects complete their *entire* test suite in the time it takes to start up launchpad. [02:42] bzr is the notable exception. [02:43] Ursinha_: pragmatically, today, I'd have a suite of non-default tests that talks to staging [02:43] and mock everything else. [02:43] lifeless, hm, right === Ursinha_ is now known as Ursinha-afk [03:59] grunk, one ec2 test run stalled [04:00] and two which have failed in lp.code.model.tests.test_diff.TestDiffInScripts.test_fromFile_withError [04:01] for a grand total of 0 out of 3 [04:01] wgrant: it's yours which has hung in ec2 fwiw [04:02] ~wgrant/launchpad/delete-more-stuff [05:01] * mwhudson shoves wgrant's branch back into lp [05:01] ec2 rather [05:21] mwhudson: EC2 seems to really love my branches at the moment. [05:21] One that you landed earlier took three attempts, the other one two, this one at least two... [05:22] it seems to be getting worse indeed [05:48] * thumper is sad that staging hasn't updated yet [05:48] given my late night hacking last night [05:49] * thumper EODs [05:50] staging's been updating for more than 24 hours now... it must be almost done. [05:58] wgrant: you optimist you [05:58] I mean, it's not dogfood. [06:19] Is someone loadtesting against login.staging.launchpad.net? === almaisan-away is now known as al-maisan [07:29] good morning [08:25] Do we have anything available to parse an ISO8601 timestamp into a Python datetime? [08:39] Morning all [08:52] As a great man once said [08:52] Hello, world! [08:53] stub: you mean YYYY-MM-DD HH:mm:SS? [08:53] stub: I think so [09:10] The size of the diff (16938 lines) is larger than your specified limit of 1000 lines [09:10] What? [09:12] wgrant: when do you get that? [09:13] db-devel r9315 [09:13] Which doesn't seem like it should be so absolutely gigantic. [09:15] Hmm. [09:16] The sampledata ordering is all different. [09:16] But I thought the script ordered it sanely! [10:02] allenap: I think I'm probably hitting the same segfault you are [10:03] No output from EC2, and running locally with output redirection loses the critical tail of the output. [10:03] jtv: That sounds similar. [10:03] I've had five instances disappear in the last week. [10:04] jtv: The way I confirmed it is to pdb.set_trace() in spawn_layer_in_subprocess() to get the exact command line args for the sub-process, then run that from the command line. [10:05] allenap: do you know what test(s) it happens in? [10:05] jtv: I triggered the segfault in my branch; it was from new code. I don't know about existing code. [10:07] allenap: strange... [10:28] allenap: running some local "make check"s to see where the problem happens [10:34] jml: Yer, but I'm using an interval now so no worries. Closest I found was the datetime type I added to the OptionParser that knew about various formats, which we could factor out one day. [10:56] hello [10:57] jml: good morning [10:58] mwhudson, hi [10:58] mwhudson, I cannot help but notice that you are here [10:59] jml: emma and i are sitting on the sofa, a laptop on our laps each [10:59] it's very sad :) [10:59] ahh, the married life [10:59] heh [11:00] I just got back from over an hour of internet downtime because the phone rang and the router was physically inaccessible for rebooting [11:00] mwhudson: how's the hosted/mirror thing panning out? [11:01] jml: staging is terrible [11:01] jml: it might update soon [11:01] jml: but it's landed and, uh, i haven't found any problems with it yet [11:02] mwhudson: it's pretty exciting [11:02] jml: yeah, i'd hoped for more than 1 day to qa it [11:02] i hope i don't find too many problems ... [11:02] mwhudson: and a strong testament to avoiding bduf [11:02] jml: bduf? [11:03] mwhudson: big design up front [11:03] jml: yes === noodles785 is now known as noodles775 === bjf is now known as bjf[afk] [12:15] sinzui, bac, EdwinGrubbs: does this look like a fairly complete list of features? https://dev.launchpad.net/FeatureChecklist/Registry [12:22] allenap: about the problem you ran into... any idea what caused the bad data to be fed to storm? === mrevell is now known as mrevell-lunch [13:18] PQM just cleaned out all of a sudden... did we go into testfix? [13:19] jtv: User error :) [13:20] allenap: do I need to resubmit? [13:20] jtv: No, that was the answer to your earlier question. [13:20] Ah [13:21] Well, we do have a failed compile... I'm having a look [13:27] bigjools: I think your fix fell out of PQM somehow [13:28] PQM> Conflicts during merge: Text conflict in utilities/sourcedeps.conf [13:35] flacoste: did your sourcedeps.conf update for loggerhead get caught in a stable/db-devel merge conflict? === Ursinha-afk is now known as Ursinha [13:39] jml: you are coming to RMLL in France? :) [13:39] didrocks: I think I'm speaking at it [13:39] didrocks: but I've been a bit lazy w/ my submission [13:39] jml: well, I see we have a conference the same day ;) [13:41] didrocks: does it clash w/ something at Canonical? [13:42] jml: oh no, I'm going there on holidays, giving two conferences (bughugger and quickly) and being at ubuntu-fr booth [13:44] well, if I say that I'm going there "for" bughugger, maybe rick will accept that I don't go there only for holidays ;) === mrevell-lunch is now known as mrevell [14:03] bigjools: Um, won't PPA deletion not work until 10.04 is on germanium? [14:03] * bigjools taps side of nose sagely [14:03] Heh. [14:03] I cherrypicked the backend [14:03] Ah. [14:03] Handy. [14:04] gives a few days of edge fun [14:04] BjornT, ping [14:05] wgrant: btw did you manage to QA any of your stuff this cycle? [14:05] bigjools: 'fraid not. Far too much uni assessment this week... but it's all over now, so I'll organise that tomorrow. [14:06] wgrant: no worries, I'm going to start hitting the QA trail of doom this arvo [14:07] hi deryck [14:12] didrocks, ahh cool [14:12] didrocks, I wonder how much French I can learn between now and then. [14:12] jml: we can train you at UDS ;) [14:14] didrocks, je parle francais comme un vache espagnole [14:15] jml: that's a typical French expression, it's perfect. Sure you can even order food with that :) [14:15] haha [14:17] jml: mais, ou sont les baggages! [14:24] bigjools: I hope jml won't need that sentence ;) [14:25] didrocks: oui! [14:26] Ma grandmere est flambée! [14:27] * jml chuckles [14:27] hum, "une crêpe" can be "flambée", you don't tell that for your "grand mère" ;) [14:27] You could learn more if you watch Eddie Izzard's videos :) [14:30] :) [14:31] bigjools, didrocks: http://www.youtube.com/watch?v=x1sQkEfAdfY [14:31] let me have a look :) [14:35] "room #42" ;) [14:36] we have the same in French with "where is my umbrella?" and "where is Brian?" :) [14:39] heh [14:39] ou est la plume de ma tante? [14:40] yeah, that's funny :) [15:13] mthaddon: what happened to staging restore? [15:14] hmm, has been creating the slave since 2010-04-28 18:23:11 === bjf[afk] is now known as bjf === bjf is now known as bjf[afk] === matsubara is now known as matsubara-lunch [16:18] leonardr, gary_poster i can't remember where i posted about this but i use a fake datetime factory that allows me to produce predictable dates when in testing mode. maybe something like that is useful? (it's in the mailman 3 source code if you want to look) [16:19] barry: is this your way of telling me you've discovered a horrible date-related test failure? :) [16:19] on call but sounds interesting barry [16:19] leonardr: no, just a clever way to mock datetimes so you can do fun stuff like fast-forwards and stuff [16:19] ah, cool [16:20] i can think of a place where that would be useful, actually [16:20] * barry searches for a link [16:21] leonardr: http://bazaar.launchpad.net/~mailman-coders/mailman/3.0/annotate/head%3A/src/mailman/utilities/datetime.py [16:21] Chex, gary_poster, rockstar, bigjools, danilos, sinzui, allenap: production meeting on #launchpad-meeting @ Freenode in 40 minutes [16:21] barry: thanks [16:22] Ursinha: let;s talk about bots [16:22] bigjools, no, you ignored me the whole week :P [16:22] Ursinha: did not! [16:24] bigjools, can we discuss that after the meeting? I'm kinda preparing for that now :) [16:24] Ursinha: it'll be too late after the meeting, unless you make it a quick meeting ;) [16:27] bigjools, you should have answered when I first pinged you about it :P [16:27] bigjools, we can talk about that tomorrow, is that ok for you? [16:27] Ursinha: I'm pretty sure I did, but you ignored me :) [16:27] anyway, yes, what time? [16:28] 1h30 earlier than now? :) [16:28] Ursinha: it's a date [16:29] Ursinha: thank you for reminder [16:29] Chex, no problem :) [16:32] * bigjools cries at an extra Popen in a test in wgrant's branch [16:33] Is there a better way to test scripts like that? [16:35] hm, just saw sinzui's email, EdwinGrubbs, are you able to attend the prod. meeting? [16:36] Ursinha: yes, is it a conference call or on irc? [16:36] EdwinGrubbs, on irc, #launchpad-meeting [16:37] EdwinGrubbs, thanks :) === bjf[afk] is now known as bjf [16:38] jml, just looking at the nifty datetime factory barry created above. twisted and bzr have some nifty stuff too. Thought you might know: is there a central resource for all these cool python testing power tools? [16:39] mars, launchpad.net/pyunit-friends [16:39] jml, thanks! [16:39] mars, and the lp:testtools project specifically. [16:40] barry, mars, what's the point of using that rather than just passing in 'now' as an optional parameter? [16:40] mars, jml maybe even the testing-in-python mailing list [16:41] oh yeah [16:41] definitely t-i-p [16:41] jml: cleaner apis :) [16:41] barry, because now they take a mandatory date factory? [16:42] jml: no, nothing takes a factory. any code that needs a datetime imports the factory and uses that to create it instead of datetime.datetime.now() [16:42] :( [16:42] barry, using mutable globals isn't cleaner [16:43] although I'm willing to admit it's a matter of taste [16:43] jml: neither is passing now arguments up and down a call stack. i'm not saying it's pretty but it's a trade-off. one i like only slightly more [16:43] I really like functions and parameters. [16:44] jml: eibti [16:44] yeah, that's what I mean [16:45] Chex, gary_poster, rockstar, bigjools, danilos, EdwinGrubbs, allenap: production meeting on #launchpad-meeting @ Freenode in 15 minutes [16:45] i get that. not (totally ;) disagreeing with you. still, it's better than monkeypatching datetime :) [16:45] barry, yes, it's better than monkey patching datetime [16:49] Ursinha: I've asked matsubara-lunch to stand in for me [16:49] matsubara-lunch: that's your confirmation ;-) [16:49] gary_poster, sure, thanks for the info [16:49] thank you === gary_poster is now known as gary-lunch === Ursinha is now known as isitoutyet === isitoutyet is now known as Ursinha === matsubara-lunch is now known as matsubara [17:00] Chex, matsubara, rockstar, bigjools, danilos, EdwinGrubbs, allenap: production meeting on #launchpad-meeting @ Freenode now :) [17:00] Ursinha, thanks === salgado is now known as salgado-lunch === al-maisan is now known as almaisan-away [17:25] I'm getting lazr.restfulclient.errors.HTTPError: HTTP Error 503: Service Unavailable when I try to ec2 land my branch. [17:25] weird. I'm getting the launchpad offline page in response to whatever ec2 land is trying to fetch from launchpad. [17:26] * cody-somerville tries again. [17:30] bac, gary: bug 569189 cause has been revealed [17:30] Bug #569189: Authenticated users in launchpadlib tests have no permissions [17:31] * bac awaits answer with suspense [17:33] bac: sorry, there was an implicit 'check out the bug' [17:33] did [17:33] thanks [17:34] bac: as a workaround, you could grant your user WRITE_PRIVATE access. that should make the test work [17:34] ok, i'll try that. thanks === Ursinha is now known as IsItOutYet === gary-lunch is now known as gary_poster === IsItOutYet is now known as itsNOTout === salgado-lunch is now known as salgado [18:20] bac, leonardr I'm inclined to mark https://bugs.edge.launchpad.net/launchpad-foundations/+bug/569189 as Invalid on the basis of Leonard's evaluation. Alternatively, we could convert it into a bug for the code team, to change their permissions somehow or other, but my preference is for Invalid (again, unless I misunderstand). [18:20] Bug #569189: Authenticated users in launchpadlib tests have no permissions [18:21] gary: mark it invalid, but let's also let the code team know about it so they can fix it if they want [18:21] leonardr: ok will do === itsNOTout is now known as LucidIsOut [18:37] gn'ight all === LucidIsOut is now known as Ursinha [18:55] barry, do you have a minute to see whether i'm crazy? [18:55] i need someone to branch lp:~leonardr/lazr.restfulclient/delete-entry, buildout, run the tests, and tell me if you get any failures [19:03] Ursinha: can you send me the distributionmirror-prober error message? [19:04] EdwinGrubbs, it's in the script-failures mailing list [19:04] EdwinGrubbs, just a moment [19:13] EdwinGrubbs, Ursinha there was no error. It is running late. [19:13] sinzui, this explains why I'm not finding the email on the lp-error-reports list [20:46] mmmm bacon [20:46] thumper: so, shall we chat ? [20:58] staging is down :( [20:58] why? [21:19] losa ping [21:23] thumper: ping [21:32] mwhudson: hi there [21:32] Chex: what's up with staging? [21:40] thumper: ping [21:48] lifeless: he's probably doing the school/kindy run now [21:49] mwhudson: isn't that 'load catapult(); fire();' ? === gary_poster_ is now known as gary_poster [22:03] lifeless: the foundations behind my problem with using queued too much right now is that there isn't the correct security checks around it [22:03] lifeless: I really want to split out the reviewed_status from the queued_status [22:03] lifeless: with your current branch, anyone could take something from needs review to merge failed [22:03] lifeless: from there they could queue it [22:03] bypassing the approval [22:07] thumper: I don't think thats true. I'll add a test to prove it happily. [22:07] lifeless: it is true [22:07] lifeless: setStatus(merge_failed) has no checks other than launchpad.edit [22:07] lifeless: which the proposer has [22:08] lifeless: and the source branch owner [22:08] we really need to split out the reviewed status [22:09] I don't think it is too much work (fingers crossed) [22:09] lots of fiddly bits though [22:10] I think what I want to do is to remove all the special case set status methods [22:11] and have two new ones: setReviewStatus and setQueueStatus [22:13] thumper: there is a check that only official reviewers can queue things [22:13] lifeless: or if it has been approved [22:13] right [22:14] * lifeless digs up the patch, vm starting [22:15] Is anyone else getting ImportError: No module named tickcount on make? [22:15] thumper: so, I don't want to increase the scope right now; happy to participate in optional cleanups. [22:15] thumper: your primary concern is 'non reviewers should not be allowed to set merge failed', right ? [22:15] lifeless: that's good enough for now [22:15] lifeless: I'd like to get this fixed soon [22:15] because merge failed permits toggling back to queued [22:15] right [22:17] ok, my patch enforces that [22:17] elif (next_state in (code_approved, queued) and [22:17] - from_state not in (code_approved, queued) [22:17] + from_state not in (code_approved, queued, merge_failed) [22:17] in the existing state machine transition check === matsubara is now known as matsubara-afk [22:18] first hunk in lib/lp/code/model/branchmergeproposal.py [22:19] thumper: ^ [22:19] I'll triple check though [22:20] ok, its not quite right; adding test and fixing. [22:21] ah, missed that === salgado is now known as salgado-afk [22:27] is it fair to say the branch owner is an implicit reviewer ? === Ursinha is now known as Ursinha-afk [22:28] thumper: ^ [22:29] target branch owner should be [22:29] yes [22:29] just checking my language [22:36] lifeless: you should be aware that we are likely to break the way that PQM deals with queued proposals [22:36] lifeless: in the changes we want to do [22:36] keep me in the loop, I'll update as needed [22:37] what sort of damage do you have in mind ? [22:39] api breaks most likely [22:44] thumper: I have a small question about the tests [22:44] assertAllTransitionsGood - that seems to test with a non reviewer [22:45] sounds right [22:45] but [22:46] (checking stuff) [22:46] lifeless: this isn't paged in right now, and I'm on a call, and about to run out to an appointment [22:48] sure [22:48] anyhow, I think the existing tests were making an odd claim - that any user can switch wip to any state [23:33] thumper: I have fixenated and pushed [23:48] ok -> .au