/srv/irclogs.ubuntu.com/2011/05/23/#launchpad-dev.txt

wgrantwgrant@mawson:~/lp$ bzr branch lp:launchpad/devel02:26
wgrantYou have not informed bzr of your Launchpad ID, and you must do this to02:26
wgrantwrite to Launchpad or access private data.  See "bzr help launchpad-login".02:26
wgrantbzr: ERROR: Invalid url supplied to transport: "bzr+ssh://bazaar.launchpad.net/+branch/launchpad/devel": no supported schemes02:26
wgrantThat's not meant to happen.02:26
wgrantInteresting.02:26
wgrantlp:launchpad works fine.02:26
wgrantOh, there is no devel series.02:28
wgrantStill, unobvious error :(02:28
StevenKFile a nastygram?02:28
wgrantwallyworld__: So, what are you up to on our first day of featureness?02:29
wallyworld__wgrant: digesting all the material, mockups etc. working on the picker display bug. musing about horrible query used to populate picker02:31
wgrantwallyworld__: Yeah, I was going to look at that vocab and try to work out what we can do to it.02:31
wallyworld__you?02:31
wgrantSince it needs a bit of work.02:31
wgrantAnd vaguely pondering UI.02:31
wallyworld__should be an interesting sprint02:32
huwshimiwgrant, wallyworld__: Have you guys started working on disclosure stuff now?02:32
wgranthuwshimi: Yup.02:32
huwshimiwgrant: nice02:33
wgrantWe'll soon see about that.02:34
huwshimiwgrant: Whether it's nice?02:40
wgrantRight, it is probably going to be a bit of a mess, at least to start :)02:40
huwshimiwgrant: And you won't have as much opportunity to contribute to the pie03:03
wgranthuwshimi: Indeed.03:04
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:213 - 0:[#####=__]:256
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:213 - 0:[######=_]:256
lifelesswgrant: so, critical bugs & bar charts04:09
lifelesswgrant: jmls challenge is at best a proxy for flacostes goal.04:10
lifelesswgrant: I'm charting flacostes goal: which was no open criticals04:10
lifelessgnuoy: your irc client is bouncing. Can has fix?04:10
wgrantlifeless: I thought it was to eliminate the backlog.04:11
wgrantBut OK.04:11
lifelesswgrant: if we are at 5 (the current escalated count) come dublin, I'm --sure-- everyone will be ecstatic and pies will happen04:12
wgrantHeh04:12
lifelessI'll be happy if we're in the 10-20 range04:12
wgrantIt is just somewhat demotivating to have the countdown regress when there's nothing we can do about it.04:12
lifelessuhm04:13
lifelessI hate to demotivate04:13
lifelessbut francis is not letting every escalation through04:13
wgrantAh, I see.04:13
lifelessand04:13
wgrantThat's not been clear previously.04:13
lifelesshe even unescalated one the other day04:14
wgrantI saw that.04:14
lifelessthe target-to-project one04:14
lifelessconcretely, we (the team) control what ones we're willing to escalate04:14
lifelesshmmm04:15
lifelesscan I be bother kickbanning gn04:15
lifelessuoy04:15
wgrantWell, we have a room full of pingable people.04:15
wgrantLOSA ping :P04:15
mbarnettheya wgrant.04:19
lifelesswgrant: whats bug 78436 really about ?04:19
_mup_Bug #78436: Careful publishing approach doesn't work <lp-soyuz> <soyuz-publish> <Launchpad itself:Triaged> < https://launchpad.net/bugs/78436 >04:19
wgrantmbarnett: gnuoy was bouncing, but appears to have stopped now.04:20
wgrantlifeless: Do you understand what a careful publishing run is?04:20
lifelesswgrant: never heard of it until the summary in that bug04:20
* mbarnett likes when things stop04:21
StevenKmbarnett: No fair enclosing gnuoy's laptop in a Faraday cage.04:21
wgrantlifeless: The -C, -P, -A, -D options to publish-distro cause its various stages to become "careful". That means they run completely from scratch -- they don't just process pending data like a normal run.04:22
wgrantlifeless: For something the size of the primary archive this can take a Long Time.04:22
wgranteg. -P causes all the package files to be republished, and took nearly 24 hours to do maverick on DF.04:22
wgrantI think the MemoryError is long-fixed.04:23
lifelessdo you mean the Packages files or deb & sources ?04:23
lifelessbecause, the former - mmm, should be as-is :P04:23
wgrantOh, and -A (careful index generation) can't regenerate byte-identical indices for released pockets, so it's not really useful.04:23
wgrantdeb & sources04:23
wgrantThe actual packages.04:23
wgrantshould be as-is?04:23
lifelesswgrant: btw I did some lmirror testing the other day :)04:23
wgrantOh?04:23
lifelesswgrant: I mean we recreate Packages.,* every run, no?04:24
wgrantlifeless: Not for all suites, but yes.04:24
lifelesslmirror - I think its at 'do some real world testing' stage04:24
lifelessI need to discuss w/ elmo again I think04:24
wgrantYou said that a year ago :)04:24
wgrantBut yes.04:24
wgrantI think so.04:24
lifelesswgrant: I did, but now I have twox1TB disks for testing04:25
lifelessonly problem is my link is -fail- atm04:25
wgrantAh, excellent.04:25
lifelessalso python slow04:25
wgrantPyPy fast :)04:25
lifelessso so slow04:25
wgranter04:25
lifeless25% faster overall, and 400% at the tokenisation04:25
lifeless400% slower that is04:26
lifelessok, I'm going to nuke that memoryerror bug04:26
wgrantErk.04:26
wgrantBut didn't you have a faster generator-based method?04:27
lifelessthat was slower04:27
wgrantWow.04:27
wgrantOK.04:27
lifelesshttps://bugs.pypy.org/issue71804:27
lifeless300%, 4times04:27
wgrantSelf-signed cert ew04:28
wgrantBad cn, too.04:28
lifelessso an interesting question is04:52
lifelesswhat auth for internal services04:52
lifelesshost based? basic? oauth?04:53
* lifeless doesn't really fancy having oauth overhead in every microservice.04:53
lifelessnot to mention the bootstrap complexity for stuff the SSO wants to reference.04:53
wgrantI think bsic.04:53
wgrant+a04:53
wgrantI guess host-based could work, but it has certainly fallen out of favour in the last couple of decades.04:54
lifelessI'm inclined to say hosts + basic (must pass both checks)04:54
wgrantYeah.04:54
lifelessbelt and braces04:54
wgrantI imagine lots of these will be available far more widely than the present librarian, so, yeah. Probably a good thing.04:55
lifelessI can imagine support oauth eventually, optionally04:58
lifelessso hosts + basic, or oauth from anywhere04:58
lifelessbut I'm willing to have to retrofit than pay up front04:58
wgrantAuthentication on these primarily-private services should be easy to fix.04:59
wgrantzomg05:31
wgrantnon-Rabbit lucid_db_lp failure!05:31
StevenKSay it ain't so!05:31
lifelesswoo05:34
LPCIBotProject db-devel build #569: ABORTED in 3 hr 9 min: https://lpci.wedontsleep.org/job/db-devel/569/05:34
StevenKOh, stop that Jenkins05:35
StevenKUsing a slave that I'm trying to destroy is not cool05:35
LPCIBotProject windmill-db-devel build #301: STILL FAILING in 1 min 21 sec: https://lpci.wedontsleep.org/job/windmill-db-devel/301/05:36
=== almaisan-away is now known as al-maisan
nigelbHi! I'm trying to figure out how to fix bug 90628.  Do I create a new property and use that?06:14
_mup_Bug #90628: Subscribers to a spec are randomly arranged <easy> <lp-blueprints> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/90628 >06:14
lifelessnigelb: so, I think we show all subscribers06:14
lifelessnigelb: in which case just sort the list in the view is simplest and not unreasonable06:14
nigelbhrm, I tried to figure out the flow of control and got lost ^-^06:15
lifelessok, its fugly but starting to come together https://launchpad.net/bugs/9062806:15
_mup_Bug #90628: Subscribers to a spec are randomly arranged <easy> <lp-blueprints> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/90628 >06:15
lifelessbahhh06:15
lifelesshttps://dev.launchpad.net/ArchitectureGuide/ServicesRoadmap06:15
nigelbheh06:16
lifelessnigelb: so - SpecificationView06:16
lifelesslib/lp/blueprints/templates/specification-portlet-subscribers.pt06:16
lifelesswhich uses context/subscriptions06:17
lifelesswhich is on model/specification06:17
lifelessas a multiple join06:17
lifelessone was is a new property06:17
lifelessI'd be inclined to move the existing join to _subscriptions06:17
lifelessand make a cachedproperty which eager loads the subscribers and sorts appropriately.06:18
nigelbthe one from line 185 in the model?06:18
lifelessyes06:18
nigelbokay, I am getting used to my way around LP codebase.06:18
lifelesswgrant: did you get an oops for bug 78680406:19
_mup_Bug #786804: branch scanner fails with MemoryError leaving branch page in intermediate state <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/786804 >06:19
nigelblifeless: ok, I'll try to figure this out and ask again if I'm lost.06:19
wgrantlifeless: There wasn't one.06:20
lifelesswgrant: ><06:20
wgranthttp://launchpadlibrarian.net/72030392/lWzH7ofhPZuORhdAbLi89zRxIV9.txt06:20
lifelesswgrant: isn't it meant to oops ?06:20
wgrantOh.06:20
wgrantThere is one, on the next line.06:20
wgrant2011-05-19 17:42:47 INFO    Job resulted in OOPS: OOPS-1965SMS906:20
lifelessthanks06:21
StevenKThe OOPS prefix is SMS? Fail.06:22
wgrantSupermirror scanner.06:23
wgrantNot that fail.06:23
wgrantJust old :)06:23
nigelblifeless: should the join be moved from SQLBase to StormBase?06:47
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: henninge | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:213 - 0:[######=_]:256
jtvhuwshimi, hi!  Can I trouble you for some UI expertise?07:12
huwshimijtv: Of course!07:12
LPCIBotProject windmill-db-devel build #302: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill-db-devel/302/07:12
jtvGreat.  It's about this page: https://dogfood.launchpad.net/ubuntu/oneiric/+localpackagediffs07:12
jtvhuwshimi: I'm just setting you up with the privileges you need to see the pertinent parts.07:13
jtvhuwshimi: if you have those privileges, you should see a checkbox to the left of each entry.07:13
jtvThat checkbox lets the user select specific entries in order to synchronize them.07:13
jtvBut that doesn't make sense for ones that are already being synchronized.07:14
huwshimijtv: Hmmm... don't have any checkboxes07:14
LPCIBotProject windmill-devel build #118: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/118/07:14
StevenKhuwshimi: Are you logged in?07:14
jtvTry reloading.  You should just have received the privileges to get them.07:14
jtvOh, yes, and what Steve said.  This is dogfood, a special test server.07:15
huwshimiStevenK: Thanks :)07:15
huwshimijtv: Still no checkboxes07:15
jtvYou do see a table with green package names with "details" widgets, right?07:16
jtvStevenK: might he need anything more than anoint-dogfood-admin?07:17
StevenKI don't think so07:18
huwshimijtv: yeah07:18
StevenKPerhaps you annoited the wrong user?07:18
wgrantErm, let's not anoint-dogfood-admin without extreme caution and consideration, please :)07:18
=== al-maisan is now known as almaisan-away
jtvanoint-dogfood-admin huwshimi07:18
jtvLooks right to me.07:18
wgrantIndeed, that is correct.07:18
wgrantDo admins have launchpad.Append, though?07:19
wgrantWait, it doesn't use launchpad.Append any more...07:19
wgrantneeds an archivepermission.07:19
* wgrant fixes.07:19
wgrant(by removing from ~admins and adding to ~ubuntu-core-dev007:19
jtvThanks.07:19
wgrantIf the picker loads...07:19
wgranthuwshimi: Should work now.07:20
huwshimiwgrant, jtv: Got it07:20
jtvGreat.07:20
jtvNow, to see how I'm signaling that a package is synchronizing (which means there's no point in requesting synchronization), look for "Synchronizing"07:21
huwshimijtv: Yep07:21
jtvYou'll note two things: the checkbox is disabled, and there's a "(Synchronizing)" in italics next to the package name.07:21
huwshimijtv: Yep07:21
jtvThose are the changes I wanted your feedback on.  Very simple, really.07:22
jtvBut I wanted to be sure that I'm not causing any distress anywhere by just slapping a bit of extra text into that column.07:22
jtv(Disabling the checkbox seems like a bit of a no-brainer in retrospect, but I played with putting a "please wait" icon in its place)07:24
huwshimijtv: I think that looks alright. The loading icon is something that should be used if the action happens in a short period of time (and an ajax event that will update the page)07:25
jtvYes, that's one of the reasons why I ended up not going with that.  There's no polling as yet.07:25
huwshimijtv: yeah07:25
huwshimijtv: You could have some kind of static icon symbolizing that it is synchronizing07:25
jtv(Another reason is that we don't seem to _have_ a "please wait" icon :)07:25
huwshimijtv: What is the time scale for the sync07:26
huwshimi>07:26
huwshimi*?07:26
jtvA minute perhaps.07:26
StevenKI doubt it07:26
jtvPossibly much less.07:26
StevenKIf it's done via a job, maybe a little bit longer than a minute07:27
jtvThe job was to run every minute I believe; though rabbit will make it much faster.07:27
jtvAn icon is an interesting idea, but will it be clear enough?07:27
jtvMind you, this UI is only for a select few experts.  But still, the less expertise I add to the requirements the better.07:28
huwshimijtv: At the very least I would consider adding an ellipsis after "synchronizing" as it is not a permanent state07:29
jtvWould that work well with the parentheses?07:30
jtv(Synchronizing...)07:30
huwshimijtv: The icon would be an addition, not  replacement07:30
jtvoic07:30
huwshimijtv: I think English allows you to do that07:30
jtvWell yes, it's probably allowed — just asking whether it's nice. :-)07:31
huwshimijtv: Yeah, I'm not sure07:32
jtvLet me try it.07:32
jtvhuwshimi: try reloading the page?07:33
jtv(And I just updated it to use &hellip;07:33
jtv)07:33
huwshimijtv: Hmm...07:34
jtvDoesn't quite look right, does it?07:35
jtvWhat if I dropped the parentheses?07:35
jtvfoo — synchronizing…07:35
huwshimijtv: You could try dropping the parentheses, and maybe adding a bit more space between the name and the sync07:37
jtvBut no emdash?07:37
huwshimijtv: Yeah I think so07:37
* jtv fiddles07:37
jtvOh, and drop the capital letter?07:38
huwshimijtv: I'm not sure about that07:38
jtvhuwshimi: try now07:39
huwshimijtv: OK, maybe also drop the italics and make it a bit grey?07:40
huwshimijtv: Actually we do have an icon07:43
=== stub1 is now known as stub
huwshimijtv: It might be good to add that before the "synchronizing..."07:43
huwshimijtv: It's a little clock, let me find it07:44
jtvThat's the one I was trying to find as well.07:44
jtvIt's animated though.07:44
jtvhuwshimi: hmm... I worry that an icon there may be a bit distracting.07:46
jtvI've got the space-separated grey text now though.07:46
jtvLooks nice and discreet.07:46
huwshimijtv: Ugh, the demo text is so distracting07:46
wgrant/@@/processing?07:46
StevenKhenninge: Hi! Do you mind reviewing a slightly oversized branch?07:47
StevenKhenninge: (833 lines)07:47
jtvThanks wgrant.  I guess animating sprites wasn't a good idea.07:47
wgrantjtv: Quite possibly not.07:47
henningeStevenK: Sure, I'll do it after I finish jtv's branch.07:48
jtvhenninge: just a mentoring request :)07:48
wgrantStevenK: Why the change in nascentupload-announcements?07:48
henningejtv: I know07:48
huwshimijtv: Actually the one I was looking for turns out to be the milestone icon07:49
huwshimijtv: So nevermind that07:49
jtvwgrant: /@@/processing isn't working for me I think07:49
wgranthttps://launchpad.net/@@/processing works for me...07:49
StevenKwgrant: The first one is just a e-mail change, it doesn't actually send the annoucement -- and I didn't want to special case "Don't set the announce list if dry_run is True"07:49
jtvHmm07:49
StevenKwgrant: The second one is due to notify() hooking into notify_spr_less() which does far less logging07:50
jtvAh, I got the syntax all wrong.07:50
jtvBeen a while since I used non-sprite images!07:50
jtvhuwshimi: got it with the wait icon now07:51
jtv…and now the spaces are on the right side of the icon07:52
LPCIBotProject windmill-db-devel build #303: STILL FAILING in 45 min: https://lpci.wedontsleep.org/job/windmill-db-devel/303/07:58
jtvhuwshimi: the icon is a bit distracting, isn't it?07:58
lifelessnigelb: generally do just one thing08:06
nigelbokay08:06
nigelbI'm getting so many OOPS because I'm doing it wrong.08:06
lifelessnigelb: so yes, we should move the class including the joins, to storm base. But either do that, or the sort. Don't do both (a change doubled is a risk quadrupled)08:06
nigelbah, okay. I'll stick with the sort08:07
lifelessnigelb: please feel free to chat here and say 'help, X happened' :)08:07
nigelbokay :)08:07
huwshimijtv: So there will be a trade-off between how obvious the notification needs to be and how often it will be shown08:10
jtvI suspect it needn't be very obvious.08:10
huwshimijtv: It will be a short term thing, so maybe a little bit more distracting is ok08:11
huwshimijtv: In that case it might be fine without it.08:11
huwshimijtv: This might be a situation where we can release the feature and keep an eye out for feedback08:11
huwshimijtv: And iterate when we need to08:11
jtvYes... I suspect people won't care much either way.08:12
jtvFor me it's more an explanation for the "hey why can't I sync this?" moment08:12
huwshimijtv: OK, sure08:14
jtvThen I'll go with what he have: spaces, grey text, ellipsis; no icon, no upper-case, no parentheses.08:15
jtvThanks for the help!08:15
henningejtv: r=me08:28
jtvthanks henninge!08:28
StevenKhenninge: Do you need the URL for my MP?08:30
henningeStevenK: usually no08:31
henninge;)08:32
henningegot it08:32
lifelessfoodingk08:36
wgranthenninge, StevenK: I have reviewed that MP, but henninge's opinion is also useful given that I don't really exist yet.08:38
StevenKwgrant: :-(08:44
StevenKwgrant: I explained the two test changes on IRC08:44
adeuringgood morning08:48
jtvhi adeuring08:49
adeuringhi jtv!08:49
wgrantStevenK: Yeah, but they were in the textbox already and I don't really trust it.08:50
huwshimijtv: No problems :)08:51
huwshimijtv: Anytime08:51
StevenKwgrant: You don't trust the textbox, or the changes I made?08:52
wgrantStevenK: That you're not invalidating part of the test.08:52
wgrantYou probably aren't.08:52
wgrantBut still, I wanted to record my concern.08:52
StevenKwgrant: The first test I had to change is a crook anyway. "If dry_run is specified, we don't send a mail. But oh, let's look for the entire thing, verbatim, in the logs."08:54
wgrantStevenK: I'd expect to see something there, like the "Would have sent a mail" bit.08:55
StevenKAnd the subject bit is dangerous?08:56
StevenKEr? The old code didn't use packageupload.displayname?08:56
wgrant287-        # Weed out duplicate name entries.08:56
wgrant288-        names = ', '.join(set(packageupload.displayname.split(', ')))08:57
wgrant298-        subject = '[%s/%s] %s %s (%s)' % (08:57
wgrant299-            packageupload.distroseries.distribution.name, suite, names,08:57
wgrant300-            packageupload.displayversion, message.STATUS)08:57
StevenKAh08:57
mrevellHello09:01
=== a1 is now known as al
jtvhi mrevell!09:14
=== almaisan-away is now known as al-maisan
* henninge relocates09:19
jtvwallyworld__: reviewed your branch.  A few changes to make.09:39
jtvallenap: do we have a job runner for IPlainPackageCopyJob?09:50
allenapjtv: It gets run by cronscripts/process-job-source-groups.py09:51
allenapjtv: It runs on loganberry every 5 minutes.09:51
jtvCan I run it on dogfood?09:51
bigjoolswgrant: hello10:02
bigjoolswgrant: can you follow up on Steve's MP that you started to review, I will mentor you.  I'm happy with it myself now.10:04
jtvhenninge: can I trouble you for another one?  https://code.launchpad.net/~jtv/launchpad/db-bug-786822/+merge/6192410:04
jtvallenap: and another question.  When a PlainPackageCopyJob raises CannotCopy, do we know reliably which package the error was for?10:08
* allenap looks10:09
allenapjtv: Only if we parse the exception content.10:11
jtv:( :( :(10:12
jtvMay be a good idea to change that then.10:12
jtvSo that we may accurately report errors.10:12
jtvI think I'll go grab a bite first though.10:13
=== jtv is now known as jtv-eat
allenapjtv: Yeah, good idea :)10:13
LPCIBotProject windmill-db-devel build #304: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-db-devel/304/10:20
wgrantbigjools: Looking.10:20
lifelessmpt: hi10:20
mpthi lifeless10:20
lifelessmpt: book you might like (or even love) - the innovators solution10:21
bigjoolswgrant: thanks10:21
lifelessjml: around?10:21
mptlifeless, oh yes, I saw your tweet about that10:22
lifelessmpt: cool; evan's post about ~ubuntu-metrics reminded me you would probably get a lot out of (or vigorously agree and say you know it already :P) it10:23
lifelessbigjools: when you say you're not happy about the feature flag do you mean 'its not complete' or 'it shouldn't be flagged'. I don't care which you mean, but I can't *tell* which you mean :)10:25
bigjoolslifeless: I was too brief after discussing it with steve, he knows what I mean :)10:26
mptlifeless, found a copy on the Millbank bookshelves :-)10:30
wgrantbigjools: Done.10:31
LPCIBotProject windmill-devel build #119: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/119/10:32
lifelessmpt: hah! nice.10:34
bigjoolsStevenK: you have your answers, go forth and fix0rate10:36
lifelessallenap: bugs fixed11:02
allenaplifeless: Awesome :)11:02
lifelessrev 1111:03
lifelessbah11:03
lifeless15111:03
lifelessor wait for the ppa to pick it up11:03
stubWhat was the query we wanted to denormalize Revision.revision_date to  BranchRevision.revision_date for?11:04
lifelessmerge proposal page IIRC11:04
lifelessits in the bugs tagged timeout11:05
stubWhy did it want Revision.revision_date instead of using BranchRevision.sequence to filter or order?11:05
lifelessYou'll need to have a nosy11:06
lifelessI have paged it out11:06
stubBug #778393 isn't it11:07
_mup_Bug #778393: Branch:+index timeouts <dba> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/778393 >11:07
stubI see - Bug #74291611:07
_mup_Bug #742916: BranchMergeProposal:+index timeouts - slow query plan <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/742916 >11:07
LPCIBotProject windmill-db-devel build #305: STILL FAILING in 48 min: https://lpci.wedontsleep.org/job/windmill-db-devel/305/11:08
StevenKwgrant: You will cope with bpn_archtag?11:08
StevenKwgrant: And how do you want confirmation about partner?11:09
wgrantStevenK: I guess QA on DF would be fine.11:10
lifelesshey allenap11:28
lifelessbtw, you've invalidated the test11:28
allenaplifeless: Explain?11:28
lifelessthe hunk @@ -28,10 +27,7 @@11:28
lifelesshad explicit connection logic11:28
stublifeless: I think the query is broken anyway. It is trying to display the set of revisions that were reviewed, between two timestamps. That timestamp is the timestamp when the revision first entered Launchpad - it isn't the timestamp that it landed on the branch being reviewed.11:29
lifelessnow its calling a method that could in principle be lazy11:29
lifelessso its not valid anymore11:29
allenaplifeless: Okay, I'll revert that bit. Are you happy with the rest?11:29
stubc/'first entered launchpad'/'system timestamp when the revision was committed to its original branch'11:30
allenapI mean, it's just stuff I twiddled as I read the code.11:30
lifelessallenap: the other functional thing is 'getConnection' - its basically noise11:30
lifelessallenap: because the parameter list including things like require etc will need to be reflected in it11:31
lifelessallenap: which is why I had and then deleted a get_connection method11:31
lifelessallenap: so I'd delete that method11:31
=== al-maisan is now known as almaisan-away
LPCIBotProject db-devel build #570: FAILURE in 5 hr 37 min: https://lpci.wedontsleep.org/job/db-devel/570/11:31
lifelessallenap: you might want to have it glued in with the lazr.config settings for rabbit11:32
stubAm I mistaken that Revision.revision_date is untrusted data, originating from a remote system timestamp?11:32
lifelessallenap: if you pull in my rabbit branch to get the layer11:32
lifelessstub: it is untrusted, yes11:32
lifelessallenap: other than that its all fine; some minor could-be-done different stuff (e.g. I was going PEP 8 on the methods, leaving stuff that hadn't been migrated uncommented so that when we fix it up the diff is saner)11:33
allenaplifeless: Is there a reason why ExportRabbitServer and RunRabbitServer are split into two?11:33
lifelessallenap: but nothing to sweat about any which way11:34
lifelessallenap: I'm glad you asked. Yes, there is11:34
lifelessallenap: they do different things11:35
lifelessthe exporter exports enough to run rabbitctl or rabbit server or both11:35
lifelessyou often want to run the former separate from the latter11:36
lifelessallenap: I don't object to it being camelcase, though it is hard on the eyes11:37
=== matsubara-afk is now known as matsubara
allenaplifeless: I'm happy to go PEP8. Our coding standards and actual practice are a bit schizophrenic on the matter.11:38
lifelessoh, one other thing - def start()11:40
lifelessallenap: that looks like its not a public method11:40
lifelessallenap: so its odd for it to be missing the _11:40
allenaplifeless: I guess stop() isn't either?11:40
lifelessindeed11:41
lifelessthat was oversight11:41
lifelessI would change stop to _stop11:41
lifelessI can't see the bugfix you mention11:41
lifelessoh11:42
lifelessalso11:42
lifelessfq_nodename is a method because its not cheap to call11:42
allenaplifeless: Re. getConnection, that's just a rename from get_connection. Do you suggest I ditch that altogether and use amqp.Connection everywhere instead, rename it back, or move it elsewhere (ExportRabbitServer doesn't seem like the right place for it now anyway).11:42
lifelessallenap:11:43
lifeless+    def getConnection(self):11:43
lifeless+        return self.server.getConnection()11:43
allenaplifeless: Is gethostname() really that expensive?11:43
lifelessallenap: that one isn't a rename11:43
allenaplifeless: Okay, yeah, I'll ditch that.11:43
allenaplifeless: The bugfix is actually in the prerequisite branch. This is a bit of a muddle :-/11:45
allenaplifeless: It wasn't sleeping when calling check_running during start-up.11:46
allenaplifeless: Also, the reason I went camelCase is because of Fixture.setUp().11:48
lifelessyeah, thats in the fixture protocol, a bit sadly11:48
lifelessits camelcase because of TestCase.setUp11:48
allenapYeah, I assumed as much.11:48
lifelessbut, FWIW, I use PEP8 everywhere else in the fixtures library11:48
lifelessanyhow, this is ok as is, everything is changable if needed :P11:49
lifelessI'm glad you're digging into it11:49
lifelessI think you should do what you think is best11:50
lifelessthe only thing that really matters is the test actually showing what its testing11:51
allenaplifeless: Thanks, and I'll try not to make so many cock-ups in future :)11:51
LPCIBotProject windmill-db-devel build #306: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-db-devel/306/11:54
lifelessallenap: hah no worries :)11:54
lifelessallenap: have you had a chance to look at the layer patch?11:55
allenaplifeless: Briefly, that's all, but I have it on the list.11:55
lifelesscool11:55
stubjtv-eat: http://paste.ubuntu.com/611779/ is the diff of a launchpad schema dump before and after applying my current 'Drop BranchRevision.id' patch.  It all looks healthy so far.11:59
stubjtv-eat: https://code.launchpad.net/~stub/launchpad/drop-branchrevision-id/+merge/55480 has the db patch at the bottom, not much simpler. The existing UNIQUE constraint is a big help, not a hindrance.12:01
bigjoolsanyone else getting bzrlib.errors.ReadOnlyError when doing "bzr up" in download-cache?12:14
wgrantSure it was bzr up and not bzr pull?12:16
bigjoolsyes12:18
bigjoolsrf-get is falling over and I've not changed that ;)12:18
jmllifeless: sorry.12:21
StevenKbigjools: henninge was12:21
henningeyes, I was.12:21
bigjoolsdid you file a bug henninge?12:21
henningeI forgot but I can still do it.12:22
bigjoolsok12:22
bigjoolsI have a fresh crash file12:22
henningebigjools: I don't  ;)12:23
henningebug I can make one12:23
bigjoolswell apport says bzr is not a genuine Ubuntu package here :)12:23
henningeStevenK: Sory about your MP, btw. I just don't feel up to it atm.12:23
StevenKhenninge: It's perfectly fine, wgrant has already written me a novel12:25
henningeweired, I cannot reproduce it on this computer12:25
* henninge tries laptop again12:25
henninges/weired/weird/12:25
=== jtv-eat is now known as jtv
jtvstub: ah yes, you don't have to invert the dependency like we do when we start with an index, right?  (Going from memory; hope to look deeper later)12:29
stubjtv: Yup. The pg_depends stuff seems identical for a unique and a primary key index, so just changing the type in pg_constraint seems to work fine.12:34
stubjtv: Claim that MP review if you want to double check the work.12:35
* jtv wonders if unique and primary-key constraints wouldn't be easier if they merely enforced the existence of a suitable index.12:35
stubI've just pushed updated sampledata and set the MP status to needs review.12:35
jtvstub: err ok12:35
stubjtv: I think that would help, yes.12:36
jtvJust going through review fin/ack for Ian, and checking up on one of my own.12:37
stubjtv: Sure. No need to do it now. I do want it on staging though, so if you can't check it over tomorrow I'll land it r=stub and we can inspect what happens on real data.12:38
jtvBut yes, I should go over it definitely and decide whether I need plastic surgery, spare passport etc.12:38
jtvstub: maybe want to walk me through it IRL?  Just an idea.12:39
stubSure.12:39
=== almaisan-away is now known as al-maisan
nigelbokay, take 3 at fixing the specification ordering bug.12:49
jml:)12:50
=== henninge is now known as henninge-lunch
nigelbokay, what is subscription and subscribers in lp/blueprint/model/specifications.py12:58
nigelbI can't figure out how they're different.12:58
nigelbso, this is what life less told me earlier today on fixing this.13:04
nigelbhttp://pastebin.ca/206755513:04
=== benji changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: henninge, benji | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:213 - 0:[######=_]:256
nigelbcan I just move the query onto specificationsubscription.py and will it Just Work?13:05
jmlnigelb: 'subscriptions' is a result set of SpecificationSubscription objects13:06
jmlnigelb: 'subscribers' is a result set of Person objects13:06
nigelbjml: ah.13:06
jmlffs13:06
jmlmy mobile phone operator needs to check my age :\13:06
nigelbdid they give you free texts for a month?13:07
nigelb:P13:07
nigelbokay, I find to find the person who tagged the bug I'm working easy :/13:08
nigelbThis is my third attempt and I'm going no where :(13:08
jmlnigelb: I can't view that paste. sorry.13:09
jmlnigelb: what are you trying to do?13:09
nigelbjml: I'm trying to fix bug 9062813:10
_mup_Bug #90628: Subscribers to a spec are randomly arranged <easy> <lp-blueprints> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/90628 >13:10
jmlnigelb: how are you trying to do it?13:11
nigelbhttp://irclogs.ubuntu.com/2011/05/23/%23launchpad-dev.html#t06:1413:11
nigelbthere ^^ that way.13:11
jmlnigelb: thanks.13:13
jmlnigelb: so, you are trying to order the subscribers on the web page by changing the ordering of Specification.subscriptions?13:13
nigelbjml: yeah, and failing of course :)13:14
jmlnigelb: do you understand what lifeless meant by "cached property"?13:14
nigelbthey way the subscription is done seems vastly different from how the sprint was.13:14
nigelbisnt the one with a @cachedproperty wrap?13:15
nigelb*isn't it13:15
jmlnigelb: exactly.13:15
jmlnigelb: lifeless was saying, "rename ISpecification.subscriptions to ISpecification._subscriptions"13:15
jtvbigjools: did you say that the Version(x) < Version(y) is not the right way to compare versions in a DSD?13:15
jmlnigelb: and then add a new property called "subscriptions"13:15
nigelboh13:15
jmlnigelb: this new property should just return _subscriptions, but sort it first.13:15
nigelbjml: okay, let me see if I can get that bit.13:17
benjigary_poster: I didn't see that one; I made one specifically for the bug;13:26
benjiI'm also in the wrong chan.13:26
gary_poster:-)13:26
nigelbIs there an easier way to clear cache other than stopping and starting LP?13:26
lifelessjml: sorry?13:29
wgrantnigelb: Which cache? The code cache?13:29
nigelbwgrant: well, I changed the code, isn't reflecting on refresh, I presume its cached13:29
lifelessjml: you might like to cast your eye over the 'wiki' lep. I suspect its a little gung ho without enough thought about the end product & what we want out of it13:30
wgrantnigelb: Right, the appserver doesn't reload code, because in Python that doesn't really work.13:30
lifelessjml: other than that I was going to propose a catchup at your convenience13:30
nigelbwgrant: so restart LP? :)13:30
wgrantnigelb: I tend to run 'bin/run -r librarian -i development' directly, since make run takes forever.13:30
wgrantRight.13:30
nigelboh13:31
nigelbI don't have to do make run every time? :O13:31
lifelesswgrant: s/doesn't really work/really doesn't work/13:31
nigelb(and yeah, it does take forever)13:32
=== Ursinha-afk is now known as Ursinha
wgrantnigelb: Our Makefile sort of sucks, so it rebuilds far more than necessary.13:33
nigelb\o/ It works!13:33
nigelblifeless, jml: Thanks :)13:33
wgrantnigelb: Run 'make jsbuild' if you make JS changes, make something else if you make CSS changes, otherwise just use bin/run.13:33
nigelboh, wait. I need to write tests.13:34
lifelessnigelb: there will be tests already13:34
lifelessnigelb: you just need to update htem13:34
nigelbwhee, so just run all the tests, something will fail, fix them :D13:34
nigelbhrm, I don't see any tests testing the sort order.13:36
lifelessbin/test -vvt blueprints13:37
lifelessI bet something will fail13:37
jmllifeless: yeah.13:40
jmllifeless: I'm unwell today, so maybe tomorrow morning UK time?13:41
lifelesssure13:41
lifelessget well soon13:41
nigelbI guess it will take a while. Tests running.13:44
lifelessnight y'all13:45
wgrantnigelb: blueprint doesn't have that many tests.13:46
wgrantWhich may be a good or a bad thing :)13:46
nigelbnight lif13:47
nigelbnight lifeless13:47
nigelbwgrant: heh13:47
nigelbwgrant: I fear doctests.13:47
=== Ursinha is now known as Ursinha-afk
wgrantEverybody does.13:48
=== Ursinha-afk is now known as Ursinha
nigelbI'm glad I have company.13:48
nigelbOh, well. Something did fail.13:52
nigelbOf course, doctests.13:52
bigjoolsjtv: right, you need to use apt_pkg.VersionCompare()13:59
jtvbigjools: touché—I already implemented it.  :)13:59
deryckHi adeuring and henninge-lunch.  Running just a minute or two late for our standup.14:00
deryckMorning everyone else! :-)14:00
jtvbigjools: the hard part for tracking errors, I think, is finding the DSD that matches a PlainPackageCopyJob.  After all some PPCJs may not be related to DSDs.14:00
jtvhi deryck14:01
bigjoolsjtv: gavin added extra columns to the PCJ table to support querying.  I'd get all jobs and match what you can.14:02
jtvYes, I suppose.  It's not a very critical path, since it's an error case in an offline process.14:02
bigjoolsjtv: when I say get all jobs, get all jobs for that archive/distroseries, then sift the json_data14:04
jtvYes I wasn't thinking of getting _all_ all jobs, thank you :)14:05
bigjoolsjtv: just clarifying :)14:05
henninge-lunchderyck: stand up over?14:06
=== henninge-lunch is now known as henninge
deryckhenninge, no, still in progress14:06
henningederyck: wating for my laptop to boot14:06
henningeoh, standby14:06
bigjoolshenninge: did you report that bug?14:10
henningebigjools: no yet, sorry. otp now14:11
bigjoolshenninge: I'll do it14:11
henningebigjools: ok14:11
henningebigjools: we had noticed that the failing branch had the same parent branch with a different url14:11
bigjoolshenninge: https://code.launchpad.net/~launchpad/lp-source-dependencies/trunk ?14:12
henningebigjools: whereas the new, working checkout does not have a parent branch at all.14:12
henningeyeah14:12
bigjoolshenninge: what new checkout?14:12
henningebigjools: http://paste.ubuntu.com/611718/14:13
henningebigjools: I worked around it by creating a new checkout of lp-source-dependencies/trunk14:13
henningethe paste ^ is the broken one.14:13
bigjoolshenninge: my broken one has no parent14:13
henningeso that is not related ...14:14
gary_posterderyck, hi!  When you get a chance, I'd love to chat about CHR to get hints and clues14:15
henningebigjools: what's your bzr version14:17
bigjools2.3.314:17
henningeme, too.14:17
henningeThe bug does not appear to be in 2.3.114:17
deryckgary_poster, sure.  Just finishing standup.  Let me close out notes and then we can chat anytime.14:18
gary_postercool thanks a lot deryck14:18
henningebigjools: I have that on my desktop machine and a copy of the "broken" branch and it's not failing.14:18
bigjoolshenninge: https://bugs.launchpad.net/bzr/+bug/78698014:18
_mup_Bug #786980: bzr: ERROR: bzrlib.errors.ReadOnlyError: A write attempt was made in a read only transaction <Bazaar:New> < https://launchpad.net/bugs/786980 >14:18
henningebigjools: thanks, I'll comment there14:19
bigjoolshenninge: oh well :/14:19
bigjoolsI'll make a new checkout then14:19
deryckadeuring, bug 739075 is still InProgress but you're done on that, right?14:20
_mup_Bug #739075: Person:+questions timeouts <qa-ok> <question> <timeout> <users> <Launchpad itself:In Progress by adeuring> < https://launchpad.net/bugs/739075 >14:20
adeuringderyck: yes, that should be "fix committed", if not fix released14:20
deryckadeuring, awesome, thanks14:21
deryckadeuring, it's db-stable stuff, so committed not released.14:21
adeuringwell, it's not "fix released": requires a DB schema change...14:21
jtvallenap, bigjools (in alphabetical order): errors from package copy jobs need to appear to come from a Launchpad user.  Is there a user identity that properly represents the package copier?14:22
bigjoolsjtv: no, we need to get the requesting user from somewhere14:25
jtvbigjools: I thought it'd be more intuitively accurate to have "Launchpad" make the comment, and also help prevent confusion over manually pasted messages vs. automatically generated ones.14:26
bigjoolsjtv: it would be better to show who caused the problem, then you can talk to them.,14:27
bigjoolswe can make it look obviously auto-generated in other ways14:27
jtvYes, that'd be nice too.  But showing them as the actual person making the comment seems a bit too much of a good thing to me.14:27
jtvWe can, but AFAICS that means adding schema.14:27
jtv(Not saying that's a problem, just a thing to keep in mind)14:28
bigjoolsjtv: well there's a "launchpad" celeb14:28
bigjoolsoh wait that's a project14:29
bigjoolsthe mild-mannered launchpad janitor?14:29
jtvThe janitor cleans things up.  Not the person people would look to as a spokesperson for industrial processes.14:35
deryckgary_poster, I can chat now.  Or whenever you like from here on out.14:40
gary_posterderyck, now would be great thanks14:41
gary_posterskype or mumble?14:42
deryckgary_poster, lets mumble!14:42
bigjoolshenninge: ok so there's a workaround that doesn't require a re-checkout14:42
bigjoolsuse bzr switch lp:lp-source-dependencies14:42
nigelbbah, doctests giving me random failures :(14:42
StevenKnigelb: Such as?14:43
nigelbStevenK: part of the test which exploded http://paste.ubuntu.com/611854/14:44
sinzuijcsackett: do you have time to mumble?14:44
jcsackettsinzui: i was just about to ask you that very question.14:44
StevenKnigelb: "The joys of doctests."14:45
nigelbStevenK: Hah. I know!14:45
StevenKTALES does not love you, given that traceback14:45
jcsackettsinzui: can you hear me?14:45
jcsacketti cannot hear you, though i see that you are talking.14:46
sinzuiI ead you14:46
sinzuiheard14:46
nigelbStevenK: how do I fix that? :(14:47
StevenKnigelb: It looks like context/@@+portlet-subscribers is the issue14:48
StevenKAnd given you changed subscribers ...14:48
nigelbyeah, I did14:48
nigelblet met get you my branch's diff on LP14:48
nigelb*me14:48
nigelbStevenK: My diff that caused the explosion :) http://bazaar.launchpad.net/~nigelbabu/launchpad/90628-spec-sub/revision/1310214:58
=== al-maisan is now known as almaisan-away
deryckhenninge, you're not in a hurry for your review, right?  Since you're OCR.  I'm just burning down a couple open tasks and then will turn to it, if that's ok.15:01
henningederyck: go, burn'em!15:02
* deryck lights a fire15:02
LPCIBotProject windmill-db-devel build #307: STILL FAILING in 1 hr 17 min: https://lpci.wedontsleep.org/job/windmill-db-devel/307/15:03
=== almaisan-away is now known as al-maisan
derycksinzui, even though I'm a crybaby about project review, I do give you mad props from the new interface....15:03
derycksinzui, it's a million-hundred-thousand-and-two times better than it used to be. :-)15:04
sinzuideryck: You should withhold props. I realised after I landed the UI that the license_approved field is smart and will change the project_reviewed field to true, but you do not see that in the UI :(15:06
derycksinzui, ah!  That is nicer still!  So we only have to mark the license approved in the web UI?15:07
derycksinzui, but I guess the list won't change for us to know what's left until that's fixed.15:07
deryckstill it's a nice improvement for ye days of old.15:07
derycks/for/from/15:07
sinzuiThe list will change after you reload, the item does fall off the list. I think I need to add a callback to update the state the of other field in the ui.15:08
deryckah, ok15:09
derycksinzui, that's good to know thanks!15:09
sinzuideryck: I chose to not remove the entry from the list after I changed the status because I was unsure of how to find the project if I make a mistake. Maybe we do not make mistakes often enough to care15:10
sinzuinigelb, most tests is stories are rubbish.Most tests think they are testing the view and model code. A story test should be written from a user's perspective. It is an acceptance tests that demonstrates the user can accomplish a simple task and verify how he knows it was completed. I tend to delete failing stories. Sometime I do not need to write a replacement test in browser/tests because there already is one.15:13
nigelbsinzui: At this point, I'm still not sure how my code caused something to fail :(15:14
sinzuinigelb: this error is a string indication that the test is bad. A test of the model or the view would clearly state what is wrong and you would know how to fix it. tales hides the error most of the time. Can you paste a diff of your branch, or have you pushed it so that I can take a look?15:15
nigelbI15:16
nigelbI've pushed it15:16
nigelbhttps://code.launchpad.net/~nigelbabu/launchpad/90628-spec-sub15:16
sinzuinigelb: You have a simple branch. I do not see what broke the page yet. Maybe there is something else looking at the value. I think we need to look at browser/specification at the "Unsubscribe" action15:21
* sinzui does15:21
* nigelb looks too15:22
sinzuiwow, this does not use LaunchpadForm15:24
nigelbyeah, I don't think blueprints have had much love :)15:25
sinzuinigelb: their is a contradiction introduced by Specification.unsubscribe in the model15:25
sinzuiThat method iterates over the .subscriptions, and mutates it. We have two choices15:25
sinzui1. clear the property cache after we change subscriptions or15:26
nigelbnot cache the property at all?15:26
nigelbI hope (2) isn't rewrite unsubscribe :)15:27
sinzui2. Use a different way to get the subscription. The method is guessing at the subscription, and loading a lot of data what will not be used15:27
sinzuilet me check if there is already a method that gets the sub15:27
sinzuiThere is not, so we choose option 115:28
nigelbaha15:29
nigelbclear_property_cache ?15:31
sinzuinigelb:  at a minimum, we want to15:31
sinzuifrom lp.services.propertycache import get_property_cache15:31
sinzuidel get_property_cache(self).subscriptions15:31
nigelbokay15:32
sinzuinigelb: but we could just remove the sub so we do not reload the users. maybe...15:32
sinzuiget_property_cache(self).subscriptions.remove(sub)15:33
sinzuiSpecificationSubscription.delete(sub.id)15:33
nigelbsinzui: that would delete the property entirely?15:34
sinzuinigelb:  ^ I have not done this before, but It is worth a try because it means there is no performance hit. In fact, you are making Lp faster!15:34
nigelbor remove that particular subscription?15:34
nigelbin which case, I'll gladly try this!15:34
wgrantbac: Hi.15:35
sinzuinigelb: The first form deletes the cached value. The second gets the cached value (a list) and removes the found subscription from it15:35
nigelbsinzui: so, the second form needs to be done along with what's existing right?15:36
sinzuinigelb: yes. we are just teaching Specification.unsubscribe() about your change15:37
nigelbokay, let me run the tests again :)15:37
nigelbsinzui: Does this sort of difficulty happen often?15:44
sinzuinigelb: I see that Specification.subscribe() is implicitly accessing .subscriptions() using a .subscription(person) We may need to delete the cache or add the user to the list (which means resorting it)15:45
nigelbsinzui: ah, yes/15:45
sinzuinigelb: yes, but the test issue is no, Blueprints was not actively developed between 2007 and 2011. There is a lot of bad code in it15:46
nigelbsinzui: True :(15:46
nigelbIf it weren't for the fact that its going away, I would have loved to help remove some of the b0rk.15:49
sinzuinigelb: I believe a lot of the code rules will be combined in a future issue tracker. So there should be no guilt is making the code better.15:50
=== Ursinha is now known as Ursinha-afk
nigelbsinzui: In which case, I'm happy to fix whatever I can. Though its big of an overhead because I have to get someone to help :)15:52
LPCIBotProject windmill-db-devel build #308: STILL FAILING in 50 min: https://lpci.wedontsleep.org/job/windmill-db-devel/308/15:53
wgrantbac: You marked bug #777789 qa-bad... It doesn't seem like a really risky change, except for the Y.Node.create('<div />') thing. If it really is bad, could you please roll it back ASAP?15:54
_mup_Bug #777789: "Other subscriptions" description of direct team subscription makes no sense <qa-bad> <story-better-bug-notification> <Launchpad itself:Fix Committed by bac> < https://launchpad.net/bugs/777789 >15:54
benjihenninge: would you like for me to review https://code.launchpad.net/~henninge/launchpad/bug-740208-leak-email-bug-title/+merge/61784?16:12
=== al-maisan is now known as almaisan-away
nigelbsinzui: okay, the tests did pass :)16:25
nigelbsinzui: Now I guess I need to figure out the subscribe() bit :)16:25
sinzuinigelb: excellent16:27
nigelbsinzui: How do I fix the subscribe() where it again modifies the list?16:42
* sinzui thinks16:42
sinzuinigelb: how did you fix the unsubscribe case?16:43
nigelbsinzui: I removed it from the cache as well.16:44
nigelbso update the cache and the *real* one and then resort both?16:44
sinzuiokay. then I think we can do the same at # since no previous subscription existed, create and return a new one16:44
sinzuinigelb: we want to append the sub to the cached list, then resort on displayname16:45
sinzuiThen we call notify()16:45
LPCIBotYippie, build fixed!16:47
LPCIBotProject db-devel build #571: FIXED in 5 hr 15 min: https://lpci.wedontsleep.org/job/db-devel/571/16:47
=== deryck is now known as deryck[lunch]
nigelbsinzui: does this look right? http://pad.ubuntu-uk.org/VX7IyBpAbD17:01
sinzuinigelb: I am not sure you are mutating the cached list. Are you? I an sure you are working with the real item when I read17:03
sinzuiget_property_cache(self).subscriptions17:03
nigelbah17:03
nigelbsinzui: is the self.subscription = correct? or is there a more correct call to update the item in cache?17:04
sinzuinigelb: you approach might work because propertycache is returning a mutable instance. Well it probably is since I can change a cached person object.17:04
LPCIBotProject windmill-db-devel build #309: STILL FAILING in 49 min: https://lpci.wedontsleep.org/job/windmill-db-devel/309/17:05
sinzuibigjools: I think you need to do17:05
sinzuiget_property_cache(self).subscriptions =  sorted(subscriptions, key=lambda sub: sub.person.displayname)17:05
nigelbaha17:07
nigelbfixed that.17:07
sinzuinigelb: self.subscription is a cached property so I do not think it can really be assigned without a setter explicitly defined.17:07
nigelbahh.17:07
nigelbDoes it look right now though?17:08
sinzuiyes, it does17:08
nigelb:)17:08
nigelbThat definitely wasn't an "easy" bug.17:09
sinzuinigelb: no bug is really easy without 3 months of experience working with Lp's byzantince code. I do think you could repeat your change to fix other bugs in less than a day, so this class of bug is not easy17:12
nigelbsinzui: heh. I agree.  Unless its just text fixing, everything else needs a fair bit of delving.  I'm a bit more confident now.17:13
=== Ursinha-afk is now known as Ursinha
* bigjools morphs into nigelb17:18
nigelbhaha17:18
nigelbthat was a wrong ping :p17:18
bigjoolsit's ok I'm used to Curtis' typos :)17:19
=== deryck[lunch] is now known as deryck
nigelbThis one's the most satisfying bug fix. I spent quite a bit of time trying to fix this :)17:56
=== matsubara is now known as matsubara-lunch
LPCIBotProject windmill-db-devel build #310: STILL FAILING in 51 min: https://lpci.wedontsleep.org/job/windmill-db-devel/310/18:07
derycksinzui, hi.  Could I get some time with you to do a pre-imp call on a bug?18:30
sinzuiI can talk now18:31
deryckexcellent.  I'll jump to mumble.18:31
nigelbabubenji: Hi, could you review https://code.launchpad.net/~nigelbabu/launchpad/90628-spec-sub/+merge/62003 for me? :)18:39
sinzuinigelbabu: why doesn't the diff show a change to subscribe()?18:46
nigelbabusinzui: woah, let me look!18:46
nigelbabusinzui: heh, did someone break that preview? :P18:49
nigelbabubecause its there on my branch http://bazaar.launchpad.net/~nigelbabu/launchpad/90628-spec-sub/revision/1310218:49
nigelbabuIts showing a diff of last commit to branch vs trunk18:49
nigelbabuinstead of entire branch vs trunk.18:50
nigelbabuwait.18:50
nigelbabuits showing last commit to branch vs its previous commit :(18:50
nigelbabusinzui: ^^18:50
sinzuinigelbabu: did you not commit and push changes toe the scrubscribe() method. I saw it on the collaborative notepad18:53
LPCIBotProject windmill-devel build #120: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill-devel/120/18:54
gary_posterIn https://answers.launchpad.net/launchpad/+question/158714 , someone is asking to recreate an old PPA from when they left LP (they have now returned) .  Can anyone help with that?  I don't even know if it is possible.18:55
benjinigelbabu: sure I'll review it for you, let me know when you get the merge proposal straightened out18:56
nigelbabubenji: yup :)18:56
nigelbabusinzui: okay, now I'm confused. I commited everything and I see the code locally.18:57
nigelbabuI did a bzr status and it didn't return anything18:57
LPCIBotProject windmill-db-devel build #311: STILL FAILING in 50 min: https://lpci.wedontsleep.org/job/windmill-db-devel/311/18:57
nigelbabubah, I didn't save the file :/18:58
sinzuinigelbabu: but did you push the branch to lp:~nigelbabu/launchpad/90628-spec-su18:58
sinzuibzr st -r branch:lp:~nigelbabu/launchpad/90628-spec-sub18:58
nigelbabusinzui: I hadn't done the unsubscribe, my mistake.19:00
nigelbabuwell, I didn't save the file, so it didn't show up in bzr st :\19:00
nigelbabusinzui: IRobot++ :)19:03
sinzuiNo one will follow up on my suggestion to break IPerson is role/app interfaces. ITranslator, IQuestioner, IBugger19:04
nigelbabuhaha19:04
nigelbabuIBugger lol19:04
sinzuinigelbabu: did specification-notifications.txt really verify you could subscribe someone twice?19:07
nigelbabusinzui: didn't get you19:07
nigelbabusinzui: until I removed the two instances of test@canonical.com, the test wouldn't pass.19:08
nigelbabupoolie: woah, thanks for featuring cjohnston and me on the blog :)19:08
sinzuinigelbabu: I think you  may have fixed another bug :)19:08
nigelbabusinzui: with the sort?19:08
nigelbabuwoah19:09
sinzuiA user cannot/should not  be able to subscribe twice, yet the test you changed appears to say a user could be subscribed twice :(19:09
cjohnstongo nigelbabu19:10
sinzuiSince the code clearly did not allow it, I think the defect is in sample data. That is why we prefer to test using a factory to create only the objects under test.19:10
nigelbabuhrm, do you want me to write new unit tests?19:11
nigelbabuI could potentially write something under browser/test19:11
nigelbabusinzui: anything more you want me to do on that branch before I ask for it to be reviewed? :)19:18
sinzuinigelbabu: I am not going to burden you with extra tests. I may write one. I am reading lib/lp/blueprints/doc/specification-notifications.txt and I am perplexed by the test@canonical.com addition (Sample Person). Your change looks like what should have always been the case. Why were we really sending Sample Person  two emails? Where they the same email?19:18
nigelbabusinzui: heh, indeed.19:19
* sinzui looks for existing bug19:19
nigelbabusinzui: and why hasn't anyone complained yet19:19
nigelbabuwe really need to fix mails from blueprints.  Its quite chatty like bugs.19:19
nigelbabuswitching nicks.19:20
nigelbo/19:20
sinzuinigelb: The test indicates sample person was not subscribed. Then we was, and he got 2 emails. Yet your change is made *before* notify where you ensure the user subscription is created, and the list of subscribers is sane. I am going to add a sanity check to the existing test to search how many notifications.19:24
nigelbsinzui: okay, will you be making your change on top of mine?19:25
LPCIBotProject windmill-devel build #121: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/121/19:40
sinzuinigelb: I think something is broken. The doctest does not do what it thinks it dos. It does not commit the transaction from the previous block and verify that Sample Person got an email stating that he was subscribed. I can see that two messages were sent to test@, the first because the the subscription two blocks before, then because of the spec change. your test change implies the subscribe email was not sent19:51
* sinzui crafts a test fix to verfiy the expected behaviour19:51
nigelbsinzui: so, my change should not have been necessary?19:52
sinzuinigelb: You have already made the change to the second chunk. Make the first set of changes to verify a subscription email was sent: http://pastebin.ubuntu.com/611986/19:52
nigelbsinzui: okay!19:53
sinzuiI see that the code that manages email notification is not in blueprints. That is why I could not see what was going on19:56
nigelbahh20:00
nigelbI'm not sure if I'm picking progressively harder LP bugs, but it sure does seem that way :)20:01
nigelbsinzui: pushed :)20:07
sinzuinigelb: did the test pass with the change?20:09
nigelbsinzui: woops, didn't run them.  gimme 5 minutes :)20:09
sinzuiThe change you made looks correct20:10
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: henninge, benji | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:214 - 0:[######=_]:256
lifelesssinzui:     "specificationsubscription_spec_person_uniq" UNIQUE, btree (specification, person)20:15
lifelesssinzui: even the sample data can't have someone subbed twice20:15
sinzuihm20:16
sinzuilifeless: fab, So we just need to learn if we lost a subscription  with the change.20:16
lifelesssinzui: so, disclosure eh?20:20
jcsacketthenninge or benji: can i throw https://code.launchpad.net/~jcsackett/launchpad/dont-expose-domains/+merge/62023 on the review queue?20:20
benjijcsackett: Sure. I can look at it right now in fact.20:21
jcsackettbenji: great, thanks!20:21
=== benji changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: benji | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:214 - 0:[######=_]:256
nigelbsinzui: bah, 3 tests failed :(20:28
nigelblet me echo it into a file and upload somewhere20:28
sinzuiYou ran -m lp.blueprints?20:28
* sinzui can see the doctest in question passed20:29
lifelessderyck: gary_poster: sinzui: -extremely- rough as yet - https://dev.launchpad.net/ArchitectureGuide/ServicesRoadmap20:30
nigelbsinzui: no, I ran bin/test --vvt blueprints20:30
LPCIBotProject windmill-devel build #122: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/122/20:32
gary_posterlifeless, I expect you've been considering where Python 3 might fit into this as well?20:33
derycklifeless, thanks for the link.20:33
derycklifeless, on first read, looks good.20:34
sinzuinigelb: that is about the same as -m lp.blueprints. It may have run more20:34
sinzuinigelb: what were the failing tests. I merged your changed and I see that doc/specification-notifications passes20:35
nigelbsinzui: specification.txt fails20:35
nigelband sprint-meeting-export.txt20:35
gary_posterlifeless, curious in regards to rest bits about "optimises for things that don't really affect us".  I would guess that some do, and some don't.  Can I assume that we at least will follow standard and basic "GETs don't write" no matter what the protocol?20:36
lifelessgary_poster: hell yes20:37
gary_posterok, good20:37
gary_posterlifeless, and did you already reject the github xmlrpc competitor I mentioned?  It's fine, I just saw it mentioned, but I thought it was worth making sure that you had seen it.  Trying to find it again20:37
lifelessgary_poster: I had a look, I think I disliked something - I20:38
gary_posterlifeless, then that's good enough for me20:38
lifeless'll have another look now and either document that or add it in20:38
sinzuinigelb: okay. good. This means the cache was not made yet. We only want to update the cache is it was made!.20:38
gary_postereh, maybe so noone else bothers with it20:38
* sinzui reads code20:39
lifelessgary_poster: yeah20:39
* sinzui run test again20:41
* sinzui has a fix20:42
lifelessgary_poster: oh, I remember20:42
lifelessits erlang binary wire encoding20:42
sinzuinigelb: I am prepare a patch for you. It incorporates my change as well as a number of lint fixed from by unposted review.20:43
* nigelb hugs sinzui20:43
lifelessgary_poster: which is a bit esoteric for something folk may have to debug from time to time20:43
=== matsubara_ is now known as matsubara-afk
gary_posterlifeless, yeah.  Of interest if (a) they have thought something through that we ought to; or (b) we ever care about erlang, but I hear you.  I don't think I saw a reply to my Python 3 question: do you expect these services to be in Python 3?20:44
lifelessgary_poster: on the restful side, it optimises to make the path visible and have the ability to cache, and neither of those really make a difference to us.20:45
lifelessgary_poster: If all things are equal, I think restful is nicer than xmlrpc20:46
lifelessjust cause I'm an http junkie20:46
gary_postermaking path visible and giving ability to cache *and* giving another opportunity to divide up services by boxes20:46
gary_poster(different resources by different machines)20:47
lifelessgary_poster: python3; uhm, if we can, sure. Python3 in lucid is 3.1, but we'd really only have the standard library available to us.20:47
lifelessgary_poster: yes, but we're already dividing the services up20:47
lifelessgary_poster: so we don't need a single url space for heterogeneous services internally20:47
gary_posterAnd we'll never have another bottleneck?  Rephrased: taking easy steps for future proofing makes sense to me20:48
nigelbTests with failures:20:48
nigelb   lib/lp/blueprints/doc/specification.txt20:48
nigelb   lib/lp/blueprints/doc/sprint-meeting-export.txt20:48
nigelb   lib/lp/blueprints/stories/standalone/subscribing.txt20:48
nigelbsinzui: ^^20:48
gary_posterI don't mean a single space for heterogeneous services, actually lifeless20:48
gary_posterI mean...20:48
lifelessgary_poster: we're starting out with horizontal scaling built-in for each microservice20:48
gary_posterlike, resources beginning with identifiers A-M are handled by box X20:49
gary_posteror resource foo is a biggie20:49
gary_posterit is handled by special box Y20:49
sinzuinigelb: apply this patch to add a guard, wrap long lines, and remove trailing whitespace: http://pastebin.ubuntu.com/612018/20:49
lifelessgary_poster: I think for most of our internal services doing that would be an antipattern20:50
nigelbsinzui: tests fail for lint? :O20:50
gary_posterlifeless, using what mechanism (and why does it make it unnecessary to consider others)?20:50
gary_poster(horizontal scaling)20:50
lifelessgary_poster: haproxy to some N instances, where N >= 220:50
gary_posterlifeless, that's a common pattern...as is the one I'm describing.  They both are valuable for different sorts of problems20:51
lifelessagreed20:51
sinzuinigelb: they will no fail for lint, but we have a coding style. Some merges get screwed up if we do not follow the recommended style, such as alphabetised imports20:51
gary_posterand I don't see any convincing evidence that we would have only a single kind of problem :-)20:51
nigelbsinzui: wah, I didn't know about the alphabetized imports20:52
lifelessgary_poster: I think we have many kinds of problems; we're selecting a -default- not a -required-20:52
lifelessgary_poster: uhm, to me, that means picking the cheapest-to-deploy-and-use 80% fit20:52
sinzuinigelb: and I did not fix line 50 in you Mp's diff, those two imports should be on single lines so that subsequent changes do not inflate the diff20:53
lifelessgary_poster: so what I'm saying isn't that the restful design principles are invalid - they are valid20:53
sinzuinigelb: ps, You are a much better engineer after today20:53
nigelbsinzui: you mean on individual lines?20:53
nigelbsinzui: hehe20:54
lifelessgary_poster: I'm saying that it optimises - by doing the things we're discussing - for specific cases, most of which won't affect us most of the time20:54
sinzuinigelb: yes20:54
nigelbaha, /me fix0rs20:54
gary_posterlifeless, cheapest to deploy and use 80% fit: that can be primary guide, but "supporting best practices" is a reasonable secondary guide20:54
gary_posterlifeless, so the convincing argument get me to be quiet about this is whether or not it really is that much harder to build a REST service--or at least20:55
benjijcsackett: hi, I added some comments to https://code.launchpad.net/~jcsackett/launchpad/dont-expose-domains/+merge/62023 for you to consider.20:55
gary_postera service that is more REST than XMLRPC20:55
lifelessgary_poster: I have no desire to get you to be quiet :)20:55
gary_posterlifeless, lol, I have a desire to be quiet ;-)20:56
jcsackettbenji: dig.20:56
lifelessgary_poster: so building a REST service requires url routing that is object identity aware; building an RPC service requires routing that is function aware20:57
gary_posterperhaps a better phrasing would be, "...a way to convince me is to determine whether..."20:57
lifelessgary_poster: ditto consumption20:57
gary_postertrue20:57
lifelessgary_poster: one has a hierarchy that has to be designed - and many toolkits don't offer great migration support (by which I mean after you make a mistake, what then)20:58
benjiEveryone enjoys the melodic bass tones that emanate from gary.20:58
lifelessgary_poster: RPC on the other hand is essentially a freeform space, which on the downside is basically freeform20:58
gary_posterbenji :-P :-)20:58
gary_posterlifeless, if XMLRPC is freeform, that means it doesn't have migration support either21:00
gary_poster(and I would agree with that)21:00
gary_posterIf instead you begin with a simple pattern like lazr.restful has21:00
gary_posterwith a first element that is in essence a namespace21:00
lifelessgary_poster: it doesn't, but it doesn't need migration support anywhere near as much because of two things: you can trivially bind a function to two names (giving you migration), and the function name is not impacted or altered by data model.21:01
gary_posterthen you have the building blocks for a nice migration story21:01
gary_posterlifeless, I'm not clear on how the RESTful namespace doesn't give you similar power21:02
lifelessperhaps I misunderstand, but AFAICT you'd be cloning all your functions across21:03
lifelessso something like /1/object/query_op?params21:04
gary_poster(where "1" is the namespace?21:04
gary_poster)21:04
lifelesswould migrate as /2/object/differentname?params21:04
lifelesswhich would work for many things because you'd be able to register the new thing21:05
lifelessgary_poster: I'm sure something can be worked out - but this is kindof my point - its a very heavy hammer vs migrating individual methods, and thats driven by the structure (which is its blessing and its curse)21:06
lifelessflacoste: are we on now ?21:06
benjias a reformed Windows developer I have bad memories of APIs having a "Foo" function and adding a "FooEx" function in order to change the signature for a later version of Windows21:06
gary_posterlifeless, I didn't follow so much...21:07
sinzuinigelb: I approved your branch. I am landing it now21:07
gary_posterlifeless, we can continue at later date :-)21:07
nigelbsinzui: woah, thanks :)21:07
lifelessgary_poster: sure ;)21:07
nigelbsinzui: I was still trying to run the tests again before poking you to land :)21:07
sinzuiokay. I need to reconfigure to land anyway. Lp assumes that Lp engineers only hack on the Lp project21:08
lifelessgary_poster: here is a concrete example of the sort of complexity rest adds - is a 404 a missing object or a bad method name? [python itself has this complexity, so it is toleratable but  still confusing]21:09
=== benji changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:214 - 0:[######=_]:256
gary_posterlifeless, (niggle where I might be wrong but I think I'm right: with "true" REST at least AIUI, you don't have a method name in the URL...but you might have specialized objects and a 404 inherently doesn't tell you where you went wrong specifically with the path and so your underlying point is still valid ISTM) XMLRPC doesn't buy you anything there, lifeless.21:16
gary_posterREST isn't adding complexity, but offering a solution equivalent in my mind to what an RPC offers.  RPC let's you send a payload back that you have to know how to interpret; and so can REST.  Perhaps you could even argue that REST has a more regular and yet flexible language for communicating errors and what to do with them (with hypertext) but decisions still need to be made on how to interpret the error response, no21:16
gary_posterBut again, there's no XMLRPC win.21:16
gary_posterMaybe there's a Google protocol win there, or whatever the Facebook equivalent is; I haven't looked at those.  I suspect it is easier to argue against XMLRPC than some of the newer options.21:16
gary_poster(Well, I've looked at them, but not lately, and I've forgotten the error passing mechanisms)21:17
=== benji changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: benji | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:214 - 0:[######=_]:256
lifelessbenji: (re FooEx - yes, mistakes Will Happen) :)21:18
benjigary_poster: are you referring to Protocol Buffers? or maybe Google Data Protocol? <shudder>21:21
benjithe former is just a data format (like JSON) as far as I know so it doesn't have an error channel, and the latter should die in a fire (it [ab]uses Atom as the data format)21:22
gary_posterbenji, let's see the Facebook thing is Thrift...21:22
benjiI'll have to take a look at Thrift.21:23
gary_posterbenji, and for Google I was thinking of protocol buffers, yeah21:24
gary_posterwhich I see you are right, is just a data format, as opposed to thrift, which is more of a full-flledged rpc21:27
lifelessthrift is apparently fffugly21:27
lifelessaccording to the cassandra folk, which are trying to make thrift diaf21:28
benjilifeless: the wire format?21:28
lifelessbenji: the whole kit and caboodle21:28
benjiheh21:28
gary_posterheh, ok21:29
lifelesshttp://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking21:30
lifelessis an interesting read21:30
lifelessgary_poster: FWIW I'd be entirely happy with us making early mistakes here - we're aiming for such narrow services migrating one to a new protocol should be low cost21:31
lifelessgary_poster: not saying I *want* to make mistakes21:32
gary_posterlink is interesting, yes.  never heard of kryo...or many others21:32
lifelessgary_poster: just that I think the cost is easily absorbed21:32
benjigary_poster: there are several RPC mechanisms based on protocol buffers: http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns#RPC_Implementations21:45
gary_posterwant to make mistakes: heh :-) .  lifeless, that's fair enough, but IME, the "I should have had a V8" moment (did you all have that ancient ad campaign?) with the XMLRPC approach was pretty far down the line for us, when expenses were much higher than they could have been, for following what is so often described as best practice anyway.21:46
gary_posterbenji, which is the one that should diaf? :-)21:46
nigelbsinzui: Thank you so much for helping me out today. Even though LP is hard, its nice you folks are all so helpful :)21:47
LPCIBotProject windmill-devel build #123: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/123/21:47
benjigary_poster: all of those are innocent until immolated; I was referring to http://code.google.com/apis/gdata/21:47
gary_posterbenji, lol, ok cool21:47
sinzuinigelb: Your welcome. It is always nice to see contributors completing a goal21:48
gary_posterone is developed on LP, so obviously superior ;-)21:48
benjiobviously the bad part is that none of those are "official"21:48
benjiheh21:48
nigelbsinzui: :)21:48
lifelesswhich one is developed on LP ?21:51
gary_posterlifeless, Twisted based: https://launchpad.net/txprotobuf/21:52
benjigary_poster: last commit was 3 years ago21:52
gary_posterbah :-)21:52
gary_posterthat's because the twisted stuff is rock solid! :-)21:53
rockstargary_poster, you should ask lucio about protobuf and Ubuntu One.21:53
gary_posterrockstar, can you give a one sentence preview? :-)21:53
benjigary_poster: the only ones with Python bindings that have any sort of recent activity apear to be http://zeroc.com/ice.html and http://code.google.com/p/protobuf-socket-rpc/21:53
rockstargary_poster, not much more than what vds just told me (he's sitting right in front of me): It's slow, had a lot of problems, lucio would know more.21:54
gary_posterbenji, I left the first when it started looking commercial...did I leave too soon?21:54
benji(and ICE doesn't list Ubuntu as supported)21:54
gary_posterfair enough, thanks rockstar.  lifeless, I expect you saw that, and quite possibly knew that already :-)21:54
benjigary_poster: it is commercial (and GPL)21:54
rockstargary_poster, thrift is my serializable protocol of choice right now.21:54
gary_posterah21:54
gary_posterrockstar, ack21:55
gary_posterrockstar, lifeless was saying that cassandra wanted it to diaf21:55
rockstarthrift?21:55
gary_posteryeah21:55
rockstarHuh. I assume the Casandra people are much smarter than I.21:56
gary_poster<shrug> :-)21:56
jcsackettbenji: i've pushed up changes on my MP and replied to your comments.21:57
benjiI assume we want a synchronous protocol (meaning that protobuf+rabbitmq wouldn't be attractive).21:58
benjijcsackett: cool, I'll look now21:58
gary_posterbenji, I assume so as well.  AIUI, we're talking about building pages21:58
lifelessgary_poster: I did :)21:58
gary_poster:-)21:58
derycksinzui, hi.  Mind doing an easy review for me, based on this morning's call?21:58
sinzuiokay21:58
lifelessgary_poster: currently slow in the cons, based on talking with lucio :)21:58
gary_posterlifeless, heh, cool21:59
derycksinzui, https://code.launchpad.net/~deryck/launchpad/bug-activity-do-not-snapshot-680131/+merge/6203521:59
* gary_poster running away21:59
lifelessciao21:59
gary_posterbye!21:59
lifelessflacoste: yo?21:59
derycksinzui, thanks!21:59
sinzuideryck: r=me22:00
derycksinzui, many thanks!22:03
benjijcsackett: I think I'm confused.  The code to add prefixes to generated names is still there and doesn't seem to be tested anywhere else; shouldn't we test it in test_nickname.py?22:07
jcsackettbenji: it is tested; in the collision test use up the nick with the suffix, and try the nick generation again to trigger prefix.22:08
jcsackettthat was the copied code you saw earlier--me getting ready to set up that part of the test and forgetting it. now it's there.22:09
jcsackettthe rest of the doctest deals with it using more and more of the email domain.22:09
benjiah! I'll look at that then.  Thanks.22:09
benjijcsackett: I'm done with https://code.launchpad.net/~jcsackett/launchpad/dont-expose-domains/+merge/62023.22:15
=== benji changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:214 - 0:[######=_]:256
jcsackettthanks benji.22:16
benjimy pleasure22:16
nigelbnight folks, hopefully I should have a mail with the landing results when I wake up :)22:16
lifelesssinzui: I've tagged bug 633 as disclosure22:31
lifelesssinzui: this may be incorrect, so I'm letting you know ;)22:31
sinzuiI hate you22:31
lifelesssinzui: I love you too22:31
sinzuiI was using that tag to ask my team to fix them. I wont now22:31
lifelesssinzui: well thats why I'm mentioning it22:32
sinzuiI think I need a new tag that only jml can assign22:32
lifelesssinzui: you can use disclosure for that22:32
lifelesswhat tag should I use here though?22:32
* sinzui is not working a a 13 month feature again22:32
lifelessthe bug is about accidental information disclosure when someone subscribes the wrong person22:32
lifelessso your trusted picker work will reduce the incident rate (but not eliminate it)22:33
sinzuilifeless: We used privacy or private before. I added disclosure to the bug that were very relevant to features stakeholders were requesting22:33
lifelessI'll change it to privacy22:33
sinzuiI wonder what the overlap is?22:34
lifelesswell22:34
lifelessif this bug were fixed a stakeholder would be a little bit happier right now :P22:34
sinzuioh22:34
sinzuilifeless:  you are going to laugh at me. I thought you wrote that you added the 'disclosure' tag to 633 bugs, or 10% of all Lp bugs22:35
lifelesssinzui: HAHAHHAHAHHAHAHAHAHAHAHAHA22:35
lifelesssinzui: your comments make a lot more sense now22:36
sinzuilifeless: we have several dupes of 633. We absolutely are fixing this.22:38
lifelesssinzui: I know you have dupes about accidental subscriptions22:38
lifelesssinzui: this is about dealing with them after they happen (and they still will), I wasn't sure if that was on your plate22:38
sinzuiI Changed Answers API to collect subscribed_by  two weeks ago, and secretly changed the permission so that LOSAs can remove answer contacts22:38
lifelesshow do you get the email address for someone suspended ?22:40
sinzuistaging22:41
sinzuiI am not joking22:41
lifelessis there a bug for this?22:41
sinzuiNo, There was a bug, but we had a partial fix so it was closed22:41
lifelessdo we cc feedback@ or anything on mails to hacked-account-spammers ?22:41
jcsacketti haven't. wiki doesn't say anything about it. doesn't seem like a bad idea though.22:42
sinzuiWe have not this year, we used to last year and it was felt that we should track this in answers when we can22:42
lifelessah22:43
lifelessso I should have insisted on a Question22:43
sinzuiOf course a suspended user cannot use answers, so we end up asking the question. Which is one reason ~registry got permission to just fix the account22:44
lifelessright, I've cc'd feedback22:45
lifelessbecause there was no Question22:45
sinzuifab22:45
lifelessbac: hi22:47
sinzuibenji: was bug 315563 solved by muting or filters?22:50
_mup_Bug #315563: can't unsubscribe from team-related bug-activity emails <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/315563 >22:50
lifelesssinzui: no22:53
lifelesssinzui: assignee != subscription I suspect. IMBW22:54
lifelesssinzui: the data model permits muting a *subscription* but its flexible enough to treat assignment as a form of subscription22:54
sinzuiThat's right, the assignee is added the the subscribers list if he is not explicitly subscribed22:55
lifelessexactly. But its only a presentation as a subscriber. Its not modelled as such lower down. It probably should be.,22:56
benjisinzui: muting, where applicable.  It isn't possible to mute a team subscription if the team has a contact email address because we (LP) isn't in charge of parceling out the individual emails and so can't squelch the ones to people with mutes22:59
sinzuibenji: thanks.23:02
lifelessbenji: am I wrong? you can mute an assignment ?23:09
benjilifeless: unfortunately I don't know; I'm inclined to say you can't.23:26

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