#launchpad-yellow 2011-03-21
<danilos> gmb, hi, do you happen to know if we are using ~yellow/lp/accordionoverlay branch for both feature work 1 and 2, or should I branch off something else for 2?
<danilos> (i.e. devel :)
<gmb> danilos: I can't wholly certain, but I *think* that that's the canonical branch to work from.
<danilos> gmb, k, thanks
<gmb> danilos: It was last touched ~2 hours ago by Brad, which seems like a good sign.
<danilos> gmb, heh, not for Brad though :)
<gmb> :)
<danilos> gmb, do you happen to have any idea how to best test error handling in JS?
<gmb> danilos: Not really. You could maybe force an error and then check that the right error message is displayed, but I don't know how error handling is set up for the accordion overlay, so I can't be of much help there.
<danilos> gmb, well, it's not set up at all yet, but I generally want to test it works properly with things like XHR failures
<danilos> gmb, (and I am trying to implement it, but I want to do TDD :)
<gmb> danilos: Best of luck :). But yeah, if you're checking that the overlay handles the error correctly then what you're basically checking is that it displays something sane to the user. So using the mock IO features to trigger the error and then checking the contents of the overlay should work reasonably well.
<danilos> gmb, thanks for the suggestion, it sounds good, got any example of using mock IO features to that purpose? :)
<gmb> danilos: Let me see if I can find one in the tree. I remember writing something, but that may have been deleted. Gimme a sec.
<danilos> gmb, cheers
 * gmb digs out an old branch
<gmb> danilos: So, this is a (now removed) test of the (now removed) bug subscription widget. http://pastebin.ubuntu.com/583265. See the use of Y.lazr.testing.MockIo.makeXhrSuccessResponse() (I assume there's a corresponding makeXhrFailureResponse()) and simulateXhr() functions.
<danilos> gmb, great stuff, thanks a bunch!
<gmb> np
<danilos> gmb, btw, you probably have found this out already, other than shutting down LP before getting the JS executed, any other suggestions for simulating this on a running instance?
<gmb> danilos: Well, you could probably use MockIO in your code (though that seems a bit nasty). Usually I just kill LP though, like you say.
<gmb> danilos: deryck might have a better answer for you.
<danilos> gmb, k
<gary_poster> hey gmb.  mute button has no more bugs?  If so, (1) yay! (2) I'll move it along to track the last bug (737648) and close the lane
<gmb> gary_poster: Yep. Final branch is landing now.
<gary_poster> awesome, congrats
<gmb> :)
<bac> hi gary_poster -- i'm going to work now on putting the subscribe link on the bugs page
<gary_poster> bac, great.
<gary_poster> danilo, +1 on X-Launchpad-Subscription
<gary_poster> sorry, danilos ^^^
<gary_poster> help text: will get you file name...
<danilos> gary_poster, cool, it's reviewed already, and the ec2 test is almost complete :)
<danilos> gary_poster, excellent, I tried grepping but nothing turned up in the entire tree
<gary_poster> danilos, lib/lp/registry/help/structural-subscription-name.html in the ~yellow accordionoverlay branch
<danilos> gary_poster, aaah :)
<gary_poster> danilos, reviewed/ec2 test: awesome :-)
<danilos> gary_poster, I did this thing against "devel" branch, that's not a problem?
<danilos> gary_poster, I can land it on both, or just on accordionoverlay if you think that's better
<gary_poster> danilos, no.  We should just merge devel once what you have done has landed
<danilos> gary_poster, ack
<gary_poster> "no" as in no problem to be clear :-)
<danilos> yeah
<danilos> gary_poster, btw, should I update the LEP as well? (just to avoid confusion)
<gary_poster> danilos +1 thank you
<gary_poster> danilos, did you ever file a bug for the make jsbuild problem?  I don't even remember what it was any more :-P
<danilos> gary_poster, heh, I didn't, I haven't been able to reproduce it lately, but I want to try another thing (create a new .js file and see if that one gets included in the generated launchpad.js) before I consider it 'resolved/obsolete'
<gary_poster> ack danilos.  I'll leave it as an action until you do.
<danilos> gary_poster, the problem was that I had to run "make" for some changes since 'make jsbuild' wouldn't pick them up
<gary_poster> ah ok
<danilos> gary_poster, it's likely not to be a problem, but I'll try to get to checking it out later today
<gary_poster> cool danilos thanks
<danilos> gary_poster, re help text, should we add anything about the text in the body of the email?
<gary_poster> danilos, yeah +1 thanks
<gary_poster> bac, btw I looked at the Cancel button styling over the weekend.  The issue is that some of the LP CSS sets padding to 0 for buttons, but not for input[type="submit"].  Therefore cancel has 0 padding, and submit has browser-native padding (6 3 2 or something like that on Chrome).
<gary_poster> The way to fix is to set padding to both explicitly.  There is no "auto" for padding so we can't tell the button to get the same browser-native styling.  We could turn off the padding directive in LP, or add input[type="submit"] to the same list as the button directive; or we could set something explicitly just for our form overlay.
<gary_poster> Since I have a complete absence of a feeling of authority over our launchpad CSS, I lean towards the last approach.
<gary_poster> But anyway, that's the story.  Maybe you knew it already.
<bac> gary_poster: interesting.  i did not know as i only noted the problem but hadn't investigated
<gary_poster> cool
<gary_poster> bac, I tried to think about the tag validation problem this weekend too.  I'm inclined to figure out a good solution for our overlay first, and contemplate refactoring it for the general tag packer later, maybe on bug rotation if it is marjed as critical (ha ha?).  I'd rather not pay for the time right now.
<gary_poster> But as to options for our overlay, I came up with showing an error indicator; normalizing after the field loses focus and telling the user what you did (my preference ATM); and disallowing characters as they type.  I suspect there are many other options too.
<gary_poster> Would you like to be my pre-imp for this, or should I approach someone else (Graham being an obvious option)?
<bac> gary_poster: i'd like to talk about it
<gary_poster> cool
<gary_poster> maybe after the call
<gary_poster> though feel free to write on IRC any thoughts now
<gary_poster> bac benji danilos gmb, kanban/mumble in 2
<gmb> Yup
<gary_poster> danilos yoo hoo
<gary_poster> benji, irc or mumble?
<benji> gary_poster: mumble would be good; you can either wait for me to review what I was doing or we can do it real time, performance art style
<gary_poster> :-) k 1 sec
<gary_poster> benji, which would you prefer?  I can run do someting else for a sec if you like, or I can talk now.
<benji> gary_poster: I'm up to date now, lets go.
<gary_poster> k
<gmb> gary_poster, bac: Is there any reason not to style the submit and cancel buttons as they're styled on all the other FormOverlays? (i.e. Green tick for OK, Red cross for cancel)?
 * benji reboots.
<bac> gmb: sounds good tome
<bac> to me
<gmb> Cool.
<gary_poster> gmb +1 fwiw
<gmb> RIghto.
<gmb> gary_poster, bac: How should I go about getting this into the ~yellow/accordionoverlay branch? Should I just push it up there?
<bac> that's what i've done but it seems now we need to be more coordinated.  how do we handle splitting off the 'server' changes?
<gmb> bac: I don't know the answer to that, TBH.
<gmb> I'll merge and push for now. It's a smallish change.
<gary_poster> bac, gmb: don't worry about the server changes. I'll split those out when I get to it.  If I discover that coordination would help then, I'll mention it then.  For landing, actually having a local checkout to which we merge would probably make the most sense, but as long as you don't --overwrite, I don't think it's a huge deal.
<gary_poster> I've been doing something similar but a bit different.
<gmb> gary_poster: Does the card go in the review lane or somehwere else?
<gmb> (How I love using two different apps to track development)
<gary_poster> gmb, review, but let me clean outthe ones we talked about today one sec
<gary_poster> eh, sorry, I was just afraid you didn't have enough room, gmb.  You can put it in review now
<gmb> Cool
 * gmb does some more Kanban gardening.
<gary_poster> gmb, bac, danilo, 9 JS tests in ~yellow accordionoverlay branch fail.  I get several alerts that say '"Subscribe to bug mail" link not found'.
<gary_poster> If that doesn't ring a bell for anyone I'm happy to dig in
<gary_poster> but I want to check first
<bac> gary_poster: i'll look.  sounds like my handiwork
<gary_poster> thanks bac
<gary_poster> bac, please lemme know when it is resolved, or if you want me to take over.  I have something to land that is waiting.
<bac> gary_poster: are the failures all in test_structuralsubscription.html?
<gary_poster> yes bac
 * gary_poster didn't notice the other one
<gary_poster> or, barely did
<gmb> gary_poster: That might be to do with my update just now.
<gmb> Let me check.
<gary_poster> oh ok
<gmb> Oh.
<gmb> Hmm.
<gmb> No, I don't think it is.
 * gmb digs some more
<gary_poster> bac, benji, gmb, danilos, I'm going to start figuring out a server side branch from ~yellow...accordionoverlay, so please let me know from here on out if you have a server-side bugfix (or otherwise important change) going in to that branch.
<benji> ok
<gmb> Right
<gmb> gary_poster: So, that alert is because there's no link in hte test HTML page for the setup code to bind events to. Easy to fix. It doesn't acutally make all the tests pass though.
<gary_poster> gmb, ok, one step at a time, I guess
<gmb> gary_poster: Right. Anyway, I've fixed the initial problem and pushed it. Do you want me ot take a look at the test failures themselves too?
<gary_poster> bac said he was looking at those, so let's check with him.  bac?
<bac> gary_poster, gmb: when i changed the code to generate a hidden menuu link (rather than just looking for the global actions portlet) i failed to update the tests
<bac> so i just need to create the expected element in the fake test html page
<gmb> bac: I fixed the tests by just bunging a link into the page HTML.
<gmb> I've pushed that, FWIW.
<bac> oh, ok
<bac> you added a menu-link-subscribe_to_bug_mail?
<gary_poster> on another topic, here's my plan for the server side branch.  Please object/counsel sanity if necessary.
<gary_poster> I'm going to branch devel, then bzr merge accordionoverlay, then bzr revert --forget-merges, then take out the changes that are not pertinent to the server side, and then commit.  Then I'll merge the new branch into accordionoverlay, and resolve any conflicts.  IME bzr is usually pretty good at handling identical changes.
<gary_poster> At that point we should be in pretty good shape for merging accordionoverlay itself as the clientside branch
<bac> gmb: ^^ ?
<gary_poster> (sorry for mixing topics :-/ )
<gmb> bac: Yes.
<bac> gmb: what other test failures are you referring to?
<gmb> gary_poster: I'm going to just nod vacantly at this point about your plan. It sounds fine - I didn't know about --forget-merges - and I trust bzr to DTRT 9 times out of 10.
<bac> we should probably throw an error when the link isn't found rather than an alert
<gary_poster> gmb :-) ok
<gmb> bac: Yes, I think so.
<gmb> bac: Let me paste the test log for you.
<bac> gmb: thanks
<gmb> bac: Anything that is using simulateMouseEvent(), it seems. I'm guessing it's trying to do things to elements that don't exist in the test html.
<gary_poster> diff in our branch in test_milestone_table.js:
<gary_poster> +    filter: 'raw', combine: false, fetchCSS: true // Do not check in
<gary_poster> :-P
<gary_poster> I'll fix later if no one else does (in the middle of something else)
<gary_poster> benji, I can't decide whether to include expose_user_administered_teams_to_js, expose_enum_to_js, expose_user_subscription_status_to_js, and any other similar friends from lp.bugs.browser.structuralsubscription in the server-side branch.
<gary_poster> I'm inclined to include them, because right now the server-side changes are <1200 lines and the client-side changes are >1800 lines, so favoring the server-side doesn't sound too bad.  Any thoughts?
<benji> if it doesn't make the branch too large, I would be include them
<bac> gmb: i fixed the tests and am about to push.  ok with you?
<benji> hmm, 1200 is a bit big, but I guess Graham asked for it ;)
<bac> gary_poster: i'll fix the test_milestone
<gmb> heh
<gary_poster> benji, cool, thanks.  Well, my point was that 1200 < 1800 :-)
<bac> gmb:  you ok with me pushing those fixes?
<gmb> bac: Sure.
<bac> done
<gmb> Sorry, was OTP.
<bac> np, just didn't want to duplicate effort
<gmb> Right.
<benji> gary_poster: which card would you like for me to work on between reviews?  "Hook up filter-display subpage into a page for bug targets." is non-low priority.
 * gmb -> afk for a short while
<gary_poster> benji sorry was otp
 * gary_poster looks
<benji> np
<gary_poster> benji that's a good one.  Let me do a pre-imp with you, because it touches on notes from conversation with Jono
<gary_poster> benji, do you want to talk now?  If not, I might get some lunch 'cause I am hungry
<benji> gary_poster: I could use some lunch too; we'll do it afterward
<gary_poster> cool benji
 * gmb returns
 * gmb returns
<gmb> bac, gary_poster: Is there any tasks you'd particularly like me to pick up?
 * gmb winces at "Is" before a plural form, commits ritual suicide.
<bac> gmb:  i'm in the middle of trying to figure out where to put the link on the bugtarget page.  if you want to pick up the feature-flagging you could do that.
<gmb> bac: Won't those two collide?
<gmb> bac: Oh, sorry
<gmb> You're working on the BugTarget:+index page. I'm thinking about the Pillar+index page.
<gmb> bac: Sure, I'll take that on.
<bac> ok
<gmb> I assume we want a separate feature flag from malone.advanced-subscriptions.enabled, since this work isn't ready to go live yet and most of that is.
<gmb> bac, gary_poster ^^
<bac> gmb: i'd assume so, though tied to that team
<gmb> Right.
<bac> if that makes sense
<gmb> Yep.
<gmb> I agree.
 * gmb goes, does
<benji> ok gary, ready when you are
<gary_poster> benji, ok.  Actually, on reflection over lunch, I think that one should wait on bac finishing what he is working on.  So...what should you do.
 * benji looks.
