/srv/irclogs.ubuntu.com/2011/02/04/#launchpad-yellow.txt

gary_posterHello ubuntulog2!  Glad to see ya.  Will be even more glad to see your results in http://irclogs.ubuntu.com/2011/02/04/01:30
=== Ursinha is now known as Ursinha-gone
=== gary_poster changed the topic of #launchpad-yellow to: https://dev.launchpad.net/yellowhttp://launchpad.leankitkanban.com/Boards/Show/14028610http://irclogs.ubuntu.com/
=== Ursinha-gone is now known as Ursinha
bachi gmb12:56
bacgmb: 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:57
gmbbac: Sure thing, I'll take a look in a couple of minutes.12:58
bacwon't take long...not much there yet12:58
gmbbac: You call 3580 lines "not much"? 0.o13:04
bacoh, yeah13:04
baci forgot i added in the gallery widget13:04
gmbbac: Which bits can I ignore (on the basis that they're third party, I suppose)?13:04
baci can push up the pre-req branch13:04
gmbbac: That'd be a help, thanks.13:06
bacgmb: will do.  just sucked into a CHR conversation now, though13:06
gmbOk, no worries13:06
bacgmb: is "list related bugs" a superset of all of the other bug lists, such as subscribed, commented, etc?13:14
gmbbac: I'm drawing a blank here. Which page is this on?13:15
bacbug.lp.net/~gmb13:15
gmb(My guess, incidentally, is "yes")13:15
gmbbac: Yes, that's right. It's a superset.13:16
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
gary_posterbac, danilos, gmb, hi.  kanban/mumble in 2.  we are now logged here, btw, per bac's suggestion and thanks to is team13:28
danilosgary_poster, thanks for the notice, I'll keep quiet in here then :)13:29
gary_posterlol13:29
gmbbac: http://pastebin.ubuntu.com/56252913:49
danilosgary_poster, fwiw, my branch depends (so far) on your lp:~gary/launchpad/bug548-db-2 — is that the right one to use?13:51
danilosgary_poster, (I see -tests as well, so I figured I'd better ask :)13:51
gary_posterdanilos: 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 good13:52
danilosgary_poster, excellent, thanks :)13:53
gary_posterdanilos: please make sure you hand off that branch to me/the team so we can run with it while you are gone13:53
danilosgary_poster, I will!13:53
gary_posterthank you :-)13:53
gary_posterbac, 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
gary_posterDespite 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
gary_posterSo, questions:15:08
gary_poster1) I can show something on staging.  can anyone else show anything today?15:08
gary_poster2) 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
gary_posterAnd comment: I'll try to be as quick as possible; 15 minutes is a goal, 30 minutes is a limit.15:08
danilosgary_poster, wfm (either of the times)15:09
gary_postercool15:09
baceither time is ok15:09
gary_posterok15:09
gmbgary_poster: Ditto; I'm fine with either (though I've nothing to show thanks to Windmill)15:09
gary_poster:-/15:09
danilosgary_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 bit15:10
gary_poster:-/ understood15:10
gary_postergmb, bac, danilo, ok, let's aim for 16:30 UTC, 11:30 for me and bac15:10
gmbOk15:10
gary_posterI'll update the calendar15:10
gary_posterand we can talk then about good times for the mtg15:11
gary_posterin later weeks15:11
gary_posterthank you15:11
danilosgary_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
gary_posterdanilos: :-) ack, I'll go fix those15:18
danilosgary_poster, also, note that current "show off time" works fine today, but would really be my EOD on Fridays otherwise as it is 17:3015:23
gary_posterdanilos: gotcha.  yeah, we'll try to agree on a good time15:24
gary_posteron the call I mean15:24
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
gary_posterbac, danilos, gmb, 2 min delivery mtg warning16:28
gmbyup16:28
bacrt16:28
* bac fetches tea and morsels16:29
gary_posterdanilos and bac, unmute when you are ready :-)16:30
gary_posterhttps://bugs.staging.launchpad.net/~gary/+structural-subscriptions16:34
danilosgary_poster, "cronscripts/send-bug-notifications.py -vv"16:42
danilosgary_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
danilosgary_poster, all for personsettings table, that is :)17:04
danilosgary_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:04
gary_posterdanilos, yeah, gimme one sec, I'll make a commit, push, and suggest you merge17:05
danilosgary_poster, cool, thanks17:05
gary_posterdanilo, 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
gary_posterI made some changes that I question17:10
danilosgary_poster, sure thing17:10
gary_posterthank you17:10
gary_posterso, I'll start blathering here while you get the branch :-)17:11
gary_postersom, the change you need is just in security.cfg17:11
gary_posterthat is already approved by lifeless17:11
gary_posterthe changes I made recently are in the last two revisions.  The ones I'm partcularly interested in are in lp:~gary/launchpad/bug548-db-317:12
gary_postereh I mean17:12
gary_posterbzr diff -r-217:12
gary_posterIn particular, in particular, lib/lp/registry/model/person.py17:13
gary_posterWhere I added that UnwrittableStub17:13
gary_postermeh Unwritable17:13
gary_posterSo the reason it has to be there is that various things read attributes off of person automatically17:13
gary_posterone particular example is the webservice snapshotter17:14
gary_postera NotImplementedError on a read for a team-specific attr did not go over well with that code17:14
gary_posterI *can* make a read-only attr for teams though17:14
gary_posterthat works fine17:14
danilosgary_poster, I am looking at it17:14
gary_postercool thanks17:14
danilosgary_poster, please do go on explaining it :)17:15
gary_posteryeah :-) you wanna switch to mumble?  I can go faster17:15
gary_posterI'll keep on here for now17:15
gary_posterSo, I don't love that stub for two or three reasons17:16
gary_poster1) 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
gary_posterso it would be useful there17:16
daniloswell, it kinda is ugly :)17:17
gary_posteryeah17:17
danilosgary_poster, was it not possible to do something like doNotSnapshot for this particular field for teams?17:17
* gary_poster doesn't know of doNotSnapshot17:17
danilos(I don't know what doNotSnapshot does on a lower level, it might be something like this :)17:17
gary_posterheh, no idea17:17
gary_posterbut it is an existing pattern, which is good17:17
gary_posternew pattersn are bad :-)17:18
danilosgary_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:18
danilosgary_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
danilosi.e. usually for collections, but maybe it can work here as well17:19
gary_posterit is not conditional17:19
gary_poster(I just looked it up)17:19
gary_posterso I can't say "only snapshot this if this is not a team"17:20
gary_posterit's just a marker interface assertion17:20
gary_posteron an interface field17:20
gary_posterand I think that this might very well want to be exported in the webservice17:20
gary_posterI suppose that would be a simple fix, which I should not ignore...17:20
danilosgary_poster, right17:21
gary_posterI'm loooking throught the failed tests to see if that was the only problem with this implementation17:22
danilosgary_poster, so, I can't come up with any better suggestion on how to do what you are doing with the UnwritableStub17:22
gary_posterI could build a type17:23
gary_posterwhich would be faster17:23
gary_posteron the run-time side17:23
gary_posterI'd be switching __getattr__/__set_attr__ magic for "make me a class" magic17:23
gary_posterthe 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 :-P17:24
gary_posterAh17:25
gary_posterNo, doNotSnapshot doesn't slove all the problems17:25
gary_posterwe have other things that are doing verifyObject, for instance17:25
danilosgary_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
gary_posterand they fall over17:25
gary_posterheh17:26
gary_posterI also don't like re-listing attributes17:26
gary_posterit feels error prone17:26
gary_posterI could certainly do17:26
gary_posterclass UnwritablePersonSettings:17:26
gary_poster    @property17:27
gary_poster    def selfgenerated_bugnotifications(self):17:27
gary_poster        return True17:27
gary_posterand be done, but then I've had to define the default, what, four times?  five?17:27
danilosgary_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
gary_poster:-)17:27
gary_posterfair enough17:28
danilos(though, late hour might just be an excuse :)17:28
gary_posterheh :-)17:28
gary_posterdanilo, 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 min17:28
gary_posterbranch17:28
gary_posterthis will at least unblock you17:28
danilosgary_poster, right, thanks17:29
danilosgary_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
gary_postercool17:38
gary_posterthank you17:39
gary_posterdo we have a test for the other circumstance to your knowledge?17:39
gary_poster(the failing one)17:39
danilosgary_poster, no, unfortunately17:41
danilosgary_poster, also, all the tests I've tried pass with your branch merged in17:44
gary_postercool17:45
gary_posteryeah, ec2 failed with some, and my branch fixes everything ec2 complained about17:46
danilosgary_poster, so, generally, my branch for 548 is ready to land, and I am pretty confident all lp.bugs tests pass17:47
gary_posterawesome17:47
gary_posterso you are just waiting on me ;-)17:47
gary_postermay I land it for you?17:47
danilosgary_poster, do you want me to set off an ec2 test run that'll email you when the test run is finished17:47
danilosgary_poster, yeah, by all means :)17:48
danilosgary_poster, if you want to just do the test run yourself, that's fine as well :)17:48
gary_posteryeah the ec2 test run that would be  awesome thank you17:48
danilosgary_poster, also, before heading off for the day, I'd like to look into the lifecycle stuff and see exactly what's left to do17:48
gary_postermakes sense17:49
gary_posterdanilo, you still here?  If so, you can try bringing me back from the edge. :-)18:16
gary_posterhttp://pastebin.ubuntu.com/562678/18:16
gary_posterThis PersonSettings thing is supposed to grow...18:17
gary_posterArgh!  I'm horrible at this kind of thing :-)18:17
gary_posterBecause I want to do #118:17
gary_posterBut I think it will make people unhappy :-/18:17
gary_posterI'll go have some lunch :-P18:18
gary_posterdon't worry about it if you are gone danilo, you need to go start your break :-)18:18
danilosgary_poster, heh, I am still around18:19
danilosgary_poster, I think you can go with 1 if you come up with a nice little name for it like doNotSnapshot18:22
danilosgary_poster, it would be nice if one could simply do if isteam: self.personsettings = makeReadOnly(PersonSettings()) or something like that18:23
danilosgary_poster, which is basically what you are doing18:23
danilosgary_poster, so as long as you come up with decent names, I think option 1 is just fine18:23
danilosgary_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 <qa-ok> <Launchpad itself:Fix Committed by danilo> < https://launchpad.net/bugs/711901 >18:38
danilosgary_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:39
danilosgary_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 well18:40
gary_posterdanilos: ok, thanks for advice18:42
gary_posteryes, I can file bug18:42
gary_posterhave a great weekend18:42
danilosgary_poster, thanks a lot :) enjoy yours as well18:42
gary_posterbac, you available for a review soon?  It's potentially easy...and maybe not. :-/19:27
gary_posterhttps://code.launchpad.net/~gary/launchpad/bug548-db-3/+merge/4865119:27
bacgary_poster: yes19:28
gary_posterthank you19:28
gary_posteryou may need context19:28
gary_posterthough I tried to give enough19:28
gary_posterI 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
gary_posterand pushed19:32
bacgary_poster: i need some help understanding what is going on in readonly_settings19:50
bacwhich, to me, means there is an opportunity for some explanatory comments in the code19:50
gary_posterin the function itself, or what its goals are?19:50
bacboth.19:50
gary_posterat least, yes19:50
gary_posterok cool19:50
bacclosure_f makes my head hurt19:50
gary_posteryeah ok19:51
bacwhat are you doing there?19:51
gary_posterYou are familar with the old closure-in-a-loop problem?19:51
gary_posterwhere you want the closure to have the value within the loop19:51
baclet's say i'm not, for our viewers out there to follow19:51
gary_poster:-) ok19:51
gary_posterSo, when you want to make a closure19:52
gary_posterfor each value in a loop19:52
gary_posterin Python each closure is bound to the locals19:52
gary_posternot a snapshot19:52
gary_posterbut the mutable collection of locals19:53
gary_posterso19:53
gary_posterfor i in range(4):19:53
gary_posterno try again19:53
gary_posterl = [lambda: i for i in range(4)]19:53
bacwould this go faster spoken?19:53
gary_posteryeah probly :-)19:53
gary_posterI'll keep my headphones on so you can yell into mumble if you like :-)20:05
bacgary_poster: the rest of it looks good, so pending some good wordsmithing on the readonly_settings method it'll be mostly done.20:12
gary_posterawesome thanks bac20:12
bacplease try to clean up some lint, too.  the redef of 'Reference' in model/person in particular20:12
bacsorry to ask for that since you're under the clock, but it's easy20:13
gary_posterunderstod, will do20:13
gary_posterbac, pushed, and the mp is updated.  I may have gone overboard on the comments. :-)20:33
bacgary_poster: where did the oauth file come from?20:34
gary_poster?20:34
gary_posterlooking20:34
gary_posternot me20:34
gary_posterI think it is like the widgets stuff20:35
gary_postermerge artifacts20:35
gary_posterthis branch has been around for a while20:35
gary_posterin various forms20:35
gary_posterI haven't merged db-devel because it would make all the previous MPs confused20:35
gary_posterthe way to confirm that I haven't touched it is to merge my branch into db-devel...but I haven't :-)20:36
bacgary_poster: ok, just so long nothing sneaks in20:36
bacyour new comments are fantastic20:36
baci read them aloud to jojo and he nodded his head appreciatively20:37
gary_posterlol20:38
bacr=bac20:38
gary_posterthank you!20:38
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!