[01:30] Hello ubuntulog2! Glad to see ya. Will be even more glad to see your results in http://irclogs.ubuntu.com/2011/02/04/ === Ursinha is now known as Ursinha-gone === gary_poster changed the topic of #launchpad-yellow to: https://dev.launchpad.net/yellow — http://launchpad.leankitkanban.com/Boards/Show/14028610 — http://irclogs.ubuntu.com/ === Ursinha-gone is now known as Ursinha [12:56] hi gmb [12:57] gmb: my babysteps branch is at lp:~bac/launchpad/accordionoverlay if you have time to just see what i've started before we talk later. [12:58] bac: Sure thing, I'll take a look in a couple of minutes. [12:58] won't take long...not much there yet [13:04] bac: You call 3580 lines "not much"? 0.o [13:04] oh, yeah [13:04] i forgot i added in the gallery widget [13:04] bac: Which bits can I ignore (on the basis that they're third party, I suppose)? [13:04] i can push up the pre-req branch [13:06] bac: That'd be a help, thanks. [13:06] gmb: will do. just sucked into a CHR conversation now, though [13:06] Ok, no worries [13:14] gmb: is "list related bugs" a superset of all of the other bug lists, such as subscribed, commented, etc? [13:15] bac: I'm drawing a blank here. Which page is this on? [13:15] bug.lp.net/~gmb [13:15] (My guess, incidentally, is "yes") [13:16] bac: Yes, that's right. It's a superset. === Ursinha is now known as Ursinha-afk === Ursinha-afk is now known as Ursinha [13:28] bac, danilos, gmb, hi. kanban/mumble in 2. we are now logged here, btw, per bac's suggestion and thanks to is team [13:29] gary_poster, thanks for the notice, I'll keep quiet in here then :) [13:29] lol [13:49] bac: http://pastebin.ubuntu.com/562529 [13:51] gary_poster, fwiw, my branch depends (so far) on your lp:~gary/launchpad/bug548-db-2 — is that the right one to use? [13:51] gary_poster, (I see -tests as well, so I figured I'd better ask :) [13:52] danilos: yeah. There are more changes since then to get tests passing--and even more than -tests--but they build on -db-2 . Once I get test passing and get this landed on db-devel and your branch gets the code merged, we should be good [13:53] gary_poster, excellent, thanks :) [13:53] danilos: please make sure you hand off that branch to me/the team so we can run with it while you are gone [13:53] gary_poster, I will! [13:53] thank you :-) [15:08] bac, gmb, danilos, I have a "deliver our weekly goals and problem solve" meeting scheduled in about 22 minutes on the canonical calendar. I scheduled it later than our daily meeting because I thought it deserved separate attention, but now I find myself annoyed by the interruption. :-/ I also forgot to tell you all about it, and get your feedback. [15:08] Despite my annoyance at my own scheduling, I am still leaning towards suggesting that we go through with the meeting, because I think we have things to deliver, and because I think having a team problem solving time has seemed promising so far. [15:08] So, questions: [15:08] 1) I can show something on staging. can anyone else show anything today? [15:08] 2) Would you all like to push this till later today, say 17:00 UTC (noon for me and Brad) or 16:30, so it is nearer the EoD of Danilo and Graham? [15:08] And comment: I'll try to be as quick as possible; 15 minutes is a goal, 30 minutes is a limit. [15:09] gary_poster, wfm (either of the times) [15:09] cool [15:09] either time is ok [15:09] ok [15:09] gary_poster: Ditto; I'm fine with either (though I've nothing to show thanks to Windmill) [15:09] :-/ [15:10] gary_poster, and on 1), I'm QAing LIFECYCLE change since it should be on qastaging, but it keeps timing out on me so I am struggling a bit [15:10] :-/ understood [15:10] gmb, bac, danilo, ok, let's aim for 16:30 UTC, 11:30 for me and bac [15:10] Ok [15:10] I'll update the calendar [15:11] and we can talk then about good times for the mtg [15:11] in later weeks [15:11] thank you [15:18] gary_poster, btw, my email listed in google calendar is danilo.segan@canonical.com, and I generally don't know how to set it up so it recognizes danilo@canonical.com as well; I've noticed that my items sent to danilo@canonical.com don't end up in my calendar in there, so if you have a suggestion on how to fix that, I'd be very happy — if not, can you please send future invitations to danilo.segan@ :) [15:18] danilos: :-) ack, I'll go fix those [15:23] gary_poster, also, note that current "show off time" works fine today, but would really be my EOD on Fridays otherwise as it is 17:30 [15:24] danilos: gotcha. yeah, we'll try to agree on a good time [15:24] on the call I mean === Ursinha is now known as Ursinha-afk === Ursinha-afk is now known as Ursinha [16:28] bac, danilos, gmb, 2 min delivery mtg warning [16:28] yup [16:28] rt [16:29] * bac fetches tea and morsels [16:30] danilos and bac, unmute when you are ready :-) [16:34] https://bugs.staging.launchpad.net/~gary/+structural-subscriptions [16:42] gary_poster, "cronscripts/send-bug-notifications.py -vv" [17:04] gary_poster, oh, btw, on the DB permissions problem I am having in my branch, I had to add SELECT, INSERT to another two users: checkwatches and updateremoteproduct (for scripts dealing with remote bug syncing, afaict) [17:04] gary_poster, all for personsettings table, that is :) [17:04] gary_poster, the tests that failed for me were "-t bugtracker-person.txt -t externalbugtracker-bug-imports.txt -t externalbugtracker-comment-imports.txt -t externalbugtracker-comment-pushing.txt -t externalbugtracker-debbugs.txt -t product-update-remote-product.txt" [17:05] danilos, yeah, gimme one sec, I'll make a commit, push, and suggest you merge [17:05] gary_poster, cool, thanks [17:10] danilo, lp:~gary/launchpad/bug548-db-3 . You'll need to rerun make schema, of course. actually danilo can I convert that into a mid-implementation call, hopefully leading into a review if am I fast enough? :-) [17:10] I made some changes that I question [17:10] gary_poster, sure thing [17:10] thank you [17:11] so, I'll start blathering here while you get the branch :-) [17:11] som, the change you need is just in security.cfg [17:11] that is already approved by lifeless [17:12] the changes I made recently are in the last two revisions. The ones I'm partcularly interested in are in lp:~gary/launchpad/bug548-db-3 [17:12] eh I mean [17:12] bzr diff -r-2 [17:13] In particular, in particular, lib/lp/registry/model/person.py [17:13] Where I added that UnwrittableStub [17:13] meh Unwritable [17:13] So the reason it has to be there is that various things read attributes off of person automatically [17:14] one particular example is the webservice snapshotter [17:14] a NotImplementedError on a read for a team-specific attr did not go over well with that code [17:14] I *can* make a read-only attr for teams though [17:14] that works fine [17:14] gary_poster, I am looking at it [17:14] cool thanks [17:15] gary_poster, please do go on explaining it :) [17:15] yeah :-) you wanna switch to mumble? I can go faster [17:15] I'll keep on here for now [17:16] So, I don't love that stub for two or three reasons [17:16] 1) it's generic and it doesn't need to be yet. However, it was easy to do, and Stuart wants to make a similar thing in reverse (team-only settings) [17:16] so it would be useful there [17:17] well, it kinda is ugly :) [17:17] yeah [17:17] gary_poster, was it not possible to do something like doNotSnapshot for this particular field for teams? [17:17] * gary_poster doesn't know of doNotSnapshot [17:17] (I don't know what doNotSnapshot does on a lower level, it might be something like this :) [17:17] heh, no idea [17:17] but it is an existing pattern, which is good [17:18] new pattersn are bad :-) [17:18] gary_poster, it's to stop stuff from being traversed for API implementation, I have no idea if it's anything like this and whether it'll solve a problem for you at all :) [17:19] gary_poster, the only thing I know is that it exists and that when you see web service call requesting another million objects, you need to put a doNotSnapshot around the exported field :) [17:19] i.e. usually for collections, but maybe it can work here as well [17:19] it is not conditional [17:19] (I just looked it up) [17:20] so I can't say "only snapshot this if this is not a team" [17:20] it's just a marker interface assertion [17:20] on an interface field [17:20] and I think that this might very well want to be exported in the webservice [17:20] I suppose that would be a simple fix, which I should not ignore... [17:21] gary_poster, right [17:22] I'm loooking throught the failed tests to see if that was the only problem with this implementation [17:22] gary_poster, so, I can't come up with any better suggestion on how to do what you are doing with the UnwritableStub [17:23] I could build a type [17:23] which would be faster [17:23] on the run-time side [17:23] I'd be switching __getattr__/__set_attr__ magic for "make me a class" magic [17:24] the only advantage of type really is that it would be faster in the Python, and I would not have to do that yucko __dict__ thing, if it doesn't start with '_', which I hate :-P [17:25] Ah [17:25] No, doNotSnapshot doesn't slove all the problems [17:25] we have other things that are doing verifyObject, for instance [17:25] gary_poster, heh, well, you could also make a non-generic PersonSettings implementation for teams-only, but considering you are going quite some length to avoid non-generic solution, I should better shut up :) [17:25] and they fall over [17:26] heh [17:26] I also don't like re-listing attributes [17:26] it feels error prone [17:26] I could certainly do [17:26] class UnwritablePersonSettings: [17:27] @property [17:27] def selfgenerated_bugnotifications(self): [17:27] return True [17:27] and be done, but then I've had to define the default, what, four times? five? [17:27] gary_poster, to be honest, I don't feel very smart at this late hour, so I am struggling following all the alternatives you are describing :) [17:27] :-) [17:28] fair enough [17:28] (though, late hour might just be an excuse :) [17:28] heh :-) [17:28] danilo, well, merge my vranch, and fix that thing you are working on, and I'll see if I can come up with something that makes me slightly happier in < 15 min [17:28] branch [17:28] this will at least unblock you [17:29] gary_poster, right, thanks [17:38] gary_poster, fwiw, I've confirmed: if there is only a direct subscription, LIFECYCLE subscription works correctly (i.e. it mutes all other emails) [17:38] cool [17:39] thank you [17:39] do we have a test for the other circumstance to your knowledge? [17:39] (the failing one) [17:41] gary_poster, no, unfortunately [17:44] gary_poster, also, all the tests I've tried pass with your branch merged in [17:45] cool [17:46] yeah, ec2 failed with some, and my branch fixes everything ec2 complained about [17:47] gary_poster, so, generally, my branch for 548 is ready to land, and I am pretty confident all lp.bugs tests pass [17:47] awesome [17:47] so you are just waiting on me ;-) [17:47] may I land it for you? [17:47] gary_poster, do you want me to set off an ec2 test run that'll email you when the test run is finished [17:48] gary_poster, yeah, by all means :) [17:48] gary_poster, if you want to just do the test run yourself, that's fine as well :) [17:48] yeah the ec2 test run that would be awesome thank you [17:48] gary_poster, also, before heading off for the day, I'd like to look into the lifecycle stuff and see exactly what's left to do [17:49] makes sense [18:16] danilo, you still here? If so, you can try bringing me back from the edge. :-) [18:16] http://pastebin.ubuntu.com/562678/ [18:17] This PersonSettings thing is supposed to grow... [18:17] Argh! I'm horrible at this kind of thing :-) [18:17] Because I want to do #1 [18:17] But I think it will make people unhappy :-/ [18:18] I'll go have some lunch :-P [18:18] don't worry about it if you are gone danilo, you need to go start your break :-) [18:19] gary_poster, heh, I am still around [18:22] gary_poster, I think you can go with 1 if you come up with a nice little name for it like doNotSnapshot [18:23] gary_poster, it would be nice if one could simply do if isteam: self.personsettings = makeReadOnly(PersonSettings()) or something like that [18:23] gary_poster, which is basically what you are doing [18:23] gary_poster, so as long as you come up with decent names, I think option 1 is just fine [18:38] gary_poster, ok, I've added a comment to bug 711901 with a test case (I did it against my bug-584 branch because I had end-to-end test set-up in there, and as soon as it lands, test is usable in it's current form) [18:38] <_mup_> Bug #711901: Implement direct lifecycle subscriptions < https://launchpad.net/bugs/711901 > [18:39] gary_poster, is it ok if I leave it up to you to create a card on the kanban board and file a bug if/when needed? [18:40] gary_poster, also, ec2 test run is going on for my bug-548-use-preference branch, it should email you at gary.poster@canonical.com as well [18:42] danilos: ok, thanks for advice [18:42] yes, I can file bug [18:42] have a great weekend [18:42] gary_poster, thanks a lot :) enjoy yours as well [19:27] bac, you available for a review soon? It's potentially easy...and maybe not. :-/ [19:27] https://code.launchpad.net/~gary/launchpad/bug548-db-3/+merge/48651 [19:28] gary_poster: yes [19:28] thank you [19:28] you may need context [19:28] though I tried to give enough [19:32] I just committed a change reverting one line of a comment in garbo.py from "# TeamParticipation, EmailAddress, as all Person entries will be" back to "# TeamParticipation or EmailAddress, as all Person entries will be" [19:32] and pushed [19:50] gary_poster: i need some help understanding what is going on in readonly_settings [19:50] which, to me, means there is an opportunity for some explanatory comments in the code [19:50] in the function itself, or what its goals are? [19:50] both. [19:50] at least, yes [19:50] ok cool [19:50] closure_f makes my head hurt [19:51] yeah ok [19:51] what are you doing there? [19:51] You are familar with the old closure-in-a-loop problem? [19:51] where you want the closure to have the value within the loop [19:51] let's say i'm not, for our viewers out there to follow [19:51] :-) ok [19:52] So, when you want to make a closure [19:52] for each value in a loop [19:52] in Python each closure is bound to the locals [19:52] not a snapshot [19:53] but the mutable collection of locals [19:53] so [19:53] for i in range(4): [19:53] no try again [19:53] l = [lambda: i for i in range(4)] [19:53] would this go faster spoken? [19:53] yeah probly :-) [20:05] I'll keep my headphones on so you can yell into mumble if you like :-) [20:12] gary_poster: the rest of it looks good, so pending some good wordsmithing on the readonly_settings method it'll be mostly done. [20:12] awesome thanks bac [20:12] please try to clean up some lint, too. the redef of 'Reference' in model/person in particular [20:13] sorry to ask for that since you're under the clock, but it's easy [20:13] understod, will do [20:33] bac, pushed, and the mp is updated. I may have gone overboard on the comments. :-) [20:34] gary_poster: where did the oauth file come from? [20:34] ? [20:34] looking [20:34] not me [20:35] I think it is like the widgets stuff [20:35] merge artifacts [20:35] this branch has been around for a while [20:35] in various forms [20:35] I haven't merged db-devel because it would make all the previous MPs confused [20:36] the way to confirm that I haven't touched it is to merge my branch into db-devel...but I haven't :-) [20:36] gary_poster: ok, just so long nothing sneaks in [20:36] your new comments are fantastic [20:37] i read them aloud to jojo and he nodded his head appreciatively [20:38] lol [20:38] r=bac [20:38] thank you! === Ursinha is now known as Ursinha-afk === Ursinha-afk is now known as Ursinha