<gary_poster> (the reason why it should wait is that AFAIK you will want to follow the pattern he has started
<gary_poster> )
<gary_poster> gmb, sounds reasonable.
<benji> gary_poster: how about "If an error occurs while patching a newly created filter, remove the filter."
<gary_poster> benji +1
<benji> k
<bac> gary_poster: what task are you talking about waiting for me
<bac> ?
<gary_poster> I have some notes from the call with jml.  I'm kind of in the mood to get some coding done, so I'll wait to get that out, but will make myself do it soon. :-P
<gary_poster> bac, benji was going to look at adding edit links (e.g. links to https://bugs.launchpad.dev/firefox/+subscriptions) whereever you are adding add links
<bac> gary_poster: ah, ok
<gary_poster> pushed to ~yellow
<gary_poster> merged devel, merged my initial server bits, pushed to ~yellow again
<gary_poster> benji, is there a reason why BugSubscriptionListView initializes the request in __init__ rather than initialize?  I think "initialize" is more typically where we put view initialization.  If this was any kind of considered choice, even in a very small way, I'll leave it as is and see what the reviewer says.  If it was not a considered choice, I'll switch it to initialize.
<benji> gary_poster: nope, no good reason at all; I am only vaugly aware of initialize and it didn't cross my mind at the time
<gary_poster> cool thanks benji.
<benji> what is the gestalt of initialize?
<gary_poster> it is formlib initialize/render (literally--we use formlib)
<gary_poster> benji, make sense, or would you like more detail?
<benji> yeah, makes sense
<gary_poster> cool
<bac> hi gary_poster, question on scope.
<gary_poster> bac, hi
<bac> are we enabling structural subscriptions on any bug target?  i.e. product, project group, distro, etc?
<bac> thus far we've concentrated on product only
<gary_poster> bac, yes
<bac> ok, that actually makes some things easier
<gary_poster> they are already enabled for all of those
<gary_poster> good
<gary_poster> (I mean, structural subscriptions are, not our work)
<bac> but means more page templates will need tweaking
<gary_poster> ok
<bac> but the existing links to +subscribe will be removed, right?
<bac> such as seen on bugs.lp.dev/firefox
 * gary_poster looks
<gary_poster> bac, yes
<bac> excellent
<gary_poster> benji, expose_user_administered_teams_to_js has an argument absoluteURL=absoluteURL.  Nothing uses it.  Should I remove it?
<benji> remove it and then run the tests, you will be enlightened
<gary_poster> benji, ah!  where are the tests?  I was going to try and write tests for those expose_* things and was staring glumly at the prospect.
<benji> gary_poster: oh wait, you mean the function body doesn't use absoluteURL, yeah, sure remove it
<gary_poster> oh ok
<gary_poster> no
<gary_poster> function body does
<benji> yeah, they should be tested
<gary_poster> ok.
<gary_poster> I'm confused now though
<benji> heh
<gary_poster> could you take a glance at browserstructuralsubscription.py line 373 ff?
<benji> sure
<gary_poster> thank you
<gary_poster> it is used in the body
<gary_poster> but grepping for that function shows that nothing in the tree uses the pluggability it implies
<gary_poster> I doubted you were using it for Jim's old speed hack
<benji> gary_poster: heh, no; the tests are in lib/lp/registry/browser/tests/test_expose.py
<gary_poster> yay!
<gary_poster> looking
<gary_poster> benji, is that not checked in, maybe?
<benji> let me double-check
<gary_poster> oh, no there it is
<gary_poster> somehow I missed it in my server branch.  sorry for the noise.  Why are the tests in registry but the code in bugs?
<gary_poster> benji ^^
<bac> gary_poster: so did you talk with jml?
<benji> gary_poster: I have no idea why it's where it is... oh wait, didn't the code move at one point?  I may have started when the code was in one place but failed to move the tests when the code moved.
<gary_poster> benji, ack.  will move it.  thanks
<gary_poster> bac, yes. big picture: please with what we have done.  A few small tweaks here and there.  I intend to write it up fully, when I get the energy.  here are some medium-level picture bullet points from jml:
<gary_poster> * I've filed bug 739515 about the pixel shifting.
<gary_poster> * Huw should look at the accordion dialog & make it pretty
<_mup_> Bug #739515: Portlet contents shift down while loading bug subscription form <story-better-bug-notification> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739515 >
<gary_poster> * Gary will ask gmb about whether we can push the + / - thing on
<gary_poster> muting bug mail down further
<gary_poster> * Gary will ping Diogo & I when accordion work is deployed, at which
<gary_poster> point we'll decide to do another meeting
<gary_poster> * Unsubscribe in anger should handle the case where I'm getting bug
<gary_poster> mail for a project because of team membership, allowing me to not get
<gary_poster> bug mail that project
<gary_poster> "I" is jml in that list)
<bac> gary_poster: cool.  didn't mean to force a brain dump but was curious if you met
<gary_poster> Then there are some little picture things like making sure that selct all and select none are the right colors ("Huw should look at the accordion dialog & make it pretty" is the subsuming poiint)
<gary_poster> bac, np.  That was some copy-pastable bits
<bac> i'm +1 with huw making a prettifying pass
<gary_poster> absolutely
<bac> gary_poster: an IDistributionSourcePackage is an IBugTarget -- but it doesn't look like you can have a structural subscription to it, e.g. https://bugs.launchpad.net/ubuntu/maverick/+source/mandvd
<bac> duh, i should be looking at IStructuralSubscriptionTarget-s instead
<bac> nm
<gary_poster> bac, you can't because of code?
<gary_poster> ah yes, cool
 * gary_poster needs to pick up kids from school. back soon
<gary_poster> pushed another branch to ~yellow
<gary_poster> another revision I mean
<bac> hi gary_poster, i'm making progress but the task has grown in scope.  unfortunately there is not much uniformity across all of the IStructuralSubscriptionTarget views and templates.  i think i'm working on the final set.
<gary_poster> ack bac
<gary_poster> sounds good
<bac> and i'm calling it a day, for now.  spent the weekend installing wood floors and i'm beat
<gary_poster> Yeah, I was going to say I was quitting too
<gary_poster> I'm tired too
<gary_poster> Talk to you later
<bac> have a good evening
#launchpad-yellow 2011-03-22
<gmb> bac: Do you know where the "Subscribe to bug mail" link that appears on a Product's +index is defined in devel?
<bac> gmb: yes, let me look
<bac> gmb: are you talking about the one in bugs/browser/structrualsubscription.py?
<gmb> bac: I don't know. Am I? I ask because in the accordionoverlay branch we have a subscribe_to_bug_mail link defined for the Product context menu, but we don't have that in devel and yet the link still appears (albeit with the name "subscribe" rather than "subscribe_to_bug_mail") and I'm rather confused because there seem to be several "subscribe" links defined around the place.
<gmb> bac: Ah.
<gmb> But you're right.
<bac> gmb: the one you are referring to (i think) is the *old* one that points to the +subscribe page
<gmb> bac: Why shouldn't the new one point there too?
<gmb> Our JS will override that behaviour
<bac> as i update IStructuralSubscriptionTarget pages I am getting rid of the old one
<gmb> Ah, ok.
<bac> gmb: my understanding was we were not going to support non-JS for this effort
<gmb> bac: Ah, my understanding was that it wasn't our first concern... I'm not sure that it actually matters though.
<gary_poster> benji bac gmb (danilos you are not here right?) mumble/kanban asap.  sorry about that
<gmb> bac: Thanks for the pointer anyway. That makes life easier.
<bac> gmb: would you know why distributionsourcepackages, which are IStructuralSubscriptionTargets, don't currently have a 'subscribe' link?
<gmb> bac: Er. No. That seems odd to me. Deryck might know.
<bac> ok
<bac> i could ask tom on fb i guess.  :)
<gmb> :)
<gmb> bac: lp:~gmb/launchpad/feature-flag-overlay-bug-739549
<gmb> Diff here: http://pastebin.ubuntu.com/583807/
<bac> gmb: at line 29 of your diff you define the 'subscribe' link.  is that necessary or will it come from the one defined in the structural subscription mixin?
<gmb> bac: Oh. Dur. That would work too (and better). But that menu doesn't use the Mixin ATM.
<bac> yeah, that would be too easy
<gmb> :)
<gmb> bac: No reason it couldn't, though. Let me give it a shot...
<bac> gary_poster: we have a problem with the overlay styling with narrow browsers (not so narrow, though) and long descriptions:  http://people.canonical.com/~bac/overlay-overrun.png
<gary_poster> bac, yeah, LP production has similar issues with existing functionality :-/
<gary_poster> I suspect there is some more attractive CSS to be had
<gary_poster> Suggestion/thought: could you keep a "Huw punchlist" doc somewhere?  Maybe on the kanban backlog, or the wiki
<gary_poster> I think this is something he could help with
<gary_poster> I vaguely recall seeing relatively attractive CSS solutions for this sort of thing in the past
<benji> for the time being we could use a constant title (e.g., "Add a mail subscription") and either leave off the target name or put the target name in the smaller, free running text of the form.
<benji> re. CSS: there is an ellipsis mechanism, but it's not the most standard thing in the world; I do seem to recall that FF does it well, so that may be all we need
<gary_poster> I'd prefer to stick to the design for now and see what Huw comes up with.  solutions like that one tend to stick, and I'd honestly prefer for it not to unless necessary.
<gary_poster> ellipsis is an option
<gary_poster> but breaking with a border underneath the whole thing might also be an option
<gary_poster> and at least look better than what we have
<gmb> bac: Relying on the mixin seems to work fine. I've pushed that change up. Do you want me to merge it into ~yellow too?
<bac> gmb: sure
<gmb> Cool
<gmb> bac: Merged and pushed.
<gmb> I'm heading out to run some errands; I'll be back in an hour or thereabouts.
<bac> gmb: thanks.  i'll merge it as soon as possible
<bac> gary_poster: i created 'design tweaks' in the backlog
<gary_poster> great bac, thanks
<bac> the details has a list of items.  it can be decomposed later
<gary_poster> sounds good
<bac> was there something else that needs to be added to that list?
 * gary_poster looks
<gary_poster> yes, I can think of one category off-hand.  I'll add what I think of.
<gary_poster> bac, this is currently part of the server branch that I am about to submit for review.  Is it problematic for merging into devel, or is it alright?
<gary_poster> http://pastebin.ubuntu.com/583858/
<gary_poster> benji, maybe you could review this MP draft?  You are the other person with significant work in the server branch.  http://pastebin.ubuntu.com/583864/plain/
<benji> gary_poster: sure
<gary_poster> thanks
<gary_poster> oh meh.
<gary_poster> "Add a function to efficiently get a user's structural subscriptions for a bug" should be deleted
<gary_poster> and I need to describe "Add a function to efficiently get a user's structural subscriptions for a bug target"
<gary_poster> I'm going to go lunch; hopefully I will feel more energized afterwards
<benji> gary_poster: I think we can kill expose_user_subscription_status_to_js/userHasBugSubscriptions I can't find any place that we actually use it.  Of course, we need to make sure no one is adding such a place at the moment.
<benji> re. the "person_is_team_admin should maybe be preceded with an underline" question: I don't think so; since we're strict about importing only things listed in __all__, there's no need to do the semi-private leading underscore thing.
<benji> that's the end of my thoughts on the MP
 * benji lunches as well.
<bac> gary_poster: the paste you have above should not be included
<bac> gary_poster: it needs to be feature flagged
<bac> hi benji, question about feature flags
<benji> 'sup?
<bac> is there an easy way to enable them for lp.dev interactive testing?
<benji> you should be able to edit them, let's see what is the url...
<bac> oh, yeah, right
<benji> https://launchpad.dev/+feature-rules
<bac> benji: so i tried adding:
<bac> advanced-structural-subscriptions.enabled	default$	10	true
<bac> but it does not appear in the list at https://launchpad.dev/+feature-info
<bac> and appears inactive
<benji> +feature-info only lists documented features; just adding a rule won't make an entry in +feature-info
<benji> however, *referencing* a rule that isn't documented will make it show up in the Undocumented flags area of +feature-info
<bac> benji: i see that now.
<benji> if you haven't seen it, the wiki doc for feature flags is good: https://dev.launchpad.net/FeatureFlags
<bac> benji: the problem was i used "default$" as stated in the scope section.  not sure where that errant $ came from
<benji> bac: I bet you copy/pasted it from the -info page, where the scopes are given as regular expressions
<bac> benji: yes, but is it a regex?  if so, wouldn't 'default$' work?
<benji> nope, the scope is a string matched by a regex, the -info page shows the regex the strings match (which in "default"'s case is just a constant so it's wierd)
<bac> benji: ok, another dumbish question
<bac> the FF flag page says for "booleans" an empty string indicates false
<bac> (makes me think "boolean" isn't the proper description)
<bac> entering the following into the rule editor:
<bac> malone.advanced-structural-subscriptions.enabled	default	10 ''
<benji> well, it's really up to the calling code to decide what an empty string is; the FF code just returns strings
<bac> gives the FF a value of u"''", which evalutes to True
<gmb> bac: s/malone.//
<gmb> Unless you've changed it since I merged my branc with ~yellow.
<bac> gmb: i did.  i thought it followed the convention better
<gmb> Ok.
<bac> benji: so the question is, how do you enter a value in the rules editor to indicate false?
<benji> I don't remember adding that "Value domains" section, it looks more deceptive than helpful
<benji> bac: if you're writing the code that's retrieving and interpreting the value then you get to decide...
<bac> benji: that is not consistent with the usage guide
<bac> i mean, you're right if you understand you're going to get a unicode value back and you must test it yourself
<gary_poster> trying to get things done for the new baby == surprise 2 hour lunch.  oops.
<gary_poster> thank you for the feedback bac and benji; I'll incorprate to code and MP
<benji> gary_poster: babys are indeed full of suprises. I may soon be reminded of that myself, Katie is starting to want another.  I'm not quite on the same page yet though ;)
<gary_poster> benji, wow :-)
<benji> bac: yeah, I really don't like the hints on the -info page that there is type conversion going on.  If I added that I hereby repent.
<bac> benji: i'm not blaming, i'm 1) trying to understand it, 2) trying to use it properly
<bac> the docstring for FF tell you to:
<bac> if features.getFeatureFlag('soyuz.derived-series-ui.enabled'):
<bac> but that will never work if the feature is edited using the UI
<benji> no worries, I have no emotional attachment to previous versions of myself
<benji> bac: I /think/ it will work; if you leave it unset you get [some false value] or you can set it using a rule
<benji> let me look at the code a little
<bac> benji: i think you're right.  but once set it can never be unset, which makes testing a pain as it involves 'make schema' to reset it
<benji> bac: I believe there is a testing context manager that lets you temporarily set flags
<gary_poster> bac, I have an up-to-date accordionoverlay and I am visiting https://launchpad.dev/firefox and I don't see the add button UI anymore.  Do I need to have the feature flag set now?
<bac> for product, yes
<bac> gary_poster: gmb did that page and i've now replicated it for others
<bac> gary_poster: but my work hasn't been pushed
<bac> gary_poster: if you want to see it you'll have to set a value for the feature flag
<gary_poster> cool bac, thanks.  I was jusst trying to make sure I hadn't broken anything and was disconcerted to not see it.  Right, so I go to https://launchpad.dev/+feature-info...
<bac> malone.advanced-structural-subscriptions.enabled	default	   10 on
<bac> gary_poster: add ^^
<gary_poster> bac, got it.  thank you.  who do I need to be logged in as?  Mark?
<bac> yeah, you need to be some admin-type, i'm sure
<bac> mark will work
<gary_poster> mm, foo.bar worked too.  cool I guess
<gary_poster> bac, I now have "malone.advanced-structural-subscriptions.enabled	default	10	on" but I don't see it working on https://launchpad.dev/firefox
<bac> gary_poster: sorry, strip 'malone.' from the front.  i changed the name from what gmb did originally
<gary_poster> ack
<bac> the instructions for flags indicated an app area prefix was needed.  if you don't think so let me know and i'll remove it
<gary_poster> bac, what you did sounds fine
<gary_poster> and it is working now thank you
<gary_poster> Unleash THE KRAKEN!
<gary_poster> https://code.launchpad.net/~gary/launchpad/accordionoverlay-server/+merge/54415
<gary_poster> benji, if you run out of cards, as seems all too possible, please take a look at the 739141 defect card in Quick Jobs
<benji> gary_poster: k.  I hope to be done with this little card (description whitespace) in a few minutes; I'll look at 739141 next
<benji> gary_poster: are we ready for more merges into ~yellow?
<gary_poster> yes, benji, no problem.  If they are server side and should be reviewed as such maybe let me know, but we're good AFAIK
<benji> nope, all JS
<gary_poster> cool
<gary_poster> bac, I'm looking at the kanban board and wondering what you will need to have a good client-side branch for review tomorrow.
<gary_poster> My take is that you will need the card you are working on, and the card Danilo is working on in Feature Work 2: Coding.  The card to hook up the edit page is a nice-to-have (blocked in feature 1 tasks).  The card Danilo has in fw2: tasks is even less necessary.
<gary_poster> Therefore, I'm thinking that we are in a pretty good place for getting the branch ready for review tomorrow as we had hoped.  Do you agree?
<bac> gary_poster: i would but i'm having difficulties with my branch
<bac> the tests with feature flags are not working as i expected
<gary_poster> bac, I see. Anything I or anyone else can do to help?
<bac> gary_poster: i could talk it over with you if you like.  perhaps you might see something i'm doing silly
<gary_poster> bac, I'm happy to if you think it would help.  Now or tomorrow morning?  I need to leave to take care of kids in 15, fwiw
<bac> gary_poster: now is fine...let's make it quick
<bac> http://paste.ubuntu.com/583988/
<gary_poster> k
<gary_poster> with feature_flags():
#launchpad-yellow 2011-03-23
<bac> thanks gmb.  fwiw i had tried using person_logged_in and got other issues.  i'll have a look at your branch.
<bac> gmb: my problem was i tried using person_logged_in and then passing the principal to create_initialized_view -- you must do both
<gary_poster> bac, feature_flag issue is dealt with?  danilos has OCR today, so if you are close to working on the client branch, we should maybe plan for a handoff on danilos' current task, at least if he is not finished by his EoD
<danilos> gary_poster, hi, I hope I'll get this done before our meeting even with OCR
<gary_poster> cool danilos, np then
<bac> gary_poster: yes, i understand now how to get the tests working.  it is now a matter of replicating them across pillars
<gary_poster> bac, awesome
<bac> several hours work, at least
<gary_poster> bac, is there anything that we can share?
<bac> gary_poster: may be more trouble than worth
<gary_poster> ok bac.  Please keep it in mind in case you discover something that might change your mind
<bac> will do
<gary_poster> cool
<gmb> bac: Glad I could help.
<gary_poster> benji, fwiw added another card to FW 2 that you can move to when done with your current bug
<gary_poster> probably should be fixed before merging
<benji> k
<gary_poster> I might take it myself if I get to it
<gary_poster> bac, benji, danilos, gmb, mumble/kanban in 2
<bac> ok
<gmb> ack
<gary_poster> someone, what is the easy way to get a url to an object in a differnt pillar than the one you are in now?  There must be an easy way, and I may even have known it at some point...
<gmb> gary_poster: You mean a different rootsite? (e.g. code, bugs, answers, etc.)
<bac> gary_poster: e.g.  return urlappend(canonical_url(self.context, rootsite='feeds'),
<gary_poster> thanks, gmb, btw
<gary_poster> for answer :-)
<gmb> np
<danilos> "subscribe to bug mail" link on lp.dev/firefox has stopped working for me with latest accordionoverlay branch
<danilos> is this known or not?
<gary_poster> danilos: you need to turn on feature flag.  one sec, will get detail...
<danilos> aah
<gary_poster> benji, I think that bug is just adding "escape" into a magic point within "render_filter_name" yeah?
<gary_poster> advanced-structural-subscriptions.enabled	default	10	on
<gary_poster> danilos ^
<gary_poster> https://launchpad.dev/+feature-rules
<benji> gary_poster: yep; I bet http://developer.yahoo.com/yui/3/api/Escape.html will work
<gary_poster> foo.bar@canonical.com has privs
<danilos> gary_poster, cool, thanks
<gary_poster> danilos, np
<gary_poster> benji, cool. I wonder what the diff between that and javascript escape is
<gary_poster> but anyway
<gary_poster> run with the YUI version :-)
<benji> actually, Gavin just noted on a related bug (740096) that using Y.Node instead of strings of HTML would fix/avoid this class of problem, so I'm going to try that
<gary_poster> ah cool
<gary_poster> bug 740096
<gary_poster> oh mup, you're never there when I want you
<benji> xss vulnerability in new bug subscription overlay; https://bugs.launchpad.net/launchpad/+bug/740640
<benji> oops, wrong one
<benji> when updating a code build recipe json returned isn't escaped; https://bugs.launchpad.net/launchpad/+bug/740096
<gary_poster> yeah, thank you. https://launchpad.net/bugs/BUG_NUMBER is almost but not quite as fast as mup.
<benji> I have a Firefox bookmarklet that lets me type "bug NUMBER" and it takes me to the bug.
<gary_poster> ah, nicer
<gary_poster> chrome really is noticeably faster for me though.  :-/ FF 4 is better but still there's an appreciable difference.
<gary_poster> as an aside about FF :-)
<benji> gary_poster: the XSS bug is a bit bigger than just description; it could come from any of the values (if we allow HTML-like values in those fields); should I just do description now and file another bug to determine the scope of the problem/fix the others?
<gary_poster> benji, fix that bug, land a branch so I can adjust my code to deal with the change :-P , and add a new card for the other fields and start on that.
<gary_poster> no need for a bug IMO
<benji> cool
<gary_poster> lemme know when it is landed please
<benji> k
<bac> gary_poster: got a sec?
<gary_poster> sure bac
<bac> gary_poster: mumbe
<bac> l
<benji> gary_poster: the XSS problem is even deeper than that, I believe this is really a bug in lazr.restful; investigating now.  I've tried to come up with a hacky solution but can't think of one.  On the other hand, the only change we should have to make to the branch is to use a newer lazr.restful once I fix this.
<gary_poster> benji, sounds scary in terms of backwards compatibility
<benji> gary_poster: I take it back; the bug is definately in LP; I think I can have a fix shortly.
<gary_poster> cool
<gary_poster> bac, this is interesting from LEP:
<gary_poster> bdmurray: gary_poster: looking again I think bug supervisors can structurally subscribe to distro bugs if a bug supervisor is set
<gary_poster> bdmurray: gary_poster: at least that is the way it was when I wrote it
<gary_poster> gary_poster: bdmurray, oh? I'm afraid I'm not even sure how bug supervisors fit into it
<gary_poster> bdmurray: gary_poster: its only for distributions with bug supervisors set that structural subscriptions are restricted for and they are restricted to the members of the bug supervisor team
<gary_poster> bac, so it seems that distributions do not generically enable this functionality, but it is enabled selectively for certain users
<gary_poster> if you need more details we will probably have to turn to a bugs team expert
<bac> gary_poster: then we may be in good shape, sort of
<gary_poster> ok cool
<bac> that explains why i don't see it on the bug page
<bac> it'll take some finagling to get it to show up properly on the overview page under those conditions
<gary_poster> ok
 * gary_poster has landed two small branches to ~yellow.  I'd like to make another small change, but that will wait for the XSS work.
