pooliewgrant: should i kill it in ec2?00:02
wgrantLet's see what version of python-apt is on pigeonpea/pilinut/cocoplum/germanium/cesium.00:15
wgrantLOSAs: ^^00:15
hloeungwgrant: one sec00:16
wgrantThere are three characters missing there.00:18
wgrantAnd they are the critical ones :)00:18
hloeung0.7.94.2ubuntu6.2, does that sound right?00:19
wgrantThat sounds right.00:19
wgrantBut also old :(00:19
wgrantpoolie: ^^ we need 6.400:19
pooliehloeung: do those machines not get l-updates automatically?00:24
pooliewell, i realize approximately no machines upgrade really automatically00:25
pooliebut would it be hard to bring it in? is it seen as being available?00:25
hloeungpoolie: yeah, it seems to be available.00:34
pooliei killed the ec2 land run and i'm running just a test00:34
pooliethanks haw; how would we go about getting it upgraded?00:35
pooliea request on the lp production status page?00:35
hloeungfile an RT about it00:36
hloeungand we'll do it for you00:36
poolielifeless: should i/we do this ^^?00:45
lifelesspoolie: I'd rather someone involved with the bug do it00:50
lifelessthe side effects of an uncoordinated change can be severe00:50
pooliewho would that be? jelmer?00:51
lifelessjelmer, wgrant, bigjools, gavin, stevenk, jtv or colin - offhand those folk should all have the experience to make reasonable predictions about side effects00:52
pooliei'm pushing it because it has been mentioned as a udd blocker00:53
lifelessso basically the branch can't land until we've separately done the upgrades everywhere00:54
lifelessand that needs teseting and QA in its own right.00:54
lifelesse.g. start with buildbot / *staging, dogfood, check its all good, then prod, then and only then land the branch.00:54
poolieyep, thanks00:55
wgrantpoolie: A UDD blocker!?01:01
pooliewell, not a blocker for packaging branches, but a thing people complained about in our meeting01:05
wgrant'cause it's not really related at all...01:07
lifelesspoolie: what trouble was it causing them ?01:11
pooliei believe it was that they wanted to sync tar.xz packages from debian01:13
pooliethe comment was basically just "can we have that xz bug fixed?"01:13
lifelesswell, I'm glad you have an interest in it01:14
lifelessit will be good to have it fixed01:14
poolie.. and i just hate to see thing stalled, at least without a "this is waiting on" comment01:15
poolielifeless: do you want to read https://code.launchpad.net/~mbp/launchpad/mail-scope/+merge/60281 again?01:15
poolieit has a +101:15
lifelesssure, i can do that01:15
StevenKHas anyone seen http://paste.ubuntu.com/655990/ before?01:29
pooliei think i've seen something like that, where _testMethodName is missing01:31
poolieas the name implies its failing to load and then things are not sufficiently set up to report the faliure01:31
pooliei'd suspect a syntax error or similar01:31
poolieor an import erorr01:31
StevenKpyflakes is happy, which is the odd thing01:37
pooliei would probably bisect backwards to find something that works01:42
StevenKIf I comment out a class variable "foo = PillarName.projectgroup == None" it works01:43
poolieah, well maybe that's stopping it loading01:47
poolieperhaps projectgroup is not defined at the time that initializer runs?01:48
StevenKHmmmm, maybe it isn't projectgroup01:48
poolielifeless: shall i wait for you to review the mail_header patch or send it now?01:50
StevenKPillarName has product and project01:52
StevenKWhich one is projectgroup, then?01:52
wgrantProduct = Project, Project = ProjectGroup01:53
lifelesspoolie: I have reviewed it now; I had to pop out to the vet before.01:54
poolienp, thanks01:54
lifelesspoolie: I think its fine as is but would be smaller if you derive from Fixture01:54
StevenKwgrant: That's ... obvious :-/01:55
poolielifeless: oh, interesting idea, even though it's not used only in testing?01:55
lifelessfixtures isn't just for testing01:56
lifelessnever was01:56
nigelbwallyworld: hi03:01
poolieo/ nigelb03:01
nigelbhey poolie!03:01
wallyworldnigelb: hello03:01
wallyworldhow's the branch going?03:01
nigelbwallyworld: I was working on solving that bug last weekend and ran into doubts.  I emailed you :)03:01
nigelb..and the branch is here -> https://code.launchpad.net/~nigelbabu/launchpad/4595-upgrade-bug-linking03:02
wallyworldnigelb: really? i don't recall seeing the email03:02
wallyworldlet me check my inbox03:02
wallyworldnigelb: it was in my trash - i got a whole lot of code import email which escaped my filter arrive in my inbox and yours was right in the middle and accidentally got deleted03:05
wallyworldgive me a few minutes to read it :-)03:05
nigelboh. 240 critical bugs? :(03:09
wallyworldnigelb: so i see you've added the 'bug-link' class to bug links and are grabbing those to send to the back end03:09
nigelbI got that far. Now at the javascript is where I have a few doubts on how to proceed03:10
wallyworlddid you have a particular question?03:11
nigelbYes, so in the javascript.03:11
nigelbI'm doing harvest_links(links_to_check, 'branch-short-link', 'branch_links', 'bug-link');03:11
nigelbIs that the right way, just add the css for the bug along with the branches03:12
nigelbI was wondering if they should be seprate variables03:12
wallyworldthe server has one end point for processing any links extracted from the page, so it makes sense just to add a new link class to the existing variable03:13
wallyworldie gather all links, send them to the server for processing, render the results03:13
nigelbah, so now I have to go to the server and add stuff to the processing bit.03:13
wallyworldon the server side you can introduce a separate class for bugs vs branch links03:14
nigelbah, ok03:14
wallyworldthe reason it can be in the one data structure is that the server is just providing generic info (enabled, title text etc)03:14
wallyworldso on the client, there's no reason to distinguish between bug vs branch links03:15
wallyworlddoes that make sense?03:15
nigelbYes, it does :)03:15
nigelbI guess the next place I should be making modifications is lib/lp/app/browser/linkchecker.py03:16
wallyworldor you could write some tests for the javascript side ie TDD03:17
wallyworldget that side of things sorted first03:17
nigelbah, yes.03:17
wallyworldthere may not be yui tests for that stuff03:18
nigelbthere isn't.03:19
wallyworldthe framework we have now was not around back when it was written03:19
nigelbso I guess I'll have to write new tests03:19
wallyworldyeah, that would be good if you had the time03:19
nigelbI'll try :)03:19
nigelbNot sure if I can get them rright.03:20
wallyworldor at least write tests for the stuff you are adding03:20
wallyworldi can help03:20
nigelbI'll push to the branch tonight and pke you tomorrow to see if I've done it right03:20
wallyworldnigelb: you could look at a simple existing test and use that to get started eg test_hide_comment.js03:21
nigelbI did look at one03:22
nigelbIt looks easy enough.03:22
wallyworldalso http://dev.launchpad.net/JavascriptUnitTesting03:22
nigelb(famous last words, I know :P)03:22
wallyworldyep :-)03:22
nigelbhehe, who wrote that wiki page?03:23
nigelb"Day one was horrible, there was a lot of shouting, words were said that may have hurt my computer's feelings"03:23
wallyworldnot sure, but that's funny :-)03:23
nigelbyeah, heh03:23
nigelbmake run now takes only ~30s03:29
nigelbLaters! Off to work.03:35
jtvStevenK, wgrant, greetings!  Continuing Q/A on the python-based publish-distro script.04:43
wgrantjtv: While we are there, it seems that publish-distro.py itself is now causing ~1500 OOPSes a day, because each WARNING spewed by CommandSpawner from a-f stderr is an OOPS now :/04:44
jtvwgrant: I imagine a lot of that simply shouldn't have been WARNING though.04:47
jtvThat's assuming that this is mainly increased urgency & visibility for problems that were previously just as big.  Or have substantial new problems cropped up?04:48
wgrantjtv: apt-ftparchive's stderr output is... verbose.04:48
StevenKAnd 65 OOPSes per publisher run is just oh so much noise04:49
wgrantBut the OutputLineHandler we give to CommandSpawner is self.log.warning04:49
wgrantWhich, in a LaunchpadCronScript, causes an OOPS.04:49
jtvThen that should probably just change.04:49
wgrantIdeally we would tell a-f not to spam crap to stderr.04:49
wgrantBut that sounds more difficult than s/warning/info/04:49
jtvWell, be the first kid on your block to fix a thousand oopses today this week!04:51
wgrantAnd not hugely more rewarding.04:51
wgrantI'm not allowed to :)04:51
wgrantBut maybe.04:51
jtvBorrow abentley's certificate.04:51
jtvIf it's Critical and gets in the way of normal work…04:52
jtv(Which would equally be an excuse for me, so I could pick it up if you can't)04:52
wgrantCritical isn't an excuse for you.04:52
wgrantBeing in scripts that you're working on is.04:52
jtvI was thinking of the "gets in the way of normal work" part, but yes.04:53
jtvMeanwhile, I need to upload test packages to the security pocket & a partner archive for further publish-ftparchive testing.04:53
jtv(Have you ever used the python version?)04:53
wgrantYou can't build in security directly, so you have to copy to elsewhere.04:53
jtvthat un-confuses me.  :)04:53
jtvAnd partner?04:54
wgrantpartner you just upload with a component of partner.04:54
wgrant(that is Section: partner/SOMESECTION)04:54
jtvThat's in the .dsc?04:54
StevenKAnd debian/control in the unbuilt04:55
wgrantSet it in debian/control.04:55
wgrantdpkg-buildpackage will put it in the .dsc04:55
wgrantIf you edit the .dsc directly, there will be great sins to atone for.04:56
StevenKHow should I search for truth in Storm? PillarName.active is True or PillarName.active == True ?05:05
StevenKAlthough I seem to get inactive results in either case05:06
lifeless==True is what most of our code does05:10
lifelessthis isn't good SQL05:10
lifelessbut that  should be changed in storm05:10
StevenKI'm still concerned I'm getting inactive results when both inner-selects have PillarName.active == True05:11
lifelesswhats the full query?05:11
StevenKlifeless: http://pastebin.ubuntu.com/656105/05:12
lifelessStevenK: why the ALL ?05:14
StevenKWithout the ALL it would not return the rank 100 result sometimes05:15
lifelessthe implicit distinct on a UNION is on all the columns05:17
lifelessI suspect a bug in your _filter - it could explain both situations (the current confusion and the rank 100 missing sometimes)05:18
StevenKlifeless: I have two subclasses, for one of them I want a filter05:19
StevenKlifeless: If you want the actual query that the code produces, I can get that for one of the cases05:20
lifelessStevenK: I'd like to see the actual query postgresql sees05:21
StevenKYes, I was going to get the query from postgres's log05:21
lifelessStevenK: (or run with LP_SQL_DEBUG=1)05:21
wgrantStevenK: 'is True' can't work, '== True' does.05:28
StevenKLP_DEBUG_SQL=1 and doctests suck05:31
jtvHah.  System death.  Just what I needed on the day I discovered I left my power supply in Europe.05:32
StevenKlifeless: http://pastebin.ubuntu.com/656113/05:36
StevenKlifeless: I don't like the look of the "AND NULL"05:36
lifelessthats your _filter; and yes, thats a little worrying ;)05:37
StevenKlifeless: I only need to filter for one case -- I suspect it is None for the other case05:38
lifelessa better way to construct things would be a list05:38
lifelessAnd(*clauses) [or skip the and, find's default join is AND05:39
StevenKlifeless: That looks like a better query. Sort of05:51
StevenK.contains_string() is just shit SQL05:51
lifelessyou should be able to drop the ALL too05:52
lifeless(unless you specifically want it)05:52
StevenKThis query is based on one that Curtis wrote for me, and that used UNION ALL05:53
jtvlifeless: the ALL in a UNION is usually something you want to keep if possible.05:55
lifelessjtv: why?05:56
jtvSaves a filtering pass.05:56
jtv(And thus, potentially a sorting pass)05:56
lifelessjtv: only if its unsorted though?05:56
lifelessjtv: and all our vocabs are sorted05:57
jtvIt depends on the details, which I don't know and prefer not to get into right now; what matters is the uniqueness of entire rows, and chances are that the planner can't determine statically that that's not an issue.05:58
lifelesssure, thanks for mentioning this05:59
jtv(Chances are that it could in theory, but for it to try might significantly increase the run time of very fast and very frequent queries)05:59
jtvStevenK: what was the fs root for process-upload again?05:59
jtvCan't we make this a configuration item at some point?06:00
wgrantNot really. There are several queues in active use.06:01
wgrantThe two poppy queues (there were four, now only two), the buildd-manager queue, the sync queue, the backdoor queue.06:01
* jtv sobs quietly06:02
jtv"why does it all have to be so _hard_?"06:02
jtvOh for Kibo's sake… battery critical already!?06:04
wgrantIs lib/canonical/launchpad/webapp/templates/launchpad-model.pt used?06:06
wgrantIt was added in r13548 and is buggy.06:06
wgrantBut grep shows nothing.06:06
rvbaGood morning.07:19
adeuringgood morning07:36
henningemoin adeuring!07:37
adeuringhi henninge!07:37
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: henninge | Critical bugs: 240 - 0:[#######=]:256
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
stubWe are going to need a report on what db patches have been applied to (production, staging, qastaging) vs. what have landed in what branch.08:35
stubIs there a smart way of seeing what files exist in the database/schema directory of lp:~launchpad-pqm/launchpad/db-devel besides checking out the tree?08:36
bigjoolsStevenK: bzr ls08:39
bigjoolsStevenK: bzr ls08:39
StevenKOr bzr ls08:39
StevenKbigjools: FAIL08:39
bigjoolsstub: bzr ls08:39
* bigjools kicks auto-complete in the spuds08:39
stubSeems to be downloading a heap, but that likely doesn't matter on the LAN.08:40
stub1.7MB and counting...08:40
stubIs this going to download the whole tree?08:42
lifelesshmm, it would be good for the qatagger to do this, roll it into the same report08:42
lifelessstub: no08:42
lifelessstub: but it will be downloading pack data, and if you are behind a broken http proxy this can get quite scattered08:42
stubOoh... this is ssh. Wonder if HTTP goes faster locally for this sort of thing?08:43
stubfinished now. should be fine on the lan. ta.08:43
stubAnd using the recursive option might help08:44
lifelessstub: or just ls database/schema08:44
stubbzr ls lp:~launchpad-pqm/launchpad/db-devel was what I first did, which strangely enough got me the top level directory listing.08:44
lifelessstrange that08:45
stubIs there anything stopping bzr on devpad being upgraded? Missing -d, -k on that command.08:47
stub bzr ls -v lp:~launchpad-pqm/launchpad/db-devel/database/schema seems to do what I want with the old version08:50
stubIf course, if I want to show revisions changed as well I should probably jump in and use bzrlib rather than try to parse the output of bzr log08:58
lifelessnothing stopping it being upgraded08:59
lifelessstub: I'd seriously consider patching the qatagger for this08:59
lifelessstub: the only tricky bit would be knowing what patches are live; perhaps a query page for that.09:00
stublifeless: That could be a good hook.09:00
lifelessstub: why does the garbo merge depend on the bugsummary rollup peformance patch?09:01
stubI was considering a tabular report   db | db | db | branch | branch , with the db columns boolean and the branch columns a list of revisions the patch was touched in.09:01
stubBut maybe this is better solved with similar process like qa-foo tags?09:02
lifelessstub: what are we solving ? [for clarity, rather than me guessing :P]09:02
stublifeless: Because the db patch not only attempted to optimize the stored procedure, it added an optional 'batchsize' argument to the rollup function09:02
lifelessstub: ah09:02
stublifeless: juggling merges of code that depend on database patches being applied09:03
stublifeless: nothing urgent in there, so I've just added that branch to my todo list. With frequent merges, it shouldn't be a problem09:03
lifelessstub: so, http://bazaar.launchpad.net/~launchpad-pqm/launchpad/db-devel/revision/10832 looks like a hot patch09:03
stubIt is, and I will be applying it live shortly with one of deryks, but the test suite won't pass for the garbo branch without that patch in the tree.09:04
lifelessso what I've been recommending folk do is get the patch live and then land the patch to devel, and then dependent patches09:05
lifelessthis depends on us getting the latency of application down09:05
lifelessbut avoids lots of cherrypicks and hard-to-qa stuff in db-devel09:05
lifelessperhaps this is wrong09:05
lifelessstub: so the report; uhm; I would hope that any code which /needs/ a db patch would fail tests without it.09:06
lifelessstub: I think a report is very useful to have.09:06
stublifeless: agreed on both09:06
lifelessdevs probably can look in a source tree easily enough for something they care about09:07
lifelessthe thing devs /cannot/ do today is determine whether a patch is live without nagging a losa / gsa/ dba09:07
wgrantShould we just have a trivial view which returns the applied patches?09:08
stubyer, the important thing is what patches are on what db (which could be done with a view in Launchpad)09:08
stubThe report would present all that info in one place though, as well as any interesting trivial like a db patch that was modified after landing in a particular tree.09:08
wgrantSounds like it might belong in the deployment dashboard.09:09
lifelesswell, thats why I was suggesting qatagger.09:09
lifelessunapplied db patches09:09
wgrantI'd prefer another data provider that lpqateam.canonical.com watches.09:09
wgrantRather than forcing it into qa-tagger.09:09
wgrantIt doesn't seem to be a natural fit.09:10
* lifeless shrugs09:10
lifelessthe biggest ROI seems to be on a view for what-patches-are-live-on-this-server09:11
bigjoolswgrant: can we talk about initialisation checks now?09:26
bigjoolsthat scared him off09:31
wgrantbigjools: Hi.09:56
wgrantbigjools: http://jam-bazaar.blogspot.com/2009/11/memory-debugging-with-meliae.html10:32
daniloshenninge, hi, do you mind reviewing https://code.launchpad.net/~danilo/launchpad/bug-814580-pre-cleanup/+merge/69980?11:00
henningewgrant: Hi!11:01
henningewgrant: "Needs information" on https://code.launchpad.net/~wgrant/launchpad/iseriesbugtarget/+merge/6995111:01
henningedanilos: sure11:02
danilosstub, lifeless: I've got two DB patches up for your review, one is "hot", another is "cold" (and I don't care about getting that one done "soon", since it's a table rename)11:02
daniloshenninge, thanks11:02
henningedanilos: Relative packages in zcml? Are we doing that nowadays?11:03
wgranthenninge: It needs a bug?11:04
henningewgrant: well, some information about the motivation for the chage.11:05
wgrantIndeed, but not a bug :)11:05
henningewgrant: there must be some code in use (or in future use) where this will be used.11:05
henningewgrant: yeah, probably, because it needs no qa.11:06
wgrantWell, there already is one case: shouldIndentTask. I thought the utility was fairly clear, regardless of future specifics. But I shall update the MP with the real intent.11:06
daniloshenninge, there's a bunch of that in existing .zcml, and this makes it easier to adhere to our line length limits (though, it makes it harder to grep for stuff)11:14
daniloshenninge, I am not too attached to the formatting so if you want, I can make it complete11:14
henningedanilos: I was just wondering. You can leave that as it is.11:15
=== Ursinha-afk is now known as Ursinha
henningedanilos: lines 255, 261, 303: I'd do full indentations in that case.11:17
daniloshenninge, what do you mean? 4 spaces? (this is how Emacs python-mode does it by default)11:18
henningedanilos: also, shouldn't test_translationpackagingjob be renamed, too?11:18
daniloshenninge, translationpackagingjob is not renamed11:18
daniloshenninge, ideally, it should11:18
daniloshenninge, or well, not, because that one is for the Packaging links being introduced/removed11:19
danilos(it should be renamed in my follow-up branches where I add the TemplateChangeJob)11:19
henningeoh, I mixed that up.11:19
henningedanilos: never mind about the indentations, they work for me the way they are.11:20
henningedanilos: just needed something to complain about ...11:20
henningedanilos: r=me ;-)11:20
daniloshenninge, excellent, thanks11:24
daniloshenninge, btw, how familiar are you with zope events and testing them? (basically, I wonder about testing IObjectModifiedEvent on potemplate, and the event doesn't fire if I just set potemplate.name to something)11:32
henningedanilos: Zope what? ;-)11:33
henningedanilos: no, I am not familiar with th em11:34
daniloshenninge, ack :)11:34
wgrantdanilos: You need to create a Snapshot and then notify() the ObjectModifiedEvent manually, unfortunately.11:34
daniloswgrant: really? what I find weird is that IObjectCreatedEvent and IObjectRemovedEvent are tested in the same file (albeit on a different object) and they work just fine; is this specific to the Modified event?11:35
wgrantdanilos: Those two are easy.11:36
wgrantThere are no field changes to take care of.11:36
wgrantObjectModifiedEvent has to diff the objects.11:36
daniloswgrant: true, ok, just knowing that's what I've got to do is helpful enough, it kinda felt like cheating11:36
jmlif you use dput to upload to a PPA that doesn't exist, when do you get the error message?11:42
wgrantjml: An email after 0-5 minutes.11:42
jmlwgrant: thanks11:43
wgrantYes, yes, this sucks :)11:43
jmlAnd, IIRC, making it not suck requires message queues and some nebulous amount of rejiggering.11:44
bigjoolsit could do that check in poppy along with the GPG check11:44
wgrantTo do it properly, yeah.11:44
wgrantbigjools: The amount of DB access it has now is already problematic and excessive :(11:44
wgrantWe will have a message queue within months.11:45
bigjools??? it's tiny11:45
jmlfor my part, I could *probably* get away with LBYL.11:45
wgrantAnd the world will be a better place.11:45
wgrantbigjools: Yes, but it's existent.11:45
wgrantbigjools: This makes DB upgrades harder, makes it much more fragile, leaves it stuck in our tree...11:45
daniloshenninge, there's another one I need reviewed (just need to fix this problem with event firing for a single test, rest is all good): https://code.launchpad.net/~danilo/launchpad/bug-814580/+merge/6997811:46
=== stub1 is now known as stub
henningedanilos: don't you have any shorter ones? ;-P11:51
gary_posterthanks for review henninge :-)11:53
henningegary_poster: you are welcome11:53
daniloshenninge, heh, I do but they are DB patches :P11:55
henningedanilos: ah, no thanks ;-)11:55
henningedanilos: I'll just do this one, then ... ;-)11:55
danilosthanks again :)11:58
henningedanilos: I remember that this kind of change used to be a DB change. Did that change? ;)12:01
daniloshenninge, adding a new value to the enumeration isn't :)12:02
wgrantWell, it has some similar consequences.12:02
wgrantYou have to be sure that various components of the system will cope with not knowing about it.12:02
wgrantWhich will normally make stuff OOPS.12:02
daniloswgrant: right, that has been accounted for12:03
henningedanilos: ok, if you say so. Don't blame me if it can't be merged .... ;-)12:03
wgrantIt's mergable, but it might break production :)12:04
daniloshenninge, heh, fair enough12:04
henningewell, that's not that bad, then.12:04
danilosnah, this is a translation packaging job type, so if it breaks anything, it's going to break that, and that needs fixing anyway12:05
henningeI once tried that and PQM wouldn't merge it into devel. (I think that's where it failed)12:05
henningebut that is > 18 months ago.12:05
daniloshenninge, wow, weird12:05
=== benji changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: henninge, benji | Critical bugs: 240 - 0:[#######=]:256
wgrantjml: Are you able to QA your PPA API thingy?12:47
jmlwgrant: I'm in the middle of something right now. you lining up for a deploy?12:48
wgrantjml: Checking up on EU/US QA so I don't have to do much tomorrow, since I'm not allowed to.12:49
jmlwgrant: essentially, I can do it, provided someone else can grant & revoke commercial admin privs for me, but I would rather not.12:50
wgrantk, I might just do it tomorrow, if nobody does it in the meantime.12:50
wgrantSince we are 30 revs behind now :/12:50
=== jtv is now known as jtv-zzz
bigjoolswgrant: is this the create-as-private thing?12:59
wgrantbigjools: Ja.13:00
bigjoolswgrant, jml: qa-bad I think.  My private=False parameter is ignored.13:12
wgrantI actually don't see any logic that sets private = True...13:14
StevenKThe whole point is to call it via the API13:17
wgrantI mean, there is nothing in createPPA that uses the argument.13:17
wgrantExcept for validatePPA.13:17
wgrantbigjools: Can you roll it back, please?13:19
bigjoolsI'm sure a maintenance team can do it, I'm kinda busy13:19
bigjoolsanyway it can roll out, it's not a blocker13:19
wgrantMmm. It's fairly misleading to have a 'private' argument that does nothing.13:20
bigjoolsaffects like 7 people13:20
wgrantBut I guess the set of affected users is small.13:20
bigjoolsoddly createPPA is only exported on version=beta13:20
StevenKIf it doesn't block deployment then file a bug saying it doesn't work and move on?13:21
bigjoolsjust re-open the old one13:21
bigjoolsmark it qa-ok13:21
cody-somervillewgrant, This is probably a stupid question, do you have the necessary permissions to set it private?13:23
wgrantcody-somerville: No.13:23
bigjoolsI do, and I tested it13:23
StevenKcody-somerville: However, wgrant did state the code didn't *do* anything with the flag.13:23
* bigjools wonders what the tests look like for that change13:24
StevenKI think there is a validatePPA test only13:24
wgrant[r=julian-edwards] :P13:24
StevenKAnd no end-to-end test that I recall13:24
bigjoolswgrant: :(13:24
bigjoolsnot one of my best reviews13:24
StevenKDon't do that13:25
* wgrant sleeps.13:28
henningeabentley: bug 81924113:33
_mup_Bug #819241: TranslationMergeJob migrates only POTMsgSets and no translations <upstream-translations-sharing> <Launchpad itself:Triaged> < https://launchpad.net/bugs/819241 >13:33
henningeabentley: bug 81458013:34
_mup_Bug #814580: Merge/split messages from all sharing templates <translations-handoff> <Launchpad itself:In Progress by danilo> < https://launchpad.net/bugs/814580 >13:34
abentleygary_poster: about the jsoncache, I didn't understand what you meant by : My preferred solutions might be long poll pushes, and/or MVC in client-side code (which in isolation would only address part of the "curentness" problem, but would be better than what we have)13:51
abentleygary_poster: how would MVC help?13:51
gary_posterabentley, right.  MVC in isolation--by which I mean edits change a model, and the model is updated from the server in isolation, and any connected model updates need to be explicitly connected/requested--gives you some sanity within a given page.  Multiple displays based on the same data will agree.14:01
gary_posterThis will be sufficient in N% cases, where I suspect N is relatively high; and it will involve calculating a lot less data.  The tradeoff is full page correctness/timeliness with indiscriminate data loads (jsoncache + an update mechanism such as MVC) vs. possibly good-enough correctness and less cost of gathering data with specifically requested data loads (MVC "in isolation").14:01
abentleygary_poster: If "connected model updates need to be explicitly connected/requested", the only way to do that in our current web service is with one roundtrip per object, which doesn't give good performance.14:03
gary_posterabentley, sure.  you are building a new mechanism, though, so a new mechanism could be built.  And so far a single model update has been sufficient for the (limited) cases I've been involved with.14:04
abentleygary_poster: Okay, I thought you meant MVC could help without new mechanisms, which is what I didn't understand.14:07
gary_posterabentley, it can and does, if your use case is sufficiently limited, as the ones I've encountered have been.  If there is merit in what I am saying, it is in the "80/20 balance" direction--that is, we usually don't need the cost of a full data reload14:08
abentleygary_poster: From a user's perspective, I think that two roundtrips per operation (one to write, one to read) is the maximum we should tolerate, so partial updates will only be acceptable if only one or two objects are affected.14:12
gary_posterabentley, sure.  Often writes include the new version of the affected object, though, which means you only need the write.  Anyway, I think you understand where I am coming from which I think was the goal of your question.  I don't need to convince you of my position.14:17
gary_posterHopefully what you have done will work out well, and if not, it will almost certainly be helpful in some cases at least.  If there are occasional performance problems, we can cross that bridge then, and if not, yay!14:17
abentleygary_poster: Here's an option that might please both of us: During a write operation, use server-side events to generically detect changes to the object cache,  return a delta as the result of the write operation.  What do you think?14:18
gary_posterabentley, in the abstract, yeah, I would like that--very nice.  ("in the abstract": IME we don't produce events reliably; but maybe we do it well enough that it would be nice functionality, and when it is insufficient, we can fix the event hookups.)14:21
abentleygary_poster: Cool.  Yes, I expect trailblazers would have to verify that sufficient events were generated for their use cases.14:23
gary_posteragreed abentley.14:23
gary_posterthat would be nice14:23
abentleygary_poster: Can you think of a way to check whether all of our views are LaunchpadViews (or provide getCacheJSON)?14:27
gary_posterabentley, I'm afriad you'd get a lot of false negatives, but you could use the component registry I believe.  I think it might give you a lot of views that are ones you don't care about for one reason or another, but maybe not.  Lemme see if I can get you a spelling...14:32
abentleygary_poster: I'm okay with a lot of false negatives.14:35
daniloshenninge, how's review coming along? (I'd be the first to admit it's not the nicest branch, and that testing leaves a bit to be desired)14:41
henningedanilos: sorry, distracted ...14:49
jmlbigjools, wgrant: huh.14:55
=== almaisan-away is now known as al-maisan
jmlthanks for the qa. I guess the test isn't doing what I thought it was.14:56
bigjoolsjml: and I suck at reviewing :(14:59
jmlOh. Duh.14:59
jmlIs that going to get reverted? Or am I ok to just patch what's in stable now?15:00
nigelbbigjools: Didn't know you wwere big on cricket ;-)15:00
bigjoolsnigelb: I don't like cricket.... oh no .... I love it-a15:01
bigjoolsjml: it can land15:01
bigjoolspatch away15:01
nigelbbigjools: ha! shoulda poked you around world cup time ;)15:01
bigjoolsnigelb: who cares about the WC :)15:05
bigjools50-over cricket will die15:05
nigelbT20WC? ;)15:05
nigelbThough, I don't watch cricket much personally. Its all that place in our room's TV. Got some mad fans as roommates :)15:06
=== al-maisan is now known as almaisan-away
gary_posterabentley: http://pastebin.ubuntu.com/656454/ .  There will be some duplication for the registratons of each layer.15:08
bigjoolsnigelb: we are T20 champs :)15:08
abentleygary_poster: Thanks very much.15:09
gary_posterabentley, I forgot, you should run that within bin/py, and you should start out with15:09
gary_poster>>> from canonical.launchpad import scripts15:09
gary_poster>>> scripts.execute_zcml_for_scripts()15:09
nigelbbigjools: wha? when? It was us once and Pakistan next.15:09
bigjoolsnigelb: http://www.cricket20.com/db/t20_wc/default.asp15:10
gary_posterhttp://pastebin.ubuntu.com/656458/ fwiw15:10
nigelbbigjools: ha, I'm behind times apparnetly15:11
bigjoolsnigelb: you may keep weeping15:12
=== almaisan-away is now known as al-maisan
jmlwould appreciate a review for that one15:31
jmlfixes a qa-bad15:31
jmlhenninge: ^15:35
=== al-maisan is now known as almaisan-away
daniloshenninge, I am off now, so if you have any questions re review, they'll have to wait until tomorrow; cheers15:46
henningedanilos: np, take care15:46
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: benji | Critical bugs: 240 - 0:[#######=]:256
henningejml: r=me15:50
jmlhenninge: thanks. can you please land it? I don't have commit privs.15:50
henningejml: sure15:50
henningejml: please set a commit message15:51
jmlhenninge: done15:51
henningejml: I thought we had created a team for people like you. What was it called again?15:52
henningebut I guess it does not have any special privs yet.15:52
jmlhenninge: correct on both counts.15:53
jmlcanonical-launchpad-emeritus, I think15:53
henningeyes, that's what I meant15:53
henningejml: "Use --no-qa, or link the related bugs to the branch"?15:55
henningeec2 land wants a bug15:55
jmlhenninge: the latter. the bug number is in the branch name.15:55
* henninge just figured that ... ;-)15:55
henningesomtimes I type faster than I think15:56
benjirvba: there are some conflict markers in https://code.launchpad.net/~rvb/launchpad/api-add-comment-bug-798522/+merge/7003516:09
=== matsubara is now known as matsubara-lunch
rvbabenji: I just pushed a revision fixing the conflict.16:10
adeuringbenji: could you have a look at this mp: https://code.launchpad.net/~adeuring/launchpad/bug-739052-2/+merge/70044 ?16:17
benjiadeuring: sure16:17
jmlif I have a form where a user is giving me 'ppa:foo/bar', should I parse it myself, or is there something that'll do that for me?16:19
bigjoolsjml: not heard of anything in LP but the dput code might16:19
jmlhmm. doesn't look like it.16:22
sinzuijcsackett, ping16:23
jcsackettsinzui: pong.16:23
sinzuijcsackett, I have lost track of time. Do you have time to mumble?16:23
jcsackettsinzui: certainly.16:24
=== beuno is now known as beuno-lunch
benjiadeuring: I'm done with https://code.launchpad.net/~adeuring/launchpad/bug-739052-2/+merge/7004416:31
adeuringbenji: thanks!16:36
benjimy pleasure16:36
jcsackettbenji: could i add https://code.launchpad.net/~jcsackett/launchpad/privacy-notifications-on-branches/+merge/70050 to your queue?16:46
benjijcsackett: sure; I'll look at it after lunch16:51
jcsackettbenji: thanks!16:52
jmlhow best to check if a person is a member of a team over the API? Listing .participants is the best way I can see atm.16:55
dobeyjml: looping through the team memberships is how i do it. and you also have to loop through memberships of any of those memberships which is also a team17:07
dobeybecuase for some reaosn, someone though it was a brilliant idea to have team and person be the same thing… :)17:08
mtaylordobey: zope's internal design rears its head again17:09
jml(team in list(person.super_teams)) seems to work17:10
dobeyjml: does that handle membership-by-proxy case?17:11
jmldobey: docs say it traverses17:11
jmldobey: and it picks up a private team that I'm a member of via Landscape (of all things)17:12
dobeyjml: but only becuase you're using the API as you, so you can see that, right?17:13
jmldobey: right. well, any member of that team could see it.17:14
dobeyjml: right. but that doesn't help my use case for tarmac :)17:14
jmldobey: what conceivable use case could you have for seeing data that you're not allowed to see?17:15
jmlyou can't see members of private teams unless you yourself are a member.17:16
dobeyjml: canonical is a private team, and all its members are not also members of the contributor-agreement team; and i have a tarmac plug-in that lets you check that people are legally valid contributors to a project17:16
jmlotherwise, they wouldn't be private17:16
dobeyand it's a pain that the bot user can't see the canonical team, since everyone in it can contribute17:17
jmldobey: well, make the bot a member of canonical, or convince sinzui to change the privacy model17:18
dobeywell, the bot shouldn't be a member of canonical. it's a bot, not an employee. *shrug*17:19
dobeyand i'm not sure the privacy model should change17:19
sinzuidobey, In a few months, we will have a mechanism to grant a user/team access to a project without placing the user in a role. This mechanism can and maybe added to teams. Private teams like their corporate owners to see what is happening inside them, and private teams like to subscribe non-members to archives17:21
dobeysinzui: sounds interesting. all i really care about is doing team.is_member(person) :)17:23
=== beuno-lunch is now known as beuno
=== matsubara-lunch is now known as matsubara
LPCIBotProject devel build #935: STILL FAILING in 5 hr 57 min: https://lpci.wedontsleep.org/job/devel/935/18:07
benjijcsackett: I'm a little confused.  If branches already have a "private" attribute, why not mark them as providing IPrivacy?18:08
jcsackettbenji: i think the setup for the attribute in IBranch vs IPrivacy is different. honestly i read the comment where private is create in branch and decided not to tamper at this stage.18:09
jcsackettone sec and i'll double check.18:10
jcsackettbenji: yeah, the IBranch interface defines it with several more parameters. is it safe to still mark branch as implementing IPrivacy, given IBranch sets it up differently?18:11
* jcsackett is not up on zope interface interactions.18:11
benjijcsackett: parameters?18:12
jcsackettbenji: e.g. readonly=True18:13
benjioh, are you talking about the web service API bits?  right, those are immaterial for in-process Python code18:13
jcsackettbenji: it's a parameter on the Bool declaration, which comes from zope.schema, right?18:14
benjijcsackett: in the Liskov substitution sense a branch can't provide IPrivacy because IPrivacy says that "private" is read/write, so we have two... amongst our many options are: 1) be pragmatic, it'll work if we say branches provide IPrivacy and no kittens will be harmed or 2) make an (identity) adapter from IBranch to IPrivacy that just returns the branch18:18
benjimy vote would be for 1; the code will be simpler (no hasattr check) and it captures the meaning of what's going on18:19
benji2 would be a close second18:19
jcsackettok, i'll go with 1 and remove the changes to the formatter.18:20
jcsackettbenji: turns out the problem is the branch is a "DecoratedBranch" which delegates Branch, so it has the private attribute, but doesn't convert to IPrivacy; i'm thinking i need to create an adapter for IDecoratedBranch to IPrivacy that just returns the Decorated branch, which as the private attr.18:40
benjijcsackett: since the decorated branch already has a "private" attribute, why not make it provide IPrivacy?18:42
jcsackettbenji is that safe since it delegates to IBranch (which it turns out already *did* implement IPrivacy?18:42
jcsackettif that's fine, i'll just do that; i always assume i'm going to break things when messing with this stuff.18:42
benjibe fearless18:43
benjiit should work fine, the object already has an attribute named what IPrivacy says it should be named and providing the information IPrivacy says it should provide (other than the read/write issue that we already discussed)18:44
jcsackettbenji: rock on.18:45
jcsackettbenji: just pushed changes up to LP.18:51
benjik, I'll take a look18:51
allenapHi benji, got time for a medium sized uncontroversial branch?18:54
benjiallenap: sure18:54
allenapbenji: Thanks :) https://code.launchpad.net/~allenap/launchpad/selected-differences-vocab-bug-817408/+merge/7004818:54
benjiallenap: I'm done with https://code.launchpad.net/~allenap/launchpad/selected-differences-vocab-bug-817408/+merge/7004819:32
allenapbenji: Cheers.19:32
benjijcsackett: I'm done with your's too (https://code.launchpad.net/~jcsackett/launchpad/privacy-notifications-on-branches/+merge/70050)19:33
jcsackettthanks, benji!19:33
=== matsubara is now known as matsubara-afk
jcsackettsinzui: when doing the new privacy notification for private teams, we're only adding it to the main team page, right?19:49
jcsackette.g. /~private-whatever/ but not /~private-whatever/+mugshots ?19:50
lifelessjcsackett: I would expect everywhere19:59
jcsackettlifeless: possibly, there was some talk of "primary" context in discussions. i suppose the better question is what was meant by "primary context" with regards to private teams..?20:00
lifelessjcsackett: so the question for you and sinzui is 'if someone is on <x page> and thinks its public, is it ok for them to publish the url.20:54
lifelessjcsackett: if not, then we should be pretty bold about helping them know, I think.20:54
lifelessI have to pop out - big medical day for lynne, I will be back in some hours :(20:55
=== benji changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 240 - 0:[#######=]:256
LPCIBotProject db-devel build #774: STILL FAILING in 6 hr 6 min: https://lpci.wedontsleep.org/job/db-devel/774/21:34
jelmer__wgrant: hi22:15
jelmer__wgrant: Did you see my email regarding QA?22:15
pooliehi all22:18
wgrantjelmer__: I replied to the bug.22:58
sinzuiStevenK, mumble?23:02
jelmer__wgrant: thanks23:04
jelmer__I guess I missed that.23:04
sinzuiwallyworld, https://code.launchpad.net/~sinzui/launchpad/person-picker-expand-0/+merge/7008223:13
wgrantjelmer__: I saw the bugmail before I saw the direct one (because bugmail still goes to my personal account), so it wouldn't have gone to you directly.23:15
wgrantjelmer__: How confident are you that you will be able to QA this in the next 12 or so hours?23:16
wgrantjelmer__: It is getting pretty bad.23:17
jelmerwgrant: That should be possible, I can do it first thing tomorrow morning.23:29
LPCIBotProject devel build #936: STILL FAILING in 5 hr 39 min: https://lpci.wedontsleep.org/job/devel/936/23:46

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