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