<gary_poster> bac, did you want me to help?
<bac> gary_poster: i do.  sorry for the delay.
<gary_poster> np
<gary_poster> If you are doing a punchlist item that is supposed to go into the mongo branch and therefore not go through the usual review/landing process, please feel free to use the new "completed punchlist items" column
<gary_poster> I should have added that sooner; I forget how mutable the kanban board is
<benji> ok, I need a consult; I must be doing something wrong with 740640.  What's happening is that the JSON representation of the bug filters is inserted into a script tag at the bottom of the page.  If the description contains </script><script>DO BAD THINGS</script> then bad things are done...
<gary_poster> We'll remove those as soon as we land the mongo branches
<benji> ...I expected wrapping the JSON in a CDATA and/or HTML comment would fix that, but it doesn't.
<gary_poster> ok, first thought
<benji> An we can't just escape the whole string because that will lead to HTML-escaped data getting into the DB (not the right thing to do).
<gary_poster> we should disallow funky characters in the names
<gary_poster> we do that elsewhere AFAIK
<gary_poster> and should do it here for simplicity
<gary_poster> that seems to solve the problem quickly and reasonably
<benji> gary_poster: yeah, it's reasonable for the short term, but I feel bad leaving it this way in general; we're going to keep getting outselves into this situation and there seems to be a central place to fix it
<gary_poster> I wonder if the policy is the right way to fix it thoug
<gary_poster> h
<gary_poster> you bring up good concerns about escaping
<gary_poster> I suppose you could say lazr.restful escapes on the way out and unescapes coming back in
<gary_poster> but that's going to be pretty hairy to incorporate is my guess
<gary_poster> because nothing expexts the unescaping ATM
<gary_poster> expects
<gary_poster> even if this were isolated to just the JS bits
<benji> right; I have a strong gut feeling that there is a right way to do this that won't affect existing code, but I don't know what it is right now
<gary_poster> I don't see it either.  Other problematic variations:
<benji> regarding disallowing funky characters: it seems to me that we need to do that at PATCH time, not in the JS (otherwise people can use the web service directly to inject their XSS attack)
<gary_poster> lazr.restful (or whatever machinery does this thing for the response cache) pukes if it gets a string that is not safe to put in the browser, unless there is some gesture to escape it.
<gary_poster> disallowing funky characters: this needs to be in the server
<gary_poster> and then needs validation on the clientside of a similar sort to the thing that we need for tags
<gary_poster> so I agree, the only thing in the JS is code to make the error friendly
<gary_poster> disallowing funky characters happens in the DB for tags, I've heard
<gary_poster> Going that deep is appropriate here too if there is precedence, in fact
<gary_poster> Also note that we only render to the page what the server gives us.  When we do a patch, the server gives us back the new representation, and that's what we render
<benji> How much time pressure are we under for this fix?  I don't think adding a "be sure strings are browser-safe" to lazr.restful is the right thing to do, but don't know how long it will take to figure out the right thing.
<benji> yeah, doing tag-like, DB-level string safety checks might be the best short term thing we can do
<gary_poster> benji, yes.  This is what I'd like:
<gary_poster> 1) DB-level string safety checks
<gary_poster> 2)  JS-level friendliness about it all
<bac> gary_poster: email sent
<bac> with tasks.  let me know if it doesn't make sense
<gary_poster> 3) A bug about the larger problem, if you like.  As I said, my current feeling is that the answer is to typically not allow XSS-type charecters in fields.  I suppose lazr.restful could try to enforce that, but I don't love it
<gary_poster> benji, done.
<gary_poster> bac, thanks, will read.
<benji> gary_poster: sounds good; I'll work on 1 and 2 now (well, and after lunch)
<gary_poster> benji, cool
<danilos> bac, gary_poster: error handling being pushed right now
<danilos> bac, gary_poster: and now done, it should be in ~yellow/launchpad/accordionoverlay
<bac> danilos: great
<gary_poster> awesome danilos, thanks
<bac> gary_poster: ping me before you tackle any of those items
<gary_poster> bac, will do.  Branch is built now, and I'm wrapping something else up.  I might have questions for you in just a sec (though if you are going to lunch np)
<bac> eating in
<gary_poster> k
<gary_poster> (pushed another small branch)
<danilos> gary_poster, I am looking into lowercase tags stuff, should I switch to something else to help out instead?
<gary_poster> danilos, you have about 1:45 left, yeah?
<gary_poster> or just :45?
<danilos> gary_poster, something like 1h, yeah, but all of tomorrow morning as well :)
<gary_poster> danilos, heh, sure.  weellll...benji, you around, by chance?
<danilos> gary_poster, there are also small bits like "Unsubscribe" not showing any progress UI and things like that
<gary_poster> danilos, please add cards for stuff you see like that
<danilos> gary_poster, right, I'll do that
<benji> gary_poster: kinda ;)
<gary_poster> benji :-) is there anything danilos can do for your task, or should he and I find something else?
<benji> gary_poster: well, now that we've identified a course of action, he could persue it; I haven't yet done much discovery on how the tag spellings are enforced
<gary_poster> ack benji.  I'll give danilos some options and I'll include that as one of 'em.  I'll let you know on the kanban board and here and stuff.  Thanks
<benji> k
 * benji returns to making patty melts.
<gary_poster> :-)
<gary_poster> So, danilos, here are good cards
<gary_poster> 740640, FW 2.  Task is to enforce no-scary-XSS-characters in the DB, and figure out a pretty way to display that
<gary_poster> That fits in nicely with the tags one
<gary_poster> because they are pretty similar
<gary_poster> So you could take those two
<gary_poster> Or...
<gary_poster> You could take 739141 in Quick Jobs
<gary_poster> Or...
<gary_poster> you could take one of the two bottom cards in FW 1:
<gary_poster> Team subscriptions should support a personal opt-out feature, exposed on edit page and unsub-in-anger page
<gary_poster> or
<gmb> gary_poster: r=me with a couple of tweaks.
<gmb> \0\
<gmb> Hah.
<gmb> It was so hard to review I broke my arm.
<gary_poster> I thought it was [gmb covers his ears in pain]
<gary_poster> :-)
<gmb> :)
<gary_poster> great thanks gmb!
<gmb> np
<gary_poster> danilos: last one: Structural subscription edit/delete page should also allow adds
<gmb> I'm going to go and get a very large cup of tea now.
<danilos> re 740640, "enforce no-scary-XSS-chars in the DB" means basically entire 740640?
 * gmb knows this was just a warm up for the client-side work.
<gary_poster> gmb, :-)
<gary_poster> danilos, I don't understand question.  740640 means minimally the DB stuff, and I'd like to include JS-prettification too (of a similar sort to the tag approach, whatever that will be).
<danilos> gary_poster, right, so my question is: should I consider it a single task, or two separate tasks?
<gary_poster> danilos, ok.  up to you.  I won't consider it done (i.e., something we can forget about) until both aspects are done, but we can arrange that a variety of ways.
<danilos> gary_poster, right, sounds good
<danilos> benji, so it's ok to take the card away from you? :)
<gary_poster> cool, danilos.  benji is mking patty melts, don't bother him, it's a dangerous operation. ;-)  He volunteered the idea, so I think it's alright
<danilos> heh, ok
 * benji runs away from the melted cheese explosion.
<gary_poster> :-)
<danilos> gary_poster, oh, on the topic of JS prettification, I don't really see what needs doing if we just want to escape stuff so it works
<danilos> (works == avoids XSS)
<gary_poster> danilos, here's the story.  it's just like with tags.  Let's say I want to make a name that has some unacceptable characters in it (e.g., "importance >= high")
<gary_poster> should we communicate that nicely?
<gary_poster> or will your new error handling be nice enough that everything will just work?  I suspect that the error communication might need work, but maybe not
<danilos> gary_poster, so do we have a rule that some characters are unacceptable? in cases like this (XSS attack protection), that's best done with a white list, but white listing means we also stop people from using all alphabets of the world
<gary_poster> danilos, if I were doing it, I probably would have done it with a blacklist, excluding characters that are escaped for HTML.  I agree that a whitelist would be safer.  What do you think?
<danilos> gary_poster, well, I wouldn't "exclude" anything, I'd just escape it where appropriate so it never gets executed; I agree that's the least safe of the options (iow, it's easiest to break it), but it does have the benefit of allowing people to have subscriptions named "<important>" if they want to, which would make it much easier to filter on than say just "important"
<danilos> gary_poster, or, your example
<gary_poster> danilos, the problem is that the values are dumped into the page by lazr.restful with automation.  Changing that behavior is not something that I want to commission right now.
<gary_poster> Moreover, we have multiple examples of precedence in LP for this exclusion pattern
<danilos> gary_poster, oh, that does sound sucky...
<danilos> gary_poster, and did you mean a precedent?
<gary_poster> yeah danilos.  ...I actually don't know for sure if I can use precedence in that way :-P
<gary_poster> I could have said "multiple precidents" I guess :-)
<danilos> heh, yeah
<gary_poster> precedents
<gary_poster> presidents!
<danilos> oh, we've got Putin in Belgrade today, it was a mess getting around the city, half of the streets closed
<gary_poster> oh, I bet
<danilos> just like it was 6 months ago when we had Hilary Clinton
<danilos> it's especially nice since my office is right across the street from the national parliament
<danilos> anywaaay
<gary_poster> I guess it makes sense that she would get similar treatment
<gary_poster> secretary of state is pretty high up
<gary_poster> but not as much as pres, of course
<danilos> Putin is a prime minister now, I think
<danilos> though, not really sure what to do with the XSS stuff; so, basically, your suggestion is to *disallow* all HTML code and alert user of the fact?
<gary_poster> yeah
<gary_poster> just like with tags
<bac> gary_poster: https://bugs.launchpad.net/launchpad/+bug/412178
<_mup_> Bug #412178: Link to subscribe to a project group's bugmail should be on the bugs facet <confusing-ui> <lp-bugs> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/412178 >
<gary_poster> bac, so yay?
<bac> gary_poster: there is discussion in the bug about where to put the link
<gary_poster> ah, k
<bac> it is confusing b/c someone put it there anyway:  https://bugs.launchpad.net/bazaar
<bac> it is in an odd place
<bac> if i can make it work, i'll just keep it in the same odd place for now
 * benji looks at the board for another task.
<benji> Oh, I was supposed to talk to Leonard again, I'll do that first.
<gary_poster> benji, ok, then see the list of things I offered to danilos
<benji> k
<gary_poster> Team subscriptions should support a personal opt-out feature, exposed on edit page and unsub-in-anger page is a good one, and...
<gary_poster> Structural subscription edit/delete page should also allow adds
<gary_poster> bac, putting it in a non-weird place is harder?  I.e., like the main page?
<gary_poster> Or just needs more thinking?
<bac> gary_poster: more thinking.  probably should just create an actions portlet like other pages
<bac> but, that's the kind of thing that would possibly give curtis fits -- hard to tell
<gary_poster> bac, actions portlet seemed like a reasonable/"obvious" solution to me.  Maybe give Curtis the option, then?
<gary_poster> we are on team lead call right now
<gary_poster> and he is leader
<bac> ok
<bac> gary_poster: if i can make it work in the current place i'd like to defer any redesign until all other pillars work
<gary_poster> bac, ok, will defer to you.
<gary_poster> bac, I tried to look at the tests; I didn't quite understand how to do them yet, but I only stared at them briefly.  I've had a lot of interruptions, and now I want to get the small changes to the server branch done and sent to ec2 (where I suspect there will be problems) after the team lead call before I restart trying to share the task with you.
<benji> gary_poster: unless you have another preference, I'll pick 739141 back up
<gary_poster> benji, cool
<gary_poster> gmb, I don't understand your last comment, actually.  You want a newline somewhere around
<gary_poster> 601	+            required=False))
<gary_poster> 602	+    @call_with(subscribed_by=REQUEST_USER)
<gary_poster> but that kind of export annotation is all over the file without newlines
<gary_poster> and they all are pertinent to the method that eventually shows up
<gary_poster> so I'm not even quite sure which newline is pertinent.
<gary_poster> (i.e., before the @call_with line or after)
<gary_poster> I'm guessing before
<gary_poster> I'm taking a late lunch.  Back in a abit
<bac> gary_poster: here are the changes required to support project groups: http://pastebin.ubuntu.com/584427/
<bac> i've pushed them to  lp:~bac/launchpad/yellow-accordionoverlay
<gmb> gary_poster: Ah, I've made the mistake of thinking that the @call_with is the start of a new decorator stack for a new method. So ignore that.
<gary_poster> cool gmb thanks
<gary_poster> how much of that is boilerplate, bac?
<bac> gary_poster: 68%
<gary_poster> :-)
<gary_poster> ok
<bac> project group is oh so special
<bac> just like everything else
<gary_poster> heh
<bac> gary_poster: we have a problem with some of the "hand constructed" links
<bac> they are wrapped as a <tr>.  i had to mark the <tr> as the menu link so that both the text and icon are clickable
<gary_poster> Ah I think I understand.
<bac> but in doing so, the js-action class is not being properly displayed as green
<gary_poster> :-/
<gary_poster> can we change in CSS safely, or not so much?
<bac> i haven't looked yet.
<gary_poster> k
<bac> gary_poster: i am going to work on productseries
<gary_poster> ok
<gary_poster> benji, I'd like to delegate to you :-P .  On the team lead call, in the context of anoter XSS problem, I mentioned the issues you unearthed about lazr.restful and XSS.  Francis asked me to write an email about the issues to start a conversation about the lazr.restful aspects of this.  (Other people may be bringing up XSS but with a different focus.)
<gary_poster> I think you'd be a better person to write that email, to be sent to launchpad-dev.  Ideally it would be done before next Wednesday.  You up for that?  If so, I'll add a "quick job" card.
<benji> gary_poster: yep, sounds good
<gary_poster> cool thank you
<benji> with any luck my pending_notifications will have figured it out by then
<benji> heh; pending_notifications was supposed to be my subconscious; maybe that means something
<gary_poster> lol
<gary_poster> bac, I am going to try distributionsourcepackage for lack of any better ideas
<bac> ok
<gary_poster> bac, is there a reason why you did """def xsubscribe(self):" instead of deleting the subscribe method?
<gary_poster> Or, when should I do that?
<bac> gary_poster: debug issue. merge again
<gary_poster> bac, ack thanks
<bac> gary_poster: i've hit a snag testing product series
<bac> it was done very similarly to the others.  but in the page template the feature flag is never set.  vexing.
<gary_poster> :-/
<gary_poster> bac, I'd help if I could.  If I get to the end of mine and you are still stuck I'll stare at it with you.
<bac> deal
<gary_poster> bac, I have three menus that I changed in the code to conditionally show the new add form, but I can only find two of them throught the UI.  Do you have any strategies to know what is being added where?
<bac> gary_poster: three?  what are they?
<bac> usually there is just an overview menu and a bugs menu
<gary_poster> DistributionSourcePackageOverviewMenu
<gary_poster> DistributionSourcePackageBugsMenu
<gary_poster> DistributionSourcePackageActionMenu
<gary_poster> all three of them had "subscribe"
<gary_poster> I guess I grep for the associated interfaces...
<gary_poster> ok maybe not
<bac> gary_poster: congratulations.  it looks like you found a non-standard one too!
<gary_poster> :-)
<bac> gary_poster: a quick glance makes me think  DistributionSourcePackageActionMenu and Bugs are the two you want
<bac> the OverviewMenu one is a NavigationMenu not an ApplicationMenu
<gary_poster> bac, I have no clue about this stuff, but OverviewMenu had "subscribe" in it too...
<bac> not that it means anything
<bac> gary_poster: yeah, i see it
<gary_poster> I don't know what the practical diff is between Nav menu and App menu
<bac> gary_poster: but looking at https://launchpad.net/ubuntu/+source/live-boot i don't see anything to do with that menu
<gary_poster> This may be my first exposure to the menu system, in fact
<gary_poster> other than believing that I've heard Curtis did it
<bac> gary_poster: the one you aren't using is used for the links following "This package has"
<bac> it should not have a subscribe link in it, i'll bet
<bac> gary_poster: does tal:condition="python:" do shortcutting?
<bac> can i do tal:condition="python: False and something_that_doesnot_exist"
<gary_poster> yes, I am pretty sure so, bac
<bac> hmm
<bac> i would've thought so too
<gary_poster> course you should also be able to do
<gary_poster> tal:condition="something_that_doesnot_exist|nothing"
<bac> sure
<gary_poster> shortcutting is not working?
<bac> i actually have another condition that i replaced with False for the example
<gary_poster> gotcha
<gary_poster> bac, you said, "the one you aren't using is used for the links following "This package has"".  Teaching me to fish, how did you determine that?
<bac> by looking at the links it defined and then scouring the page template
<gary_poster> heh
<gary_poster> the template or the rendered version?
<bac> it is the one called view/overview.  the other's use is hidden behind the @@/global-actions
<bac> it is WAY more confusing than is sane
<bac> menuing is so complicate that i can't ferret out the essential bits from the stuff there only to drive you crazy
<bac> i looked at the actual page template
<gary_poster> gotcha
<gary_poster> so I should try removing subscribe entirely and see what happens, maybe from DistributionSourcePackageActionMenu?  No, that's the one that's used on the right of the main page.  Ah, no it isn't, I see, it is registered against the view, and that's the view/menu you were talking about in the template!
<gary_poster> ok...trying to understand where the overview is used now...
<gary_poster> (So, yes, I think I should remove it from the ActionMenu, as you suggested initially)
<gary_poster> argh!
<gary_poster> except that doesn't make any sense!
<gary_poster> the template is using open_questions and new_bugs for view:menu
<gary_poster> oh, which are available off of DistributionSourcePackageLinksMixin, which is in fact mixed in...
<gary_poster> so maybe the entire links collection on DistributionSourcePackageActionMenu is a red herring?
<gary_poster> :-(
<gary_poster> maybe used by ../templates/distributionsourcepackage-portlet-pub-details.pt ?
<gary_poster> trying
<gary_poster> no
<gary_poster> I'm starting to think that all of the code on that menu class is a red herring
<gary_poster> and the only thing it needs is the mixin and the interface declarations.  Going to try it
<gary_poster> nope, that removes it from the right hand side :-/
<bac> gary_poster: :(
<bac> sorry, i wasn't following along at home.  looks entertaining, though
<bac> so in my tests, if i get a view and render it to html and then print the html, i always see:
<bac>  Features: {'malone.advanced-structural-subscriptions.enabled': None}
<bac> regardless of the state of the feature flag i've set.
<bac> i find this highly disconcerting
<gary_poster> np.  experimentation has proved that (1) DistributionSourcePackageActionMenu's subscribe menu option is the one that is rendered for the overview page; (2) deleting DistributionSourcePackageOverviewMenu's subscribe menu option does not break anything I can see;
<gary_poster> (3) deleting *all* links from DistributionSourcePackageOverviewMenu's  does break things; and (4) I don't know what's going on.
<gary_poster> I'm going to try remove the other links that don't appear to be used in DistributionSourcePackageOverviewMenu.
<gary_poster> well, on the bright side, for yours, you at least know that the feature flag is the problem, bac.  I'd suspect a rogue request replacing the one you think you are using...or Something Else.  Possibly alien in origin.
<bac> EXCEPT, the tests behave as expected but for two
<gary_poster> :-/
<bac> so even though the state is printed as None in the summary, the value appears to be correct when evaluated
<bac> figure that one out
 * gary_poster whimpers
<bac> i wonder if that message is using the db feature flag value and not the one from the fixture?
<bac> how could that be?
<bac> it can't
 * bac tests anyway
<gary_poster> k, 'caue I dunno
<gary_poster> s
<gary_poster> for my mystery, I am changing DistributionSourcePackageOverviewMenu's links = ['subscribe', 'publishinghistory', 'edit', 'new_bugs', 'open_questions']  to links = ['new_bugs', 'open_questions'].  That doesn't appear to change a darn thing.  Then I only change two menus, as I'd expect.
<gary_poster> and now for the tests...
<bac> gary, could you fix distributionsourcepackage-index.pt
<bac> it has malone.advanced-structural-subscriptions.enabled
<bac> no
<gary_poster> ?
<bac> it has           <div class="package-details"
<bac>                tal:attributes="id string:pub${pubid}-container" />
<bac> which is invalid html markup
<bac> div cannot be self-closing
<bac> safari just yelled at me
<gary_poster> l
<gary_poster> k
<gary_poster> done
<gary_poster> bac, if you have a second to glance over a diff, I will feel comfortable merging this.
<gary_poster> http://pastebin.ubuntu.com/584506/
<gary_poster> I disabled two of the tests
<gary_poster> Because distribution source packages do not have owners AFAICT
<bac> looks great gary
<bac> er, gary_poster
<gary_poster> cool thanks bac
<gary_poster> I am pinged by gary too
<bac> ok
<gary_poster> thanks, will merge
<bac> gary_poster: are you merging to the yellow branch?
<gary_poster> oh, right
<gary_poster> there's that
<gary_poster> what do you want to do?
<bac> gary_poster: why don't you push it and i'll merge into mine
<gary_poster> ok
<bac> or we could make a new branch on ~yellow
<bac> just let me know
<gary_poster> I suspect there will be a small conflict with your most recent changes; I'll merge that first
<bac> ok
<gary_poster> I'm happy either way
<gary_poster> ah, no, I was up-to-date
<bac> gary_poster: you should check this out from david siegel.  it's a pretty nice reminder to get up and walk around
<bac> http://iamfutureproof.com/
<bac> it shows i haven't taken a break in 2h29m
<bac> so, time for a lap around the yard
<gary_poster> cool, bac, thanks!  downloading
<gary_poster> I pushed to lp:~yellow/launchpad/accordionoverlay-links bac
<gary_poster> Then I did bzr pull --remember lp:~yellow/launchpad/accordionoverlay-links
<gary_poster> so I'll pull from there from now on
<gary_poster> bac, I'm sorry but I'm going to call it a day
<gary_poster> I'll be ready to help out more tomorry morning
<gary_poster> bye all
#launchpad-yellow 2011-03-24
<danilos> gmb, hi, what do you think of https://devpad.canonical.com/~danilo/screencasts/inline-validation-error.ogv for inline error handling?
<gmb> danilos: Sweeet.
<gmb> Love it.
<danilos> gmb, cool, thanks, then I'll run with it :)
<gmb> Excellent.
<benji> oops, forgot to fire up my IRC client
 * gmb grabs some lunch
<gary_poster> ok, bac, I think I've worked through my mail backlog sufficiently.  I think milestone is the last one to be done?
<bac> gary_poster: really?  ok.  are you offering?  i'm still working on the distro abnormalities
<gary_poster> bac, yes, I am offering
<gary_poster> I'll start
<bac> excellent
<bac> danilos: your screencast is great!
<danilos> bac, thanks :)
<danilos> gary_poster, fwiw (since you joined right after I posted the URL), https://devpad.canonical.com/~danilo/screencasts/inline-validation-error.ogv
<gary_poster> danilos, a thing of beauty :-) thank you
<bac> danilos: you need to up the volume for the soundtrack
<danilos> bac, heh, did it record that as well? that was accidental :))
<gary_poster> "odistani" means stop or something?
<danilos> yeah, it means "give up"
<danilos> or "cancel"
<gary_poster> lol
<gary_poster> I like "give up"
<gary_poster> I think we should change all of our "cancel" buttons in LP to "give up" or perhaps "surrender"
<benji> heh
<danilos> heh
<danilos> uhm, mumble time?
<gary_poster> oh yeah, that
<danilos> :)
<gary_poster> bac benji danilos gmb munble/kanban
<benji> on a realted note, the green checkmark and red X buttons are far too small
<gary_poster> you all are probably there already...
<gary_poster> I think that's an LP issue, benji but could be wrong
<danilos> yeah, they are bitmaps which don't really work well with our high resolution screens
<benji> yeah, I think it is too, they're used all over the place
<benji> I wouldn't mind nice big buttons with words and those images on the buttons
<gmb> Mumble is too much fun.
<danilos> gmb, don't play with the buttons :)
<gmb> Hee hee.
 * benji vows to cultivate the MP cover letter style of Dostoyevsky.
<gary_poster> :-)
<danilos> gary_poster, 1-on-1 calls today, right?
<gary_poster> danilos, was going to say that, yeah
<gary_poster> have a card on board for it
<gary_poster> the only tricky bit will be gmb
<gary_poster> gmb, after I write my cover letter and before you start review we can havee a quick call?
<gmb> gary_poster: Sure, that works for me.
<gary_poster> cool thanks
<gary_poster> Warning for those who care: I intend to merge devel into ~yellow/launchpad/accordionoverlay before making my review branch
<benji> k
<gary_poster> bac, combine-css.in from ~yellow's accordionoverlay has this conflict when I merge devel in: http://pastebin.ubuntu.com/584817/ .  All three of the galley-accordion files exist in the tree.  Do you have any suggestions on how to merge that?
<bac> gary_poster: you need both gallery-accordion css files and you need the new sprite file
<gary_poster> bac, but what about the other gallery accordion file?
<gary_poster> I was just about to see if it subsumes the other two
<bac> gary_poster: sorry.  you need core and skin
<gary_poster> so delete the third one?
<bac> yes, delete from that file
<gary_poster> ack, thanks.
<gary_poster> bac, and I'm also doing a corresponding "bzr rm ./lib/lp/contrib/javascript/yui3-gallery/gallery-accordion/assets/skins/sam/gallery-accordion.css" yeah?
<bac> sure, it is vestigial
<gary_poster> cool thanks
<bac> gary_poster: i jotted some notes yesterday as i encountered some problems/suspicions.  they are http://pastebin.ubuntu.com/584843/
<gary_poster> looking
<gary_poster> thanks bac.  +1 on making a card for the first two bullet points.
<gary_poster> For the third, I hear what you are saying.  I don't know of a more standard way of doing it (I looked), and I think I grew that from some code Danilo had done on another branch (but it was in progress, so he may have had something better in mind later).
<gary_poster> Elsewhere I wrote this to cache the decision within a loop, so that if you kept encountering the same team at least that would be cheaper.  In the current code path, the function will only be a problem if the user is a member of many teams.
<gary_poster> You or Curtis would be our best hopes in discovering an existing standard way of doing that.  Otherwise, we can either pre-emptively attack the code (possibly having to make another table to cache the decision?  sounds expensive.  Do you have another idea?) or wait and see if it is a problem.
<gary_poster> Finally, for bullet point 4, I'd be +1 on making a nice-to-have card in our display backlog lane to add the action portlet if Huw or someone else representative seems to agree.
<danilos> gary_poster, bac: I believe team.adminmembers expands the list of admins with the owner (if needed) in python, which is why you've got to use it or re-implement it; not sure that's the good solution though
<gary_poster> It sounds like it is not particularly more efficient either.  I wonder...
<gary_poster> It seems like there might be a SQL way of using the team membership table and the adminmembers to ask if a person were a member of the admins, or of admin teams
<gary_poster> that would probably be significantly better
<danilos> that code would certainly benefit from being a Collection (in LP sense of Collections) allowing easy matching/joining and resulting in a single query; doing it directly with Storm is possible as well
<danilos> gary_poster, probably best for the short term, so +1 on that, though I wouldn't dwell on it and would leave it as a separate task
<gary_poster> danilo, agreed on separate task/card.  which is your short term recommendation?  Storm directly?
<danilos> gary_poster, yeah
<gary_poster> cool
<gary_poster> bac, +1 on making a card for that too then
<danilos> gary_poster, long-term would be rewriting all of Team model code to use Collections :)
<gary_poster> :-)
<gary_poster> I don't think I'll commission that just now ;-)
<gary_poster> bac, I will make cards for you if you want, but not till I finish the MP, and have my scheduled calls
<danilos> heh, are you absolutely sure???
<gary_poster> lol
<bac> gary_poster: ok.  sorry i was making tea
<danilos> anyway, gary_poster, when do we chat? (or do you want to get hold of gmb first)
<gary_poster> np bac
<gary_poster> danilos, in 52 min
<bac> gary_poster: i can just hear lifeless complaining about that method, though.
<danilos> gary_poster, ah, google calendar DST fuckup, ok
<gary_poster> right
<gary_poster> to both of you ;-)
<bac> danilos: you can make all appts in google cal be UTC
<gary_poster> well
<gary_poster> I want these to follow along with my timezone usually
<danilos> me too
<bac> that's problematic if everyone doesn't follow your same DST rules.  :)
<danilos> gary_poster, we probably need to create them in UTC, and everyone sets the local time zone as appropriate
<bac> i think canonical should be a dst-free zone
<gary_poster> if everyone would simply follow along with the *American* legislature's silly DST laws, then things would be much simpler ;-) .  or, yeah, we could do what the rest of the world does, but America is not too good at that sometimes. :-)
<bac> gary_poster: we're saner than many.  last year argentina's president arrived from a long trip and cancelled DST that was to begin the next day.  my iphone never recovered
<gary_poster> danilos, feel free to change, though next week we should be re-aligned
<danilos> heh, this time, I don't think America is much to blame, DST itself is simply insane and if it really is to save electricity, let's just get up earlier :)
<gary_poster> lol bac
<gary_poster> heh
<danilos> gary_poster, yeah, leaving it as-is, to see how it'll look next week
<gary_poster> cool
<danilos> bac, benji, gmb: hi guys, I'll be adding you all as my peer reviewers -- don't feel obligated to fill it in, but if you've got any input you want to share with me, I'd be happy to hear it out in there as well :)
<benji> k
<bac>          sure
<danilos> (if allhands.c.c lets me, since it's a pleasure to use)
<gmb> Fair enough. I keep forgetting I need to do that, so I'll likely do the same.
<bac> gary_poster: i'm confounded by bmurray's work with subscribe/bugtask/bugsupervisor.  i'm not convinced it is doing what he thinks ATM.
<gary-lunch> weird
<danilos> gmb, I believe email from Claire said the deadline for self-evaluation and requesting peer reviews is tomorrow
<gmb> Blimey. Better get on with it then.
<gmb> I appear to have come unsubscribed from warthogs and allhands, which hasn't helped.
<gary_poster> huh
<gary_poster> yeah, I would need to do that too then :-P
<gmb> danilos: Thanks for the heads-up
<gary_poster> likewise
<danilos> gmb, I think I said this before, but it's not necessarily a bad thing to be unsubscribed from warthogs@ ;)
<gmb> :)
<gary_poster> heh, it collects mail for me
<danilos> "flag \Seen" sieve rule FTW :)
<gary_poster> bac, can you give a quick explanation as to why lib/lp/registry/templates/product-portlet-license-missing.pt went from tal:content to tal:replace
<gary_poster> ?
<bac> gary_poster: replace is correct since it is using 'structure' the replacement value has an anchor in it.  with 'content' there was an <a> within an <a>
<gary_poster> perfect, thanks bac
<bac> it came up b/c i was doing so much work with the web inspector console open i discovered a lot of HTML errors, like the one i showed you yesterday
<bac> we should have an automated manner of finding those
 * gary_poster wonders if tidy is better these days or what the alternatives are now
<gary_poster> though that would have had a hard time ctahcing this
<gary_poster> we kinda want something spidering the rendered site
<gary_poster> and telling us about oopsies
<gary_poster> bac, could you please scan over the MP draft http://pastebin.ubuntu.com/584864/plain/ and give me corrections/additions/ etc.?
<gary_poster> it's pretty bare bones
<bac> ok
<gary_poster> but I didn't have time for much else
<gary_poster> eh, XXX should be replaced with the string "lib/lp/registry/javascript/tests/test_structural_subscription.js : Test code."
<bac> gary_poster: i'm pretty sure these are left-overs from an aborted first effort:
<bac> lib/lp/app/javascript/accordionoverlay.js : simple base class for adding an accordion within an overlay.
<bac> lib/lp/app/javascript/tests/test_accordionoverlay.js : test.
<bac> a quick grep should show they are not used
<bac> it is my fault for leaving them around
<gary_poster> ok, will do, bac.  Also, a lint shows a lot of tab characters in the JS.  I don't know who introduced them, but to your knowledge they are not intentional, right?
<bac> gary_poster: my emacs was dumb wrt JS at the beginning.  it has been emsmartened
<gary_poster> :-)
<gary_poster> k
<gary_poster> I'll clean those up too
<bac> (of course it now strips tabs from makefiles, which is irritating)
<gary_poster> heh
<bac> gary_poster: the remainder of the letter looks fine to me.  it is quite concise.  well done.
<gary_poster> thanks bac
<bac> regarding windmill, i think we need something
<bac> for instance, the unit tests in test_subscription_links work happily even if the bits to invoke the JS setup are missing from the page template
<gary_poster> yup
<bac> the JS is "well" tested
<gary_poster> :-)
<bac> so i think we need windmill to just show the links are visible and have js-action class
<gary_poster> sounds good.  I'll add that as a note.
<bac> hi gmb, can you help me unravel some bugs infrastructure?
<gmb> bac: I can try. What's up?
<bac> gmb: could you tell me where i'd see BugsTaskSearchListingMenu in use for an IDistribution?
<bac> would that be bugs.launchpad.dev/ubuntu ?
<bac> there is funky logic for when the subscribe link is shown but i'm unconvinced it works
<gmb> Hmm
<gmb> bac: Yes, I think bugs.l.n/ubuntu should work.
<bac> ok
<bac> thanks for the sanity check.  bugs views aren't nearly as straightforward as others...
<gmb> Nope. The joys of working on one of the oldest bits of the system I guess.
<gmb> There are times I'd like to find Brad Bollenbach and ask "what were you thinking?"
<gary_poster> Fixing line length lint in JS: not my idea of a good time.
<gary_poster> gmb, ok, https://code.launchpad.net/~gary/launchpad/accordion-client-1/+merge/54715 is calculating a diff.  Sorry it took so long, but I had to do a few cleanups.  Oh, I should have added in the MP that lint is happy.  Quick call?>
<gmb> gary_poster: Sure. Let me get my mumble on.
<gary_poster> cool
<danilos> gary_poster, hi, ping me when you are done with gmb and/or ready for our own 1-on-1 :)
<gary_poster> cool
<gary_poster> danilos, ready when you are
<danilos> gary_poster, LP_DEBUG_SQL
<danilos> gary_poster, LP_DEBUG_SQL=1
<gmb> gary_poster, bac: On line 327 of the diff here https://code.launchpad.net/~gary/launchpad/accordion-client-1/+merge/54715, the feature flag that gets looked up is 'advanced-structural-subscriptions.enabled'. I thought this had been changed to 'malone.advanced...'; is that the case? If so, is this branch up-to-date?
<gary_poster> gmb, it is not up to date
<gmb> Ah.
<gary_poster> that work is being done in a separate branch
<gmb> Ok. Works for me.
<gary_poster> cool
<gary_poster> bac, I'm going to go lunch.  Should I start the milestone when I return?
<gary_poster> I don't have a lot of time actually
<gary_poster> But I might be able to get it done.
<gary_poster> (before tomorrow I mean)
<gary_poster> ...back in about an hour
 * gmb -> afk for a while; about half way through the mega review and in need of a brain break
<bac> gary_poster: chat?
<gary_poster> bac, we have an emergency that we are on the hook for: bug emails are not going out.  I'm trying to do a bit of investigation.  will be ready in a few.  s'ok
<gary_poster> ?
<bac> gary_poster: np, ping me when ready
<gary_poster> thanks will do
<benji> gary_poster: FYI, I just got some bug mail.
<gary_poster> benji, cool, from how long ago?
<benji> gary_poster: it's hard to say, but Leonard just commented on the bug 5 minutes ago (but that comment wasn't incldued in the mail)
<benji> gary_poster: it seems that teh email was sent as a result of marking the bug fix released at 2011-03-24 18:50:04
<benji> (which was about 10 minutes ago)
<gary_poster> benji thanks
<benji> gary_poster: I figure you've seen these emails, but just in case: "The script 'send-bug-notifications' didn't run on 'loganberry' between 2011-03-24 18:07:04 and 2011-03-24 19:07:04 (last seen 2011-03-24 15:55:20.954998)"
<gary_poster> yeah, thanks benji.  the odd thing is that it did run then :-/
<gary_poster> according to the log
<benji> hmm
<benji> does "didn't run" mean ran but had a non-zero exit value?
<gary_poster> not sure
<benji> hmm, maybe there is a watchdog process that has expectations about when scripts should run and it somehow tracks when they run (through log files?)
<gary_poster> benji, call soon :-P
<gmb> gary_poster: Around?
<gary_poster> gmb, sadly, yes :-)
<gmb> gary_poster: Heh. It's 22:08 local time, so I feel your pain.
<gary_poster> yeah, you have it worse, def :-)
<gmb> Anyway, the accordion client branch (1) is r=me but needs some work before it lands. I don't think any changes will be massive, but if they are someone else can easily add a review vote; I didn't want it to be blocked on me whilst I'm away.
<gary_poster> gmb, sounds good, and reasonable
<gary_poster> thank you gmb
<gmb> np
<gary_poster> have a good night and a nice few days
<gmb> Thanks; I will.
 * gmb leaves.
<gary_poster> :-)
#launchpad-yellow 2011-03-25
<danilos> hum, on launchpad.dev/firefox "Subscribe to bug mail" doesn't turn to "Edit bug subscription" anymore, but I guess that's a design decision (so you can add more subscriptions)
<gary_poster> hey benji, danilos.  We have two important things that need to happen that are on my plate, and I'd like to reduce that number by 1.  :-) one is to respond to gmb's review to get the client side branch landed, and the other is to work more on the sql that may have contributed to the mail incident yesterday.
<gary_poster> I am going to focus first on the sql for the mail incident, because I want to get that squashed, and the fix I did yesterday may have helped but was not enough.  When one of you is ready to take something else, we should rearrange.
<danilos> gary_poster, ack
<gary_poster> thanks
<benji> gary_poster: well, I can't think of anything reasonable to do for the email bug I was working on so I should either start doing unreasonable things or put it on the back burner
<gary_poster> benji, I vote for back burner :-)  Please indicate on the bug what you've tried and looked at so far; maybe also ask for a way to dupe; and then mark as incomplete.  Then check back, and we'll coordinate
<danilos> gary_poster, btw, what should we do for the server side of the BSF.description XSS thing? throw an exception (if so, which one?) or silently ignore disallowed characters?
<benji> k
<danilos> ValueError seems like a good candidate, but not sure how well it works with our API
<gary_poster> danilos, was going to say ValueError also.  Benji, I foget how the exception import thing works.  Do you have a recommendation?
<gary_poster> sorry, lower-case, "benji" :-)
<benji> yep, ValueError will work fine, you just need to wrap it in a call to expose()
<gary_poster> danilos ^^ cool?
<benji> danilos: from lazr.restful.error import expose
<danilos> gary_poster, benji, thanks, I'll look it up
<gary_poster> cool
<benji> gary_poster: I assume https://code.launchpad.net/~gary/launchpad/accordion-client-1/+merge/54715 is the right MP.  If so I'll start now.
<gary_poster> benji, that's the one
<gary_poster> I guess I'll have to merge your work in
<gary_poster> so that it is a ssociated to the right MP
<benji> k
<gary_poster> benji did you get my message?  My internet connection had a hiccup when what sounded like a neighborhood transformer blew
<gary_poster> That, or someone took a shotgun to some power equipment
<gary_poster> It was "I guess I'll have to merge your work in"..."so that it is a ssociated to the right MP"
<danilos> gary_poster, fwiw, benji said "k" to that earlier :)
<gary_poster> heh, ok thanks danilos :-)
<danilos> gary_poster, also, since we are getting stuff reviewed should we propose additional branches for merge using regular process using accordionoverlay as a dependency, or perhaps propose for merging into accordionoverlay? (so we can get independent reviews)
<benji> gary_poster: yep I got it
<gary_poster> danilos, yes, I was thinking about that too, earlier.  bac, benji, danilos, I propose that all future client-side work go to devel, and not out integration branch (despite the fact that I labeled this branch for MP review as a -1) and that we go through the normal review process.
<gary_poster> The only possible exception would be the link branch bac is working on and that I touched on, as bac prefers.  Agreed?
<gary_poster> thanks benji
<bac> ok
<gary_poster> cool
<danilos> gary_poster, sounds good
<gary_poster> cool
<benji> +1
<gary_poster> great.  thanks all
<gary_poster> benji I moved your bug card to Cancelled.  If we get an actionable reply fro Robert we can schedule that separately
<danilos> gary_poster, also, just to make sure it's not forgotten, the fact that link "Subscribe to bug mail" on launchpad.dev/firefox doesn't turn into "Edit bug subscription" anymore is a design decision, right? (and we'll be solving editing existing ones differently)
<benji> k
<gary_poster> danilos, yes, there are two cards for this in FW 1 (I just tweaked the wording of one of them): "Link bug target subscription edit page from target's main page and bug pillar main page." and "Structural subscription edit/delete page should also allow adds".
<gary_poster> Then also I just added one in the backlog for work on turning off the subscriber list: "Make sure users can easily see summarized information about *their* subscriptions on bug page and bug target page."
<danilos> gary_poster, ok, just wanted to make sure it's there since I just noticed it :)
<danilos> ok, I'm back to preparing an MP for my branch dealing with two cards
<gary_poster> danilos, yes, thank you, your question made me clarify some things on the board, and that needed to be done, so cool.
<gary_poster> danilos, I was wrong.  Your filter code did make it to production, though I'm not sure how since it was not part of the diff merged to the tree from devel.  I must have missed a second merge.  So that, I assume, is the source of 1/2 of the large amount of SQL that Ian found last night: https://bugs.launchpad.net/launchpad/+bug/742230 .
<_mup_> Bug #742230: Too much repeated SQL in send-bug-notifications job <Launchpad itself:Triaged by gary> < https://launchpad.net/bugs/742230 >
<gary_poster> Could I have a call with you to talk over approaches?  I think I understand what is going on, and I *don't* think I see how to make it dramatically better--just combining those two sql bits for each person (which might be a bit nasty code wise).
<gary_poster> oh, mup, *now* you want to say hi.  I see how it is.
<danilos> gary_poster, sure thing, let me get mumble going
<gary_poster> thank you
<benji>      .set("text", desc);
 * danilos -> food
<bac> gary_poster: i forgot to mention i am OCR today, though i have mostly ignored it
<gary_poster> bac :-) ok
<benji> gary_poster: would you have expected the Windmill tests to pass on lp:~gary/launchpad/accordion-client-1?
<gary_poster> benji, I would have had no idea. :-/
<benji> I'll give you one guess. ;)
<gary_poster> benji, I felt I was kind of the messenger on that branch, if you know what I mean
<gary_poster> heh, got it
<benji> yep, just wanted to make sure that they weren't passing for you and failing for me
<gary_poster> no, never even ran them I'm afraid. :-/
<benji> on the other hand, if I get them to pass again then I'll have a 500 line diff of lint fixes
<gary_poster> woo hoo!
<bac> hi gary_poster
<gary_poster> hey bac
<bac> working with curtis we think we've tracked down the problem
<gary_poster> fantastic!  I hope?
<bac> though i'm not fully understanding it
<gary_poster> assuming the problem is not something like "we use Python"
<bac> take the works 'layers', 'getMultiAdapter', 'monkeypatch', 'directlyProvides' and mix them until frothy
<bac> so...
<gary_poster> heh
<bac> at one point in MenuAPI there is a comment "we should get the layer from the request"
<bac> i think that is the crux of the problem
<gary_poster> ah
<bac> we set the layer using directlyProvides
<bac> but i'm unclear wth that is doing and how to interrogate the request to get it back
<gary_poster> ok
<bac> thoughts?
<gary_poster> directlyProvides manipulates a private bucket of interfaces off of an object, IIRC
<gary_poster> layer interfaces are generally supposed to provide an interface themselves
<gary_poster> which is slightly mindblowing
<gary_poster> but can help when you are trying to interrogate
<gary_poster> let me see if I can find an example, because I don't remember precisely how to take advantage of that
<bac> ok
 * gary_poster wishes that the word layer were not so common
 * gary_poster finds ./zope.publisher-3.12.0-py2.6.egg/zope/publisher/skinnable.py and ./zope.publisher-3.12.0-py2.6.egg/zope/publisher/skinnable.txt in the grep list...feel free to follow along, or not...
 * gary_poster has headache
<gary_poster> ok bac.  what interface are you directly applying?
<bac> app layers like BugsLayer, etc
<gary_poster> k
<gary_poster> 1 sec, seeing if this works
<bac> a la from lp.bugs.publisher import BugsLayer
<gary_poster> yeah, found it thanks
<gary_poster> nope, we don't do the expected thing.  However that would have only slightly improved things.
<gary_poster> So bac, the way  you do it is you iterate over the interfaces that might be a layer and ask if the request implements it.  Yup, dumb.  The improvement that vanilla Zope provides is that you can make a call to get all the layers ("getSiteManager().getUtilitiesFor(IBrowserSkinType)") and iterate those.  We don't play that game.
<gary_poster> So...
<gary_poster> there's also the question of whether you are removing the previous layer interface
<gary_poster> I dunno if you are
<gary_poster> May I see the menu code in question, bac?
<bac> lib/lp/app/browser/tales.py
<bac> gary_poster: look for "We should be retrieving"
<gary_poster> got it thanks
<gary_poster> bac, so the Zope solution for this is the following:
<gary_poster> you register all layer interfaces as utilities providing IBrowserSkinType, with the facet names
<gary_poster> as the utility name
<gary_poster> then you get the registered interfaces and their names from the CA (using getSiteManager(). getUtilitiesFor(IBrowserSkinType))
<gary_poster> and iterate over them until you get an interface that the request provides
<gary_poster> that's the one (as long as old layers have been removed)
<bac> wow
<gary_poster> and you have the name and the interface
<gary_poster> heh, I suspect that's not a good wow
<bac> i was hoping for request.layer
<gary_poster> the zope approach had that automated
<gary_poster> nope
<bac> curtis also suggested to ditch the views-based testing i'm doing and use a test browser
<bac> i think i may investigate that
<bac> since it will allow our publisher's monkeypatching to be used
<gary_poster> it's an idea
<gary_poster> alternatively you could implement our own version of setting a layer on the request
<gary_poster> that stashes layers
<gary_poster> and gives them back and does the right thing and so on
<gary_poster> but that's probably not what you want to do
<gary_poster> I'm out.  I'll be working a bit this weekend because I didn't get my self-eval done, so I'll probably look at email if anyone needs anything.  Have a great weekend
#launchpad-yellow 2012-03-19
<bac> morning, gmb & frankban
<gmb> hi bac. How was your trip?
<frankban> bac, welcome back
<bac> gmb: wonderful.  had a great time
<bac> i'll just be here buried in email...
 * gmb -> lunch
<bac> hi gary_poster
<gary_poster> hey bac!  welcome back!
<bac> gary_poster: thanks.  what time is our hangout?
<gary_poster> frankban, am approving your shell-toolbox branch
 * bac still going backwards through email...
<gary_poster> bac, sorry, timechange issues
<gary_poster> 9:10 until next week
<bac> ok, great
<benji> Now I have the "Welcome Back Kotter" theme in my head.
<gary_poster> :-)
<gary_poster> bac benji frankban gmb call in 2
<gary_poster> Also, in case you didn't see it, https://canonical.leankitkanban.com/Boards/View/14028610 is the new URL
<gary_poster> mm, we're having a no-camera Precise day today apparently :-/
<gmb> "Waiting for Google Talk plugin to respond"
<gmb> Hmm
<bac> gmb: did you see i reassigned the lp2kanban migration card to you?  i can take it back over now, if you like.
<gmb> bac, I hadn't noticed. Feel free to take it back; I'll kill my cronjob.
<bac> ok
<gary_poster> thank you both
<frankban> bac: I was taking a look at the build failure of the shelltoolbox lucid package. Is there a compatibility reason why the package depends on python >= 2.6.6-3~? Or is it just what dh_python suggested?
<frankban> (lucid has python 2.6.5)
<frankban> bac: same for debhelper (8.0 requested, 7.4 is the version in lucid)
<bac> frankban: yes, that is what dh_python recommended
<bac> that's the only reason
<frankban> bac: ok thanks, I will try to decrease the version number to see if it works in lucid
<gary_poster> benji, I'm doing kanban things.  I could make your graphviz cards (and bug if desired).  Should I?  Please reply "sure" or "naah":
<gary_poster> .
<gary_poster> .
<gary_poster> .
<benji> gary_poster: naah
 * gary_poster is text adventure frame of mind
<gary_poster> ok benji :-)
 * benji has been eaten by a grue.
 * gmb -> topping up tea reserves; BBIAB
 * benji reboots
<gary_poster> march showers bring april flowers?
<gary_poster> weird weather. :-/
<benji> Precise is going to drive me to drink.
<gary_poster> heh
<gary_poster> benji, what excitement is precise serving you these days?
<gary_poster> my bluetooth is still very flaky
<gary_poster> and I have the funky camera issues
<gary_poster> but at least the hangs have stopped, it seems
<gary_poster> for now :-)
<benji> gary_poster: it decided that using alt-[hjkl] for switching between workspaces is NOT ALLOWED; using shift-alt-[hjkl] for the time being
<gary_poster> ah :-/
<frankban> gary_poster: is this ok in your opinion? https://code.launchpad.net/~yellow/+recipe/testrepository-daily
<frankban> I've created a recipe for testrepository in the yellow ppa but... what is cloud deck?
<gary_poster> looking, and preparing to feel inadequately prepared to have an opinion, frankban...
<frankban> :-)
<gary_poster> frankban, cloud deck: no idea, except, digging around as you probably did, seems to be associated with landscape
<gary_poster> frankban, otherwise the only suggestion I would have would be to make the branch we use owned by ~launchpad
<gary_poster> just in case it lasts more than we want it to
<gary_poster> s/more/longer/
<gary_poster> frankban, https://help.landscape.canonical.com/CloudDeck <shrug>
<frankban> gary_poster: thanks, still I don't understand what's going on with cloud deck... however, I will wait to know if the build succeed for the yellow PPA... that's the branch I asked to merge, I can upload one to yellow owned by launchpad, is that what you suggested?
<bac> frankban: did you inadvertantly target the recipe to build into the cloud deck PPA?
<frankban> bac: no, I've used Yellow Squad PPA, and it's currently building for that target. Cloud deck showed just after a while in the build list
<bac> odd
<gary_poster> frankban, sorry, never saw your reply.  waiting to see if build succeeds: good.  I see it has.  Uploading a branch: right, I suggest pushing a branch to ~launchpad (e.g. lp:~launchpad/testrepository/paralleltesting) and using that for the recipe.  Future local testrepository changes we make can go there
<gary_poster> as a merge target
<gary_poster> recipe/ppa should probably also be ~launchpad tbh
<frankban> gary_poster: ok, build succeded, and it seems that, having the launchpad ppa, we can upgrade testrepository to obtain the copy we need. I will update setuplxc accordingly.
<frankban> gary_poster: s/launchpad ppa/yellow ppa
<gary_poster> cool frankban.  I am somewhat worried about using the same launchpad ppa, because that will affect everyone...
<gary_poster> so maybe hold off on just that part of it for now, until we hear from Robert?
<frankban> gary_poster: exactly, same worry, I would stay on yellow
<gary_poster> cool frankban. So just move the branch for now
<frankban> gary_poster: do you think I need to do something for those cloud deck builds?
<gary_poster> frankban, no...I'll ping someone on landscape about them just to be sure
<frankban> thanks gary_poster
<gary_poster> welcome
<gary_poster> frankban, I brought it up to landscape people aaaaand...reload the page again now: https://code.launchpad.net/~yellow/+recipe/testrepository-daily
<gary_poster> the cloud does not show up anymore!
<frankban> cool, thanks gary_poster
<gary_poster> frankban, ah-ha! but, https://code.launchpad.net/~clouddeck/+archive/ppa shows it.  They are looking into it
<gary_poster> benji, + anyone else who wants to follow along: behold eight cores running tests :-) : http://ec2-23-20-85-99.compute-1.amazonaws.com:8010/builders/lucid_lp/builds/0/steps/shell_8/logs/stdio
<gary_poster> this'll be interesting
 * gary_poster lunches
<benji> gary_poster: cool!
<frankban> bac: it seems that debhelper with python is not supported in lucid: "dh: unable to load addon python2". maybe we should create a new recipe for lucid only that uses python-central, or switch the recipe we have to use that
<bac> frankban: ok, you want me to take that over and look at it this afternoon?
<bac> frankban: i assume this is blocking your work?
<frankban> bac: not really, the lucid package will be needed by lpsetup, and that's a slack time project. So, as you wish, and when you have slack time.
<bac> frankban: understood, thanks
<gary_poster> for anyone following along, the 8 core c1.xlarge had 7Gig.  That's not enough for running the tests in parallel x8 apparently--lots of memory errors.  I killed the machine and restarted a m2.4xlarge: the only other 8 core box, this time with 68.4(!) GB of memory.  If anyone wants to see the log of the other machine I kept it and can send, btw.
 * gary_poster thinks his ec2 bill will be impressive this month
<gary_poster> $40.77 so far.  I've seen worse
<gary_poster> yay for juju automation
 * bac -> afk for a bit
<benji> gary_poster: I just submitted a half day holiday request, Katie is having a small procedure done that day
<gary_poster> benji, ack, will go approve.
<benji> thanks
<gary_poster> done
<gary_poster> welcoem
<gmb> gary_poster: Quick question before I forget (again): I've booked flights for Oakland so that I arrive on the 29th, per Marianna's email, but Francis's email (sent later the same day) says I don't need to be ready to work until Wednesday May 2nd. Do you have any objections to me taking the Monday and Tuesday as vacation days?
<gary_poster> gmb, um, I'm trying to think why I would possibly object :-)
<gary_poster> why would I possibly object, gmb?  meanness?  or am I missing something?
<gmb> gary_poster: No, no; I wasn't implying that you would. I couldn't think of one either, but it seemed polite to ask :)
<gary_poster> gmb, it was polite, I appreciate it, please continue doing so, and that sounds perfectly fine.
<gary_poster> :-)
<gmb> (And CanonicalAdmin has been slow to load today, so it was quicker to ask here than submit the request ;P)
<gary_poster> heh
<gmb> gary_poster: Thanks very much. I'll submit my request now-ish. Possibly by carrier pigeon if CA doesn't speed up.
<gary_poster> :-) ok
<gmb> Done.
 * gmb -> evening things.
<gary_poster> accepted gmb.  have a great evening
<benji> gary_poster: any suggestions on handling the objectives that now make no sense?
<gary_poster> benji, I had to figure out what you were talking about, but now that I have... :-)
<benji> heh
<gary_poster> ...I would suggest describing how far we went towards the objectives before we changed course.  IIRC, we had made good strides towards all or most of your objectives before we changed course.  Celebrate the positive. :-)
<gary_poster> benji ^^
<benji> gary_poster: sounds good
<gary_poster> benji, this is now probably too much , but I had started writing it. :-P You could start each objective that lost relevance with something like, "During the course of the 10 months of the review period, this goal lost relevance as the Launchpad team's focus changed.  Before that happened, I had already made significant strides. [X Y Z]"
<gary_poster> Or do what makes sense to you :-P
<benji> gary_poster: thanks, I'll do something like that
<gary_poster> cool
<gary_poster> New output is http://ec2-23-20-61-130.compute-1.amazonaws.com:8010/builders/lucid_lp/builds/1/steps/shell_8/logs/stdio btw
<gary_poster> benji, I have all info for tracked bugs already, thanks to copying the last meeting's document and working from it as a template for the new one, so no need for you to do that tomorrow
<benji> gary_poster: ok
#launchpad-yellow 2012-03-20
<frankban> gmb: good morning, I am starting juju charms to run tests
<gmb> frankban, Morning. Cool. I'm just looking at Gary's email now...
<frankban> gmb: select/read hangs, scary
<gmb> Yeah :/
<frankban> si\
<frankban> ops
 * bac \o
<gmb> Wow. Shows how long it's been since I did any LP development work. My env is completely broken.
<bac> gmb: no kidding.  and it seems things are moving around a lot over the last few weeks.
<frankban> gary_poster: good morning, now I have a better understanding of what's going on with testrepository
<gary_poster> frankban, awesome.  good afternoon.
<gary_poster> what does that mean practically for our issues?
<frankban> gary_poster: the debian control file in http://bazaar.launchpad.net/~testrepository/debian/sid/python-testrepository/sid/view/head:/debian/control (the one we use) is different from the one in ubuntu upstream: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/precise/testrepository/precise/view/head:/debian/control
<gary_poster> ahhh!
<gary_poster> so if we switch, all will be well? easy?
<gary_poster> need to step away; back soon.
<frankban> gary_poster: yes, but I have a question: my branch patches testrepository trunk. So our ppa installs the  trunk revision (maybe we could use that to see if https://bugs.launchpad.net/testrepository/+bug/775214 is fixed) However, no problem for me to update the ppa to use a patched upstream release.
<_mup_> Bug #775214: On python 2.7: String or Integer object expected for key, unicode found <Testrepository:Fix Committed by lifeless> < https://launchpad.net/bugs/775214 >
 * frankban lunch
<frankban> gary_poster: buildbot tests are currently running on ec2, access granted for you and benji (user: ubuntu)
<frankban> zk: ec2-107-20-6-115.compute-1.amazonaws.com
<frankban> master: ec2-50-16-78-27.compute-1.amazonaws.com
<frankban> slave: ec2-23-20-98-182.compute-1.amazonaws.com
 * frankban really lunches
<benji> precise... <sigh>
 * benji goes to report a bug on precise
<gary_poster> frankban, ec2: great thank you
<gary_poster> frankban, testrepository: I *guess*...if we can easily fix the subunit dependency issue (and I expect we can) then using trunk would be good
<gary_poster> that makes me a bit nervous
<gary_poster> but it is probably good for the long run and hopefully ok for the short run
<gary_poster> I would guess we would have to make our own branch of the ubuntu debian bits
 * gary_poster thinks aptitude rocks
<benji> I've considered starting to use aptitude, and there have been a couple of times I wish I already had.
<gary_poster> bac benji frankban gmb call in 2 or sooner
<gmb> A tumbleweed rolls through goldenhorde
<gary_poster> https://docs.google.com/a/canonical.com/document/d/19Zn7fGkQH5oOpJkaU2lGCpt8RK5KiDpPBTKJKs50wWw/edit
<gary_poster> benji, I'm going to restart post update, then I'd like to discuss strategy for tackling the test hangs when you have a moment
<benji> gary_poster: sure
<gary_poster> thanks
<gary_poster> OK, benji.  https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhorde when you get a chance. camera appears to be working post-update
<gary_poster> benji, fwiw, this is the command I am running (no confirmation yet that it is working):
<gary_poster> xvfb-run --error-file=/var/tmp/xvfb-errors.log --server-args='-screen 0 1024x768x24' -a /home/gary/launchpad/lp/sandbox/bin/test --subunit --load-list /home/gary/temp/tmp0d4ZXs
<benji> k
<gary_poster> yeah it seems to be working
<gary_poster> I probably should have teed the output
<gary_poster> but I didn't
<benji> good point, I'll tee mine
<bac> sorry about the email churn with failed PPA builds.  i'm trying to get the packaging to work with the new name spelling.  hopefully the next one will work.
<gary_poster> thanks, np
 * gary_poster needs to go babysit and such.  biab
<gary_poster> benji, are you getting a lot of "SilentLaunchpadScriptFailure: 1" errors?
<benji> gary_poster: nope
<gary_poster> k
<gary_poster> a lot of failures on my side.  going away again
<benji> gary_poster: I started later than you did, so I might not be there yet.
<gary_poster> maybe so
<gary_poster> hm
<gary_poster> saw schema related error
<gary_poster> going to stop, make schema, and retry
<benji> yeah, I did a pull and make schema before my run, just in case
<gary_poster> ok, restarted on new ephemeral with changes made
<gary_poster> now really babysitting :-P
<gary_poster> argh
<gary_poster> fell over
<benji> :(
<gary_poster> dumb mistake
<gary_poster> retrying
<gary_poster> there we go
<gary_poster> ok, now leaving :-)
<frankban> benji: http://ec2-50-16-78-27.compute-1.amazonaws.com:8010/builders/lucid_lp/builds/1/steps/shell_8/logs/stdio
<bac> "baby sitting" + "fell over" is not good
<benji> frankban: what am I looking for?
<frankban> the results of a parallel test run
<frankban> benji: and it's doing another run...
<frankban> have you started it?
<benji> frankban: have I started what?  Another run? no.  That was probably triggered by a commit.
<frankban> benji: ah... ok
<benji> frankban: I'm still not sure what you would like for me to notice about the ouput.  That it finished without hanging, perhaps?
<frankban> benji: yes, and only 4 failures... is the hang happening only using 8 cores?
<benji> gary_poster: ah, ok.  Nope, we've seen a hang with just two, so the fact that you didn't get one is interesting.
<benji> frankban: note that the xx-bug.txt failure is a known issue in the trunk, the production buildbot reported the same failure a few hours ago
<frankban> benji: yes, I've seen
<gary_poster> actually, benji, frankban, I have not seen a hang lately with two cores
<gary_poster> only 4 failures is great
<gary_poster> benji, do you have failures on your run?  I definitely do
<gary_poster> benji, maybe worth noting is that testrepository had not reported any errors.
<gary_poster> I wonder if this is some kind of "buffer filling too fast" problem
<gary_poster> triggered by having so many errors
<gary_poster> I'm not sure how many errors I'm going to end up with on this run, but "a lot" looks like arough guess
<gary_poster> benji, no hangs for me.  trying to figure out a quick way to get results of run
<gary_poster> "subunit2pyunit < testoutput.txt" yields a fairly confusing result: only one error?
<gary_poster> benji, ok, yeah, I'm confused.  I thought I saw a lot of errors flying by, but now when I look at the teed document, I see very few tracebacks.  The only error I get from the command above is one for an issue that subunit itself seems to show as...successful?
<gary_poster> test: lib/lp/app/javascript/overlay/tests/test_overlay.html
<gary_poster> test: Could not communicate with subprocess
<gary_poster> tags: zope:error_with_banner
<gary_poster> successful: Could not communicate with subprocess
<gary_poster> ...riiiiight...
<benji> gary_poster: was eating lunch; reading backlog now
<benji> gary_poster: I have no failures in my non-ephemeral run
<benji> my run took just under an hour and had no errors or failures at all
<benji> I'm going to start another in an ephemeral container and see what that does
<gary_poster> benji, interesting
<gary_poster> benji, so, maybe my "I have tons of errors" was confused by the fact that I ended up searching into the previous run.  not sure.  in any case, the only issue I see in the tee'd file is the one I gave above.  So I'm wondering what to do now, since I was unable to dupe.  I was considering hacking testr to only start one process, and to include the --load-list that we are using, and see how that goes.  Thoughts?
<benji> gary_poster: so the intent of your hack would be to run in a normal environment, but serialize instead of parallelize in order to see if we get failures or not, right?
<gary_poster> benji, not exactly.  The intent would be to run a single process/container of what the eight core machine did, but exactly as it did.  Specifically, I'm going to hack testr to make it think I only have one core (which will mean that it will run all the tests it is supposed to run in a single ephemeral lxc container); *and* I'll include --load-list=/home/gary/temp/tmp0... when I start testr, so only those tests ar
<gary_poster> e run
<gary_poster> If I succeed in triggering a hang, I at least have a recipe for triggering it locally.  If I do not succeed, then it implies that not only does testr need to run those tests in an ephemeral lxc container, but also they must be in parallel; *or* my machine is sufficiently different from the ec2 machine that it doesn't trigger.
<gmb> gary_poster, So, I've lost a bunch of time this afternoon to my lp setup being hideously broken. I've now rebuilt it. Do you have any guidance for me re: bug 609986?
<_mup_> Bug #609986: layer setup failures don't output a failure message (they spew straight to console) <lp-foundations> <paralleltest> <Launchpad itself:Triaged> < https://launchpad.net/bugs/609986 >
<gary_poster> actually maybe I don't have to hack testr to not run in parallel; just don't use --parallel
<gary_poster> gmb sure, lemme get that back in my head.  want to hang out for just a bit?
<gmb> gary_poster, Sure. Let me get Firefox running
<gary_poster> k
<gmb> Ah, crap, updates..
<gary_poster> gmb, https://code.launchpad.net/~launchpad/zope.testing/3.9.4-p5 is something to talk about when you are ready
 * gmb looks
<gmb> gary_poster, goldenhorde?
<gary_poster> gmb, yeah
<gmb> k
<benji> gary_poster: the ephemeral run completed with one failure: lp.services.job.tests.test_runner.TestTwistedJobRunner.test_memory_hog_job
<gary_poster> benji, I got that one in my testr run so far
<gary_poster> so, benji, we have an apparently intermittent test isolation error...
<gary_poster> and we are unable to trigger the hang with merely an lxc or an ephemeral lxc.
<gary_poster> I'm now adding testr to the mix
<gary_poster> and if that does not hang
<gary_poster> then we only have the two options that I mentioned above as the possible causes, afaik
<gary_poster> I ended up only hacking my .testr.conf for what I wanted
<gary_poster> and then running testr run
<gary_poster> but to try and dupe the eight-way parallel run...I'm not sure how to do that, except to merely force my two-core machine to be treated as an eight-core machine by testr
<gary_poster> which does not necessarily use the same test divisions
<benji> yep, I agree with your evaluation of what the different outcomes suggest
<gary_poster> and also demands more RAM than I have, according to the experience I had yesterday
<gary_poster> tests are still running here
<gary_poster> the new run is only about 20 minutes old
<benji> k
<gary_poster> so we may need to discuss how to instrument the ec2 machine
<gary_poster> while we are waiting for the test results here
<gary_poster> they might inform any result really
<gary_poster> you mentioned the signal handler, and the debug build
<gary_poster> I like the signal handler better than the debug build, because it changes less
<gary_poster> and yet might still give us what we need.
<gary_poster> (it almost seems like something that one always ought to run with)
<gary_poster> we could also try that gdb hook trick
<gary_poster> that lets you get into a Python process
<frankban> gary_poster: EOD, my ec2 test run is still going, do you want me to leave those instances up?
<gary_poster> frankban, ack.  benji, I think he can kill them.  what do you think?
<benji> gary_poster, frankban: yeah I say kill them; I don't think we'll need them.
<gary_poster> frankban, thank you.  Have a great evening.
<frankban> gary_poster, benji: ok, have a nice evening
<benji> same to you, frankban
<gary_poster> ah right, we can just sudo apt-get install python-dbg to get the debug build, can't we
<benji> gary_poster: this looks like what we're looking for http://pypi.python.org/pypi/faulthandler/
<benji> gary_poster: I believe so.
<benji> gary_poster: I think your point about holding off on using the debug build is a good one
<gary_poster> benji, nice package.  the only thing that strikes me that might bite us there is testr/subunit eating things...
<gary_poster> it might still work
<gary_poster> but the dance would be thisL
<gary_poster> :
<benji> there is an option for making it write to a file
<gary_poster> send signal to Python process
<gary_poster> ah!
<gary_poster> mhm...we would need access to the ephemeral container
<benji> register(signum, file=sys.stderr, all_threads=False, chain=False)
<benji> we can use the console for that
<gary_poster> in order to look at the file
<benji> since they hang, they don't go away :)
<gary_poster> as long as we do the root passwd/shadow file trick yeah
<benji> yep
<gary_poster> need to remember to do that first
<gary_poster> tests are still rolling along here
<gary_poster> ok...at 2:19, if I start a macine and get it initialized it would be ready by 3:20 ish
<benji> actually, don't we have access to the "upper" directory?  we can do the shadow trick there if we need to (but doing it before launch would be easiest)
<benji> gary_poster: I have a slave ready
<gary_poster> benji, ooh, 8 core?
<benji> gary_poster: darn, no
<gary_poster> :-/
<gary_poster> benji, want me to start one, or you?
<gary_poster> it may be trickier than I want it to be
<gary_poster> because of the new juju changes announced last night
<benji> gary_poster: have at it
<gary_poster> I was relying on something they just ripped out and replaced
<gary_poster> ok
<benji> actually, there has been some discussion about not ripping out the old options but leaving them for backward compatability
<gary_poster> yeah I saw that
<gary_poster> it makes sense to me not even for backwards compatibility but for setting defaults
<gary_poster> ok, slave is starting.  tests are still running locally.  stepping away.
<bac> hey gary_poster, can we have a quick chat to see if i can lend you a hand?
<gary_poster> bac, hey, 1 sec
<bac> gary_poster: np, i'll grab some tea
<gary_poster> cool
<gary_poster> bac, I await you in the horde (https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhorde_
<gary_poster> https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhorde
<gary_poster> benji, I have a call at 4 with Francis, btw, so you will need to take over
<gary_poster> then
<benji> ok
<gary_poster> benji, http://ec2-174-129-101-121.compute-1.amazonaws.com:8010/waterfall
<gary_poster> benji, I have added root passwd
<gary_poster> benji, so I should start a test run
<benji> gary_poster: sounds good
<benji> after that we'll just be watching it, right?
<gary_poster> benji, now I will add you to ssh
<gary_poster> yeah
<gary_poster> this may have been foolish :-(
<benji> how so?
<gary_poster> if yesterday is any indication, hang is in > 2 hours
<gary_poster> past both of our EoDs
<gary_poster> maybe one of the cores will hang sooner
<gary_poster> benji, oh argh
<gary_poster> should I not have installed the package, or at least python-dbg, before starting a test?
<benji> gary_poster: we need to install faulthandler and register a handler for USR1 that will write all thread's stacktraces to a file; oh and tweak /etc/shadow
<benji> the "register a hanlder" bit might be interesting, probably hacking bin/test would be the easiest way
<benji> oh, and the package needs to be installed in the container
<benji> gary_poster: you may be right, we might be too late in the day to do this right; maybe we should scrub
<gary_poster> benji, I already changed /etc/shadow in root and added you to authorized keys.  try ubuntu@ec2-174-129-101-121.compute-1.amazonaws.com
<gary_poster> or scrub ;-)
<benji> gary_poster: Permission denied (publickey).
<gary_poster> benji, one thing you could do is make an LP branch that has the package installed
<gary_poster> for tomorrow
<gary_poster> I would suggest actually hooking it in at a different location
<gary_poster> benji, try adding it to lib/lp_sitecustomize.py
<gary_poster> that will register it for every LP process
<gary_poster> which is what we want I think
<gary_poster> and is easy to do
<gary_poster> If I were going to do it today I would actually use python-dbg
<gary_poster> because that's simpler
<gary_poster> I just kill the test
<gary_poster> install -dbg
<gary_poster> and restart
<gary_poster> when there is a hang, give it a whirl with gdb
<benji> gary_poster: I'd really like to finish at least a section of my review today, so I prefer the option of killing the slave and I make a branch and tweak lp_sitecustomize
<gary_poster> cool
<gary_poster> I wonder what I did wrong with authorized_keys...
<gary_poster> benji, for future reference, I simply added your key (the line from https://launchpad.net/~benji/+sshkeys) to /home/ubuntu/.ssh/authorized_keys .  Did I need to do anything else?
<gary_poster> Maybe ec2 security thing...
<benji> gary_poster: I would have thought that would work
<benji> I'm pretty sure I've done just that in the past
<gary_poster> yeah, already set to allow 22 through in ec2
<gary_poster> fr everyone
<gary_poster> benji, still watching while waiting for call.  does top lie?  this is what it i saying
<gary_poster> Tasks: 505 total,   1 running, 504 sleeping,   0 stopped,   0 zombie
<gary_poster> Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
<gary_poster> this is while I have eight parallel tests going
<benji> gary_poster: I haven't seen top lie lately.  (I do remember on some old red hat machines ZC once had...)
<gary_poster> some tests are still running
<gary_poster> just not very fast
#launchpad-yellow 2012-03-21
<bac> morning
<bac> http://mozillamemes.tumblr.com/post/19333515188/we-love-you-nigelb
<frankban> :-) hi bac
<benji> gary_poster: bug 959352 seems to be getting stranger and stranger
<gary_poster> benji, yeah, really
<gary_poster> benji, I have a machine up now
<gary_poster> ran tests on it through the night
<gary_poster> I'm confused
<benji> gary_poster: I just replied to your other email about the blocking, you may want to read it now if you're getting ready for a run.
<gary_poster> entropy went down to 0 a couple of times
<gary_poster> yeah I did
<gary_poster> but giving you more data now :-)
<gary_poster> entropy went down to 0 a few times
<gary_poster> but didn't stay there for long
<gary_poster> while it was hanging it had gotten up to 51
<gary_poster> down to 0 again now
<gary_poster> Do I read this correctly?
<gary_poster> read(11, "6\351d=\310\235\274\300", 4096) = 8
<gary_poster> program: "give me 4k bytes from fd 11"
<gary_poster> kernel: "I can give you 8"
<gary_poster> (and they are the ones in the buffer)
<gary_poster> the second arg
<gary_poster> I'm pretty sure that is right
<gary_poster> I have another test run now
<gary_poster> I'm really confused about the mapping though
<gary_poster> what was it doing when it was (according to lsof) trying to get something from /rootfs/dev/random?
<gary_poster> well, supposedly it is still trying to do that now
<gary_poster> but I have symlinks in
<gary_poster> but...it should have fallen over because the file didn't exist, not hung waiting for output
<gary_poster> my suspicion is that it is getting the random values actually from the proper place
<gary_poster> and lsof is the one that is confused
<gary_poster> if that (or any other scenario in which that dns code is actually reading /dev/random despite what lsof says) is happening
<gary_poster> then doing mapping games won't help
<frankban> gary_poster: do you know if /dev/random inside ephemerals points to /dev/random of the host?
<gary_poster> frankban, oh, interesting.  I assumed it would, because I thought dev was mounted, but it is not.  proc and sysfs are mounted.  I don't know what the dev mechanism is.
<gary_poster> I'm trying to kill everything now but I'll look at that again in a moment
<frankban> gary_poster: I am trying now a test run using a nasty trick to feed the entropy in the host
<gary_poster> frankban, heh, cool.  I saw you could write to /dev/random and then manipulate...something to convince the system that it had enough.  good experiment, thanks! :-)
<frankban> well, I am using rng-tools to feed /dev/random with data from /dev/urandom
<gary_poster> ok, everything is sufficiently dead...
<gary_poster> heh, cool
<benji> gary_poster: yes, you're reading that correctly; yeah, I bet your suspicion is right that /dev/random is really being read, but strace is reporting the file name incorrectly
<benji> gary_poster: there is a mapping game that will help, remove /dev/random and recreate it but use the urandom kernel device
<bac> frankban: thanks for pointing out rng-tools...i didn't know about it.  have you seen http://www.howtoforge.com/helping-the-random-number-generator-to-gain-enough-entropy-with-rng-tools-debian-lenny
<bac> so apparently generating enough entropy on servers is a known problem and we've made it worse by throwing 8 cores at it
<frankban> bac: yes, that's the trick.
<benji> gary_poster: here is the incantaion that will point /dev/random at /dev/urandom: rm /dev/random; mknod -m 0444 /dev/random c 1 9
<gary_poster> benji ack.  one more minute away...
<gary_poster> ok... benji that should be done on the host I'm assuming?
<benji> gary_poster: good question.  I was assuming we'd do it on the containers, but assuming the host's /dev/random feeds the containers, then at least we'd only have to do it in one place (and we can do it live)
<gary_poster> well, I could do it in the base container
<gary_poster> that seems mildly safer
<gary_poster> ok build started
<gary_poster> bac benji frankban gmb call in 1 or 2
<gary_poster> (as soon as we all show up)
<gary_poster> benji starting without you
 * benji runs toward the horde!
<gary_poster> https://docs.google.com/a/canonical.com/document/d/19Zn7fGkQH5oOpJkaU2lGCpt8RK5KiDpPBTKJKs50wWw/edit
<gary_poster> ok benji, I'm going to kill the test run and try again after changing the host's /dev/random
<bac> gary_poster: document updated wrt generic code packaging
<gary_poster> benji, frankban, I have host and container using the urandom and it's not unblocking.  going to try duping frankban's rng-tools now.  apt-get install failed--perhaps it didn't like the /dev/random change.  undoing and retrying that.
<gary_poster> bac, good, thank you
<benji> hmm, it should not block
<gary_poster> benji, frankban's loop ("for i in $(seq 1000); do head -1 /dev/random > /dev/null; done") blocks too.  oh...wow
<gary_poster> /dev/random is 1, 8 again!
<gary_poster> who did that!
<benji> heh
<benji> the mknod really should "stick", as far as I know those device files are created at boot and not touched afterward
<gary_poster> seriously, though...yeah, it did not stick
<gary_poster> I verified history
<gary_poster> I changed it
<gary_poster> it was 1, 9
<gary_poster> then when I looked again just now
<gary_poster> it was 1, 8
<frankban> gary_poster: maybe the rng-tools installation changes them?
<gary_poster> yeah I was wondering about that too
<gary_poster> there's not a command to see when a command was run, is there?
<gary_poster> no, that wouldn't help anyway
<gary_poster> in any case, this was hanging before I tried to install rng-tools
<gary_poster> and is still hanging now
<gary_poster> after I re-switched /dev/random
<gary_poster> frankban, am I right in assuming that you did not see this?
<gary_poster> Setting up rng-tools (2-unofficial-mt.14-1ubuntu1) ...
<gary_poster> Starting Hardware RNG entropy gatherer daemon: (failed).
<gary_poster> invoke-rc.d: initscript rng-tools, action "start" failed.
<frankban> yes, you are
<gary_poster> :-/
<gary_poster> that's after I reinstated the old /dev/random
<gary_poster> not very informative
<benji> gary_poster: if the file was open, switching it out won't make a difference (just like a regular file)
<gary_poster> benji, sure
<gary_poster> benji, I had made the switch before starting the test run
<benji> ah, sorry; I got the impression that it was mid-hang
<gary_poster> I did a variety of switches mid-hang :-) but I did the start of the experiment correctly, at least in this regard
<gary_poster> the mid-hang switches were of the "it's not working, so what shall I do now" variety
<frankban> gary_poster: another build without hangs: http://ec2-50-17-161-214.compute-1.amazonaws.com:8010/builders/lucid_lp/builds/1/steps/shell_8/logs/stdio
<frankban> around 50 minutes this time too, but results are... weird...
<gary_poster> frankban, results look ok (roughly expected) to me.  what's the weird part?
<frankban> gary_poster: 3 failures, I expected 5, always seen 5
<frankban> but that's maybe because tests are split and ordered differently each time
<gary_poster> frankban, yeah, that's my assumption.  difference between first and second is especially big
<frankban> gary_poster: started my third run, if it goes well, I can conclude that 1. my trick works or 2. I've got a holy blessed ec2 instance
<gary_poster> frankban, :-) well I think based on your evidence we can conclude (1) the exhausted /dev/random hypothesis seems proven and then (2) one of your two options.  I'm working on duping your approach.  I think one can ignore the error message I got.  I modified /etc/default/rng-tools and then it started fine.  starting a run now
<gary_poster> wow, I think that immediately kicked things into high gear
<frankban> cool, third run completed in 51 minutes
<gary_poster> great frankban.  frankban, since you are ahead of me, how's this for an idea.  Hack testr (I can give a pointer, but easy to find) to make it think the machine only has 1 core so we can start to get a baseline for our tests.  Then, gather the three times and the three error reports for your three test runs.  We'll want the times to make averages (make sure you note which was the first, second and third please) an
<gary_poster> d we'll want the failures to know what to fix
<gary_poster> does that sound ok frankban?  or do you have better idea?
<gary_poster> frankban, I have duped a successful run on my ec2 box, using your approach.  yay!
<gary_poster> running another one.
<frankban> gary_poster: so, do you want me to save test reports and send them to yellow? and for running using one core: maybe hack testcommand.local_concurrency?
<gary_poster> frankban, I was thinking of you sending the buildbot report, but actually...
<gary_poster> yes, testcommand.local_concurrency
<gary_poster> ...anyway, in build/.testrepository there should be a few files there now
<gary_poster> some numbered ones are the subunit files
<gary_poster> I think they might be the most useful
<gary_poster> in addition to the timings, of course, which I would get from the equivalent of http://ec2-174-129-101-121.compute-1.amazonaws.com:8010/builders/lucid_lp/builds/6/steps/shell_8
<gary_poster> for that, I get to the page this way:
<gary_poster> from waterfall, click on build link for the given build.  Then click on the "shell 8" link
<gary_poster> that will give the timing
<gary_poster> as measured by buildbot
<frankban> ah, I see gary_poster. btw, I've only those files in /var/lib/buildbot/slaves/slave/lucid-devel/build/.testrepository:
<frankban> 0  failing  format  next-stream  times.dbm
<gary_poster> frankban, huh :-/
<gary_poster> OK frankban, maybe the buildbot output is the thing to get.  oh...interesting...
<gary_poster> actually, we are wiping out the .testrepository directory every build
<gary_poster> this means that every single run is round-robin
<gary_poster> because testrepository has no data to work with
<gary_poster> that's probably something we should fix
<frankban> gary_poster: maybe that's because we use an overlayfs?
<gary_poster> for now, frankban, get that "0" file, which should be for your most recent (current?) run
<gary_poster> frankban, actually even more than that
<gary_poster> or use the overlayfs, *and* buildbot wipes away the build directory for every build--we do a fresh checkout every time
<bac> gary_poster: i just got sucked into an investigation of gpg key importing from a six month old question that laura asked me to follow up on.  but, good news, i figured out what was going on.
<gary_poster> bac, yeah, I happened to see those emails, cool
<bac> short answer, the key server doesn't support old v3 keys and neither does LP, but we lie to the user and say his key doesn't exist.
<gary_poster> right, I saw you say that this was a bad error message.  sure sounds like it
<gary_poster> frankban, I'm not sure why my last sentence sentence started with the word "or". :-P  This conveys more of my meaning: "We use the overlayfs, *and* buildbot wipes away the build directory for every build--we do a fresh checkout every time"
<gary_poster> so anyway, short term, grab the "0" file and grab the buildbot output
<frankban> gary_poster: ok, I will send them together with the results of the single core test run.
<gary_poster> frankban, cool, thank you.
<frankban> gary_poster: updated the lpsetup part of the document
<gary_poster> frankban, great, thank you very much.  bac, I saw you did the same for your part.  Thank you.
<gary_poster> actually frankban. overlayfs doesn't have anything to do with it; it is entirely the buildbot issue
<gary_poster> testr runs in host
<gary_poster> sorry, talking about the .testrepository directory
<benji> gary_poster: if you have a minute, I have a draft of an LXC blog post that would appreciate any input you have
<gary_poster> benji, sure.  how would you like me to look at it
<benji> gary_poster: how about this: https://pastebin.canonical.com/62744/
<gary_poster> cool, on it
<gary_poster> benji, I'd r eplace "three or four hours, depending on the hardware" with "six hours on our current continuous integration machines, for instance" or similar.  It's six hours there.
<benji> I wasn't aware of the exact time, thanks
<gary_poster> After sentence "The ephemeral containers can then write to their local file systems
<gary_poster> without interfering with the others running simultaneously." I suggest something like this: "Because the file system changes are stored in memory, IO doesn't slow us down or block us, as it would in other similar situations."
<benji> I hadn't thought of higlighting that aspect, good idea.
<gary_poster> Last sentence, suggest replacing "Even so we have already shortened a full test run on an
<gary_poster> eight-core EC2 instance down to 45 minutes." with something like "Even so, our current results, with only a handful of test failures per run, are running on an eight-core EC2 instance in about 55 minutes."  I'd also suggest waiting on frankban's numbers for running the tests on a single core on the same machine: that will give us a real statistic to give in the blog post, wich is probably highly pertinent given o
<gary_poster> ur audience.  That should be done today, hopefully, so it won't block you long.
<gary_poster> Benji, very nice post.  Thank you.
<gary_poster> s/Benji/benji/ :-P
<benji> heh
<gary_poster> The blog post got me in full-sentence mode.
<benji> well, at least my PC waited until the call was almost over to crash
<gary_poster> heh
<gary_poster> benji, reread blog post. I wonder if you should omit mention of ssh ("ssh ubuntu@test"), and tell people to log in with ubuntu:ubuntu.  Maybe you should also mention that we are doing this on precise?
<benji> gary_poster: things look good on the blog post front, danhg says "this is just what I was after, much appreciated"
<gary_poster> benji, excellent, thank you
<bac> gary_poster: i've determined the translations but is not an isolation bug but a spurious failure.  in fact, running the set of tests present in the original merge proposal where the test was introduced (33 tests), the test fails frequently.
<gary_poster> bac, huh.  Disable?
<gary_poster> if all else fails, perhaps
<bac> my question is why is it not being seen in buildbot?
<bac> gary_poster: yes, if i can't figure it out my tomorrow morning i'll punt and disable it
<gary_poster> bac, I figured.  Spurious bugs can have different characteristics in different environments, of course
<gary_poster> I figured that's what you were wondering, I mean
<gary_poster> The nature of a spurious bug is that it is tied to something environmental that it should not be, I'd argue
#launchpad-yellow 2012-03-22
<bac> morning
<frankban> morning bac
<gmb> Yay, it only took until 11:30 for me to start swearing at allhands.canonical.com
<gary_poster> heh
<gary_poster> Tests on one core took 4:50 btw.  I started 6 cores (with /dev/random feeder turned back on) earlier this morning.  I should have done 3 cores instead I guess; I'll do that next
<gary_poster> Sorry, tests on 1 core with random gen turned off, I should say
<gmb> gary_poster, Can we reschedule our call until your afternoon (or maybe until tomorrow, if that's better for you)? I need to take Sarah to the dentist (on the basis that having her drive whilst anaesthetised would be unkind).
<gary_poster> gmb, of course
<gmb> gary_poster, Thanks.
<benji> heh; I just got a java.lang.NullPointerException from allhands
<gary_poster> :-/
<gary_poster> 6 cores: 0:59
<gary_poster> bac benji frankban gmb call in 1 or 2
<gary_poster> frankban, https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhordeoneonone
<gary_poster> whenever you are ready (no rush)
<gary_poster> frankban, actually could we head to oneonone again?  I just finished talking to Sarah and I have instructions for you
<frankban> sure gary_poster
<gary_poster> thank you
 * gmb -> afk, lunch, wife to dentist, etcetera.
<gary_poster> early lunch
<gmb> gary_poster, I'm now back and free for a call whenever suits you.
<gary_poster> gmb, cool.  mm, elmo has gotten my fighting spirits up, so now would be an amusing time to have a call with me, if you wish. :-)  otherwise we could wait till tomorrow.
<gary_poster> https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhordeoneonone
<gmb> gary_poster, Let's do it now; if nothing else, I can say that I got to see you when you were HULK GARY.
<gary_poster> lol
<gary_poster> ok cool
<gary_poster> https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhordeoneonone
 * gmb boots firefox.
<gary_poster> benji, hey.  do you have any availability for an early call, now-ish?
<benji> gary_poster: sure
<gary_poster> thanks
<gary_poster> https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhordeoneonone
<gary_poster> whenever you are available
<bac> gary_poster: we up?
<gary_poster> bac, we are, in https://talkgadget.google.com/hangouts/extras/canonical.com/goldenhordeoneonone , but gimme one more minute
<bac> gah
<gary_poster> can join if you wanna
<bac> rejoining
#launchpad-yellow 2012-03-23
<frankban> hi gmb?
<frankban> gmb: if you have time: https://code.launchpad.net/~frankban/lpsetup/steps/+merge/98815
<gmb> frankban, Hi. Sure, I'll take a look in a few minutes
<frankban> thanks gmb
<frankban> Oh, I almost forgot gmb: approve that code or I will put a random "strong" (in place of "outstanding") in your allhands review ;-)
<gmb> Haha.
<gmb> It's approved, it's approved! Don't do it!
<frankban> :-) thank you gmb
<gmb> np.
<bac> perhaps we should teach @leankitkanban how to quickly redeploy with juju
<gmb> Hah.
<gmb> Although if it goes wrong, you wonder how loudly they'd lay into us in a public forum.
<bac> gmb: well juju is careful *not* to claim 100% success rate.  personally i'd steer clear of any hosting provider that makes such a silly claim.
<gmb> Yeah, fair point.
<bac> hi frankban, i'm reviewing your lpsetup branch.  can you explain the change to the ssh call?  you replaced -a with -s.  does -s imply -a?
<frankban> bac: that fixes a previous commit, -s is the new -a, actions are now called "steps"
<bac> frankban: so it has nothing to do with disabling the forwarding agent?
<frankban> bac: no
<gary_poster> bac benji frankban gmb call in 2
<gary_poster> also, kanban board is back; please update before call if appropriate
<frankban> bac: that's just an lpsetup option that was renamed in the previous change
<gary_poster> frankban, ping
<bac> frankban: how did you do the debian packaging for lpsetup?  by hand, pkgme, other?
<frankban> bac: by hand, copy/paste, and using dch for the changelog
 * gmb lunches
<gary_poster> frankban, approved objectives.  I *think* you should now be able to enter your evaluation.
<benji> gary_poster: I'm looking for something to do.  Do you know if anyone is working on adding the /dev/random hack to setuplxc
<frankban> gary_poster: thanks, I still don't have the self assessment task, but maybe that's because i've set next monday as target. np
<gary_poster> benji, frankban was the only one who mentioned it
<gary_poster> frankban, yeah, that sounds believable
<gary_poster> benji, bac might or might not appreciate someone pairing on the translations thing
<gary_poster> I know it's been tricky/annoying
<gary_poster> and you are our translations expert ;-)
<benji> bac: it looks like a fun bug, I'm interested if there's anything I can do to help
<bac> benji is neither tricky nor annoying
<benji> gary_poster: it's a sad state
<gary_poster> :-)
<bac> benji: sure, want to chat in a second?
<benji> heh
<benji> bac: sure
<frankban> benji: I've not started that, so, you can take it if you want
 * bac -> tea
<gary_poster> I suggest that frankban should do the setuplxc thing, and benji help bac
<benji> frankban: it looks like I'm going to work with bac first
<benji> +1
<gary_poster> assuming that still fits with your schedule frankban
<frankban> gary_poster, benji: ok, that should be a fast fix, do you think initialize_host is the good place for the random trick?
<gary_poster> yes, frankban
<benji> seems so to me
<bac> benji: normal hangout?
<benji> bac: sure
<frankban> gary_poster: 2 mps are ready (random/urandom hack).
<frankban> https://code.launchpad.net/~frankban/launchpad/setuplxc-random-trick/+merge/99044
<frankban> https://code.launchpad.net/~frankban/charms/oneiric/buildbot-slave/urandom-script-argument/+merge/99056
<gary_poster> awesome, thanks frankban.  I'll look at them now so you can wrap this up...
<frankban> thanks
<gary_poster> frankban, approved both with no changes.  thank you!
<frankban> cool gary_poster, I am going to land them
<gary_poster> perfect
<gmb> gary_poster: Is it okay with you if I take Tuesday off and work Sunday instead?
<gary_poster> sure gmb
<gmb> gary_poster: Thanks. I'll submit a request in CA now.
<gary_poster> cool  have a great weekend
<gmb> gary_poster: Thanks; likewise.
 * gmb -> exeunt.
<bac> benji: sorry i haven't caught back up with you.  i've been doing reviews since lunch.
<benji> bac: no worries, I've been plugging away; nothing of interest to report yet.
<benji> bac: I have convinced myself that the second half of the asserts in test_splits_and_merges are meaningless; I've removed the guts of the tests and they still pass
<benji> I'm still not sure what the root problem is though.
<benji> bac: I have it: http://paste.ubuntu.com/896964/
<benji> gary_poster: I don't know why the diff isn't updating, but if you can review https://code.launchpad.net/~benji/launchpad/bug-953913/+merge/99120 (diff at 16:55 < benji:#launchpad-yellow> bac: I have it: http://paste.ubuntu.com/896964/
<benji> oops
<gary_poster> :-)
<gary_poster> ok benji
<benji> gary_poster: I don't know why the diff isn't updating, but if you can review https://code.launchpad.net/~benji/launchpad/bug-953913/+merge/99120 (diff at http://paste.ubuntu.com/896964/) then I can get EC2 crunching over the weekend.
<gary_poster> cool
<gary_poster> approved benji
<benji> gary_poster: thanks
<gary_poster> thank you benji.  have a great weekend
<benji> gary_poster: you too
<benji> man, why is this EC2 instance taking so long to start
<bac> benji: hey i just saw your diff
<benji> bac: it's running though EC2 now.  Hopefully it'll work as well there as on my machine.
<bac> benji: i don't understand why that fixes things
<benji> bac: it provides a constant sort order for sharingKey, the product focus is early in the sharingKey tuple
<bac> hmmm, so it was the sort order then
<benji> I can't explain why, but aparently variations in sharingKey is the culpret.
<bac> i'm *very* glad you figured that out
<bac> have a good weekend
