* maxb hopes the cell towers are only metaphorically down :-)00:03
lifelessmaxb: at least logically down00:08
huwshimiAnyone have any ideas why my tests failed? http://paste.ubuntu.com/570317/ (URLError: <urlopen error [Errno 111] Connection refused>)00:10
wgranthuwshimi: Both known occasional spurious failures.00:11
wgranthuwshimi: Land the branch manually.00:11
huwshimiwgrant: You mean just 'lp-land'? Is there anything else I need to do?'00:14
wgranthuwshimi: lp-land, yeah.00:14
wgrantlifeless: 6.3?00:14
lifelessbut shallow00:14
lifelessso felt it more00:14
lifelessmum, down in dunedin, felt it00:14
lifelessthumper: did you ?00:14
wgrantAh, very shallow, yes.00:14
wgrantAny major damage known yet?00:15
lifelesswater mains burst, some buildings down, more road cracks00:15
wgrant.au news sources haven't mentioned it yet...00:16
lifelessphone lines are down00:16
wallyworldlifeless: surely you're not asking thumper if the earth moved for him?00:16
wgrant5km deep!?00:16
wgrantThat's awfully shallow.00:16
lifelesswgrant: yup00:16
lifelessits being called an aftershock for now00:16
thumperlifeless: yes I felt it00:17
spivAh, I see geonet.org.nz has it as 6.3 rather than 3.1 now.00:17
thumperlifeless: quite a shaker here00:17
spivThat's quite a difference!00:17
lifelessit was felt in wellington too00:18
spivUSGS says 4km deep +/- 0.5km.00:19
wgrantlifeless: Why do you invoke PersonSet directly instead of using the utility?00:26
* lifeless shrugs00:26
lifelessI think we need an object for 'group of <type>'00:26
lifelessthe Sets look ideal for that, if parameterised00:26
lifelessI was heading slightly in that direction at the time00:26
lifelessfeel free to do it any which way00:27
lifelessdoing DI on these singletons seems fairly uninteresting00:27
thumperrumours abound in the office here that the christchurch cathedral is down00:28
lifelesspolice are saying that00:28
lifelessthough the degree of down isn't clear00:29
wgrantAh, now it's hitting the news here.00:29
wgrant'Witnesses said there were buildings down all around Cathedral Square in the city, with the church destroyed.'00:29
lifelessanother shock now00:31
lifelessrelatively gentle00:31
wgrantAh, the cathedral has just lost its steeple. Not tooo destroyed.00:36
lifelessthe bugger of it is that we're still waiting on a plumber having time to fix some shit for us - but other folk are more badly in need00:38
wallyworldanyone know why adding @operation_returns_collection_of(Interface) to a method with an existing @export_read_operation() decorator results in:00:40
wallyworldUnknownEntryAdapter: No IEntry adapter found for Interface (web service version: 1.0).  Encountered as a result of the entry interface None, field ''.00:40
wallyworldthere seems to be several other places in the code where the same pattern is used00:40
wallyworldand i can't find anywhere where adaptors are defined for those places00:41
wgrantwallyworld: You need to patch them in lib/canonical/launchpad/interfaces/_schema_circular_imports.py00:41
* wallyworld looks00:42
wallyworldwgrant: ah that looks like it. thanks.00:42
wallyworldi was getting a circular import when I tried using ISourcePackageRecipe instead of Interface00:43
wallyworldwasn't sure how to fix it but now i know :-)00:43
wgrantThat's quite a rock.00:44
* thumper stabs the compressed javascript00:44
wgrantwallyworld: Yeah, it's a bit awful :(00:45
wallyworldawful is one way to describe it :-)00:45
lifelesswallyworld: thats sumner00:45
lifelesswgrant: thats sumner; just around the hills from where our rental property was00:46
* wallyworld was wondering what sumner was :-)00:47
lifelesswallyworld: its a suburb00:49
wallyworldi know that now :-)00:50
wallyworldbut had to wait for you to post a subsequent message to figure it out :-)00:50
wgrantlifeless: Congrats!00:52
lifelesswgrant: thanks00:53
huwshimilifeless: Just saw your post: congrats!01:18
huwshimilifeless: My wife is three weeks ahead of yours.01:20
huwshimilifeless: Thanks. My first. You have others right?01:20
lifelesswe're late to the sprogging game01:21
huwshimilifeless: Oh, I'm thinking of someone else. Exciting times then01:21
spivlifeless: congrats!01:26
lifelessspiv: thanks01:26
wallyworldlifeless: you are always on irc etc, don't know where you found the time for species propagation :-P01:33
spivMultitasking, perhaps.01:34
wallyworldspiv: but python is single threaded :-)01:34
lifelesswallyworld: doesn't mean *I* am :>01:35
wallyworldlifeless: so you can type and do "other" things at the same time. must have been hard to set up your desk that way :-)01:35
lifelessno comment, keeping the workplace clean since 143601:39
lifelessbbiab, going to try and top up our supplies before supermarket shelves run dry - we have enough but its bland fare, better to have the remainder of fresh meats etc01:39
thumperwhat does this do?  --> ${objects/?key/webservice:json}02:16
thumperthe ?key has me wondering02:16
wgrantLiterally '?key'?02:18
wgrantAh, yes.02:18
wgrantthumper: It uses the value of the 'key' variable to continue traversal.02:19
thumperah... ok02:19
thumperthat makes sense02:19
wallyworldi can has review? https://code.launchpad.net/~wallyworld/launchpad/recipe-webservice-api/+merge/5068402:55
wgrant90def getBuilds():02:57
wgrant91"""Return a ResultSet of all the non-pending builds."""02:57
wgrantThat's an odd method name, if the docstring is correct.02:57
wallyworldwgrant: i didn't write it, but it does make sense if you realise there's also a getPendingBuilds() method02:59
wallyworldwhich returns the pending builds :-)02:59
wgrantwallyworld: We should export a sane API if at all possible, and that method name is insane.02:59
wgrantDoes the method need to not return pending builds?03:00
wallyworldwgrant: yes, it needs to not return the pending builds03:00
wgrantIs that useful for API users, though?03:00
wallyworldwgrant: there was a refactoring previously which changed those method names. i can't recall the exact circumstances now since i didn't do it03:01
wallyworldi guess the method names could be changed03:02
wgrantWe shouldn't be exposing suboptimal interfaces to people who are going to use them forever so we can never change them.03:02
wgrantWe can rename just the exports if required.03:02
wallyworldwgrant: so given there's 2 methods - getPendingBuilds() and getBuilds() - is it just the getBuilds() name you have a problem with?03:03
wgrantwallyworld: I think a single method with arguments may be better. But getPendingBuilds on its own is possibly OK.03:04
wallyworldwgrant: there used to be a single method with args and the refactoring converted it to 2 methods :-)03:04
wgrantWhy? TAL?03:06
wallyworldwgrant: not sure exactly. i was never involved in the decision, just noticed that it had happened03:07
wallyworldthe getBuilds() method returns all builds where status != NEEDSBUILD03:07
wallyworldso that could be successful, failed, whatever03:07
wallyworldgetNonPendingBuilds() sounds a bit funny, or?03:08
wgrantAhh, it's used by builds_for_recipe.03:09
wallyworldcomplete implies success03:09
wgrantI don't think exporting them as separate methods is useful.03:09
wallyworldi like finalised perhaps03:09
lifelesswallyworld: complete does not imply success03:09
wallyworldwgrant: so we could have an api just just gets all builds03:09
wallyworldi'll do this: getBuilds() returns everything and is exported. i'll add a getCompletedBuilds() which does what getBuilds() does now03:10
wallyworldsound ok?03:10
wgrantMaybe have getBuilds(include_pending)?03:11
wallyworldwgrant: that's what we had before the refactoring :-)03:11
wgrantlifeless: Tracebacks in OOPSes are very enlightening.03:12
wgrantlifeless: Could not work out where some queries were coming from... turns out they were in __storm_loaded__ in various places.03:12
lifelesswgrant: the 'is it a team' check ?03:12
wgrantlifeless: And is the distribution a derivative or not.03:13
wgrantQueries for Ubuntu on every distro load.03:13
lifelesslet me just say arrrrrrrrrrrrrgh03:23
wgrantahh, inTeam often issues two queries. That sort of sucks.03:31
wgrantIt's very tempting to preload all participation IDs at the start of the request...03:31
wgrantWe can get rid of a lot of queries if we just prefetch the user's participations and a few celebrities.03:32
wgrantlifeless: Have you thought about that at all?03:33
lifelessnet loss I think03:42
lifelessgetting one TP entry is very fast03:42
lifelesssome users have hundreds of TP entries and we'd only be looking at 2 or 303:43
lifelesswgrant: consider lying to objects instead.03:43
lifelesswgrant: that is, if we load an object from a context where view/edit is known a priori, grant it during the load, the way bugs _known_viewers gets data injected into it03:43
lifelessbug 72244703:44
_mup_Bug #722447: checking 'well known' teams requires two queries at startup and in tests <Launchpad itself:Triaged> < https://launchpad.net/bugs/722447 >03:44
wgrantlifeless: Getting 200 TPs takes 200 microseconds in the DB.03:44
wgrantI tried with person=103:44
lifelesswgrant: hot or cold03:45
wgrantThat was cold.03:45
lifelessconsider storm deserialisation - its not brillianrtly fast03:45
wgrantThis is probably the most trivial table in the DB.03:45
lifelesswgrant: perhaps you mean milliseconds ?03:45
wgrantIt's deserialising ints... it goes nowhere near Storm.03:45
wgrantNo, 0.2ms.03:45
lifelesswell, lets say I'm open to data on this03:45
wgrantI guess the table is so small that it may have been hot enough even on mawson.03:45
wgrantIt is just two ints...03:45
lifelesslaunchpad_qastaging=> select count(*) from teamparticipation where person=1;03:46
lifelessTime: 3.323 ms03:47
lifelesswgrant: its got 1.4m rows, so fairly small03:48
lifelessand yes, a narrow table - like bugmessage03:48
lifelesswgrant: I'm not saying no, I'm saying its not a no-brainer03:48
lifelesswgrant: if you bring back team names:03:50
lifelessTime: 1694.335 ms03:50
lifelesswgrant: it becomes a lot slower03:50
lifelessthat was 'select team.name from person as team, teamparticipation where teamparticipation.person=317562 and teamparticipation.team=team.id;'03:51
wgrantlifeless: Sure. But why would we want team names?03:51
wgrantOf course a join across a wideish table is going to be slow.03:51
lifelesswgrant: just bringing back ids is pretty useful.03:51
* wallyworld wants to stab windmill through the heart03:53
wallyworldAttributeError: 'AppYUIUnitTestCase' object has no attribute 'client'03:53
wgrantlifeless: It's completely sufficient for inTeam, though.03:54
wgrantJust not FF.03:54
lifelessits only sufficient for inTeam if the team id is known a priori03:54
lifelesswgrant: we can instead do an inTeam on PersonSet which would issue one fast query.03:55
lifelessinterestingly, teamparticipation seems to have redundant entries for code in offspring hackers - three rows03:57
lifelessdoh, bad query03:59
wgrantlifeless: But that would require restructuring huge amounts of code.04:05
wgrantIf we prefetch participations then later prefetch relevant persons, we can make all of the permission checks free with very little code.04:06
lifelesswgrant: my concern is three fold:04:07
lifeless - This sort of thing eventually becomes an albatross : its hard to undo an optimisation like you're proposal04:08
lifeless - its not inherently scalable04:08
lifeless - its very data set specific04:08
lifelesswe should be able to get down to 4 or 5 teamparticipation checks per page without any special case04:08
lifelessI think we should do that first - thats a whole 30ms : we're dealing with 10000ms pages at the moment, so lets reserve the special cases until they are a big win, not a little win04:09
wgrantVery data set specific?04:11
wgrantThe inTeam thing needs to be done in a single place, and it will optimise every permission check in the project.04:12
lifelessat the cost of loading a potentially unbounded dataset on every request04:13
lifelessthats a risky design04:13
lifelessnow, if you were to load just the tps relevant to the teams you'd also preload, that addresses that scaling factor04:13
lifelessbut it still doesn't address the data set specific nature04:13
lifelessby which I mean that the teams relevant to a given page depend on the pillar, the privacy settings, the bug settings etc04:14
lifelessand we should be doing *at most* 2 queries for the same stuff today04:14
lifelessso the maximum possible win is 30-40ms on a page.04:14
lifelessi don't understand - given the existing caching - how you can save more than that04:15
lifeless\o/Test results: bug-717394 => devel: SUCCESS04:15
wgrantlifeless: BugTask:+index does several for each task and nomination.04:16
lifelessso, you'll need to eager load all the /teams/ for that , right ?04:17
lifelesseven if we had the persons ids, we'd still trigger - in some cases - 100 queries04:18
wgrantRight, so I could precache participations at the same time.04:18
wgrantBut getting all of them is *so* cheap for even our worst case right now.04:18
lifelessbut its not incrementally useful given that we have to do the team eager loading anyway04:18
wgrantFor this particular case, no.04:19
wgrantBut it's harder to make it specific to this case, and it is less globally useful.04:19
lifelessI really think its better to sneak up on this04:20
wgrantWe can solve all of them ever with less work than solving this specific case, with the only risk being that someone joins a million teams, in which case we have bigger problems.04:21
lifelessperhaps I'm misunderstanding bu that sounds completely false04:21
lifelesssee above under having to special case this situation anyway04:23
lifelesswe've no particular reason to think that any of the late evaluation triggers would not need special casing to load their teams.04:23
lifelessAnd lots of reason to think that they *will*, even with a seed-at-start-tp-list-for-the-current-user04:23
lifelessits less work to write one eager-load-for-doing-a-inTeam-check helper and use it where we need it than to write a tp loader, change inTeam to be handle that extra cache, write a eager loader for groups of teams, and apply that in the same places04:25
wgrantWhat part of my statement above was completely false?04:25
lifelessthat it was less work04:25
wgrantIf we have a global one, all we need to do is preload persons every time.04:25
wgrantIf we don't, we have to preload persons every time and then possibly preload participations if we think they will be necessary.04:26
wgrantWe *will* need at least one participation check on edge authenticated page.04:26
wgrantI think that one check might as well do the trivial extra work that lets it fulfil *every* subsequent check.04:27
lifelesss/edge/each/ ?04:27
wgrantUh, yes.04:27
lifelessthis isn't the way I'd do it04:28
lifelessI think its a poor design04:28
lifelessif you're doing the work, you get to choose04:28
lifelessI've laid out my concerns04:29
lifelessat this point we're clearly missing each others point, or something.04:29
wgrantI think so.04:29
lifelessI *will* insist that if you do it, you instrument it04:30
* StevenK suspects dogfood is now missing recipes04:30
lifelessso that we can see the overhead clearly in the PPR or a similar system04:30
StevenKWhere can I see feature flags?04:31
wgrantStevenK: Watch out, DF will be a bit broken.04:31
lifelessthe one guaranteed thing is that users will do crazy things with teams and memberships and so on04:31
wgrantIt needs a new DB.04:31
lifelessStevenK: /+feature-rules04:31
StevenKwgrant: Rargh, I need it :-(04:31
wgrantStevenK: Add 'code.recipes_enabled default 0 true'04:31
wgrantStevenK: It should mostly work.04:31
wgrantJust bugs will do very strange things.04:31
wgrantAnd it can't run latest db-devel.04:31
wgrantI merged devel into it this morning, though.04:32
StevenKBy accident? :-)04:32
StevenKwgrant: Recipes enabled, let's see04:33
StevenKwgrant: We can probably sort out a new DB for it soonish.04:33
lifelessif you've still got disk space04:34
wgrantlifeless: So, I agree that unconditionally loading an unbounded and excessive dataset is a bad thing.04:34
wgrantlifeless: We still have 110GB free, with a DB dump and one full DB.04:34
lifelesswgrant: whats \l+ show04:34
wgrant launchpad_dogfood | postgres | UTF8     | C         | C     |                       | 222 GB  | pg_default |04:35
lifelessso, you're going to lose 80GB of that 11004:35
lifelessthe db is ~300GB now04:35
wgrantI was thinking it was ~260.04:35
wgrantBut maybe that's old.04:35
lifelessit was04:35
lifelessit was 290GB during the last db deploy IIRC04:35
StevenKTBH, we tend to update dogfood by scorched earthing the DB and re-importing04:37
StevenKWhich is a little ... brutal04:37
lifelesspoint is, you can't run a db and a dump now04:37
wgrantHm, I wonder if I can order \d+ by size, or if I have to go querying manually...04:37
StevenKlifeless: If I'm reading what wgrant said correctly, we already have a full DB and a full DB dump on dogfood. So if we delete both, we can get another dump and import it04:38
wgrantThat's how it's normally done.04:39
wgrantSince the dump compresses well.04:39
StevenKPity it takes mawson 40 hours to import04:39
lifelessStevenK: you can get another dump, but the dump will be bigger too; if its 30GB bigger you'll run out of disk space mid import04:39
lifelesswell, 90% or so04:39
StevenKlifeless: Er, we have 110GiB free?04:40
wgrantIt's not 30GB bigger, fortunately.04:40
StevenKHow does a 30GiB increase to both eat 110?04:40
wgrantStevenK: The dump is much smaller than the full DB.04:41
wgrantThe DB itself has grown by 80GB.04:41
wgrantThe dump will also have grown by a few.04:41
StevenKEither I'm missing something or lifeless is. I'm not sure who yet.04:41
wgrant110 - 80 - a bit is almost 004:41
lifelessStevenK: you have 110GB free04:41
lifelessStevenK: the db is 80GB bigger, that means you'll have 30GB free for the dumps increase in size.04:42
wgrant public | branchrevision                            | table    | postgres | 26 GB      |04:42
StevenKI think there's a good 12 or so GiB I could free in a hurry if i need to.04:42
wgrantAnd then there are four revision-related indices that are about 15GB each :/04:42
wgrantThat's like a third of the DB.04:43
StevenKlaunchpad@mawson:/srv/launchpad.net$ ls -lh | head -n 2 | tail -n 104:43
StevenK-rw-r--r--   1 launchpad launchpad  8.0K Aug 27 16:50 ,x04:43
* StevenK chuckles04:43
wgrantYeah, 100GB goes to branchrevision.04:45
StevenKCan't we delete that monstrosity yet?04:45
wgrantThat's 100GB of 222GB.04:46
wgrantNot 300GB.04:46
wgrantThat is huge.04:46
StevenKlifeless: I suspect you didn't close bugs after the deploy you requested.04:46
lifelessStevenK: it was midnight. I suspect that too04:47
lifelesssigh buildbot04:47
lifelessStevenK: did you get any traction on why jenkins appeared more fragile than buildbot?04:48
wgrantBecause windmill.04:48
wgrantIt was fine until windmill :(04:49
StevenKIt's been behaving fine this week and last, mind you.04:49
StevenKBut Windmill makes me very sad.04:50
lifelesswindmill makes its mother sad04:50
wgrant    "revisionnumber_branch_id_unique" UNIQUE, btree (branch, id)04:50
wgrant    "revisionnumber_branch_sequence_unique" UNIQUE, btree (branch, sequence)04:50
lifelessbug 1 timeout ><04:50
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Invalid by compscibuntu-bugs> <EasyPeasy Overview:Invalid by ramvi> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <The Linux OS Project:In Progress> <metacity:In Progress> <OpenOffice:In Progress by lh-maviya> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:New> <Ubuntu:I04:50
wgrantThat first index is a bit off, since id is the pkey...04:50
lifelessit may be used04:51
wgrantlifeless: Which query?04:51
lifelessalternatively we could rely on heap joins and just do single column indices04:51
lifelessdunno yet04:51
wgrantHere too. That's a bit upsetting.04:52
wgrantDeath by a couple of hundred Person queries, I guess.04:53
StevenKlifeless: Thanks for the bug closures.04:53
lifelessStevenK: thanks for the reminder; the list was at the top of LPS so easy to do (you could have done it :P)04:53
StevenK"Meh" :-)04:53
wgrantlifeless: I realise I'm blocking the QA pipeline, but I need to check with sinzui on the best way to QA the DMP.04:54
wgrantAnd he wasn't around yesterday.04:54
lifelesswgrant: we can't run it in staging04:54
lifelessso, the answer is 'hope'04:55
wgrantMm, I guess.04:55
* wgrant untestables.04:55
lifelesssame with branch mirroring04:55
wgrantWe can QA that.04:55
wgrantJust need to find a consenting victim and disable the rest.04:55
lifelesslooks new: 23 /    1  BinaryPackageBuild:+retry04:57
StevenKOn prod?04:57
wgrantArgh, not again.04:57
wgrantThat could well have been during the fuckage last night.04:57
StevenKCould it possibly be fallout?04:57
wgrantWith buildd-manager and p-u holding locks open for an hour.04:57
* StevenK high fives wgrant for having the same thought.04:58
wgrantI am really disturbed that nagios didn't notify us within a minute of the incident beginning...04:59
lifelessit was probably swapping04:59
wgrantAnd? A missing probe is a failed probe...05:00
lifelessits more nuance than that ;)05:00
StevenKwgrant: As a thought: a way to handle cancelling distro builds: add a new status: BuildStatus.REFUSED or so which process-upload will silently reject binaries. And then instruct buildd-manager to shoot the buildd in the head. Thoughts?05:00
wgrantStevenK: We can't cancel builds on the non-virt builders.05:00
wgrantlifeless: It *is*, but it shouldn't be.05:00
lifelesswgrant: talk to the netsaint designer05:01
wgrantMy Nagios days are hopefully over.05:01
StevenKNagios makes me sad, too.05:01
StevenKI used that enough at my last job.05:01
wgrantStevenK: Anyway, what were you doing to mawson?05:06
StevenKwgrant: Testing https://code.launchpad.net/~stevenk/launchpad/link-recipe-on-ppa-page/+merge/5069405:06
StevenKwgrant: Can has review? :-)05:06
wgrantStevenK: Could you QA thumper's thing while you're there?05:08
StevenKWhich 'thing'?05:08
wgrantRecipe FF changes.05:09
wgrantMain thing that needs testing is r-d-b05:09
wgrantOOPS syncing seems to be really slow.05:10
wgrantG332 still isn't there.05:10
StevenKwgrant: With the flag set, it runs, but there are no daily builds to build. I can reach into the db and set one if you wish05:10
wgrantStevenK: Could remove the flag and try again?05:10
wgrantIt needs to run fine without it.05:11
wgrantAnd be able to request builds.05:11
StevenKwgrant: Same output as with the flag05:12
wgrantStevenK: Could you staleify a recipe and try without the flag?05:12
lifelesswgrant: you were interested in OOPS: https://dev.launchpad.net/LEP/OopsDisplay05:13
wgrantlifeless: Excellent, looking.05:15
StevenKOh, bah, the recipe I forced to be stale has built recently05:15
* StevenK reaches back into the db05:16
wgrantDie forster die.05:16
thumperwgrant: we need an admin for that05:16
wgrantthumper: Or a mawson.05:16
wgrantAnd given the lack of admins this week, it is tempting to use mawson.05:16
wgrantIt's where we normally test daily builds, anyway.05:16
wgrantthumper: Also, do you plan to remove the unused key from the production configs?05:18
wgrantIf you don't, it will make me sad.05:18
thumperwgrant: yes I do...05:18
thumperwgrant: it will be part of the whole release process05:18
wgrantGreat. Just checking. There are lots of deprecated code keys left around from years ago.05:18
StevenKwgrant: Right, with flag disabled, and a recipe forced to be stale:05:22
StevenK2011-02-22 05:22:32 DEBUG   Recipe stevenk/terminator-test is stale05:22
StevenK2011-02-22 05:22:32 DEBUG    - build requested for Lucid (10.04)05:22
StevenK2011-02-22 05:22:32 INFO    Requested 1 daily builds.05:22
wgrantStevenK: Great, both the UI and script work. qa-ok it is.05:23
StevenKwgrant: Review? :-)05:25
wgrantStevenK: Oh, right, forgot about that.05:26
* wgrant does it.05:26
wgrantStevenK: That nasty lifeless wrote a distracting LEP.05:26
StevenKthumper: For the description branch, I just need the database patch?05:29
StevenKOh, no, I don't05:29
* StevenK fixes the code too05:29
thumperStevenK: primarily the flag on the storm column, and on the interface05:29
thumperthat should be it05:29
StevenKthumper: Both done05:30
StevenKthumper: In the model: description = Unicode(allow_none=False)05:30
StevenKthumper: So I guess that has to change too :-)05:30
* thumper nods05:31
thumperBTW, I'm done now05:38
StevenKthumper: Awww05:39
StevenKthumper: I was about to point you at the MP05:39
StevenKHm. ENOSTUB05:40
wallyworldlatest build failure - windmill timeout. can't see any obvious errors and the last reported test which timed out runs fine locally. i guess a force build is in order?05:41
lifelessStevenK: whats up ?05:41
StevenKlifeless: I was after a db number05:42
StevenKBut it can wait until stub does turn up05:42
lifelessprobably 4905:42
lifelessbut yeah, he should be aorund soonish05:42
StevenKwallyworld: Force away05:42
* wallyworld shakes fist at ec2 or windmill or someone, anyone :-(05:42
lifelessbranchrevision ||     136.01 tuples/sec05:43
lifelesswhee, that deployment glitch really messed the stats - 4.58 99th percentile05:44
lifelessflacoste: oh, the PPR needs to exclude the haproxy status page too05:45
lifelessflacoste: as well as opstats :)05:45
wgrantStevenK: Reviewed.05:49
* StevenK reads, hoping wgrant was gentle05:49
wgrantHeh. Not a chance.05:49
wgrantlifeless: Where's the dbr?05:49
StevenKwgrant: Hmmm. I think I will test how it behaves with deleted recipes05:51
StevenKwgrant: Second point. I wasn't sure how to get at that view directly, so I used the route I knew worked05:52
wgrantI think it may work as of this morning.05:52
wgrantBut it would have last week.05:52
wgrant*wouldn't* have last week.05:53
StevenKwgrant: First point: The method was a good place to start with, and did start out longer, I just didn't bump it from the model and interface into the TAL directly05:54
StevenKwgrant: Do you think it's worth the bother to move it?05:55
wgrantStevenK: I like to avoid bloating already bloated interfaces.05:55
StevenKtal:condition="context/sourcepackagerelease/source_package_recipe_build"> makes me sad.05:56
wgrantStevenK: As for getting the right view directly, canonical_url(spph, view_name='+listing-archive-extra') should do it.05:57
StevenKwgrant: Thinking it about, would it address your concerns if it moved from @property to @cachedproperty ? Since I doubt it's going to actually change05:57
wgrantStevenK: The speed is of no concern whatsoever.05:57
StevenKAccording to Julian, it is05:57
wgrantIt is no extra queries.05:57
wgrantSo it's no issue.05:58
wgrantYou can have the method on the view if you really want it.05:58
wgrantBut I would just have a long tal:define and base everything on that.05:58
StevenKwgrant: If you don't think it's ugly, like I wrote before, I can do that and remove it from the model and interface.05:59
wgrantStevenK: SPPH.sourcepackagerelease, SPRelease.source_package_recipe_build, and SPRB.recipe are all FKs, so subsequent invocations are not expensive at all.05:59
wgrantStevenK: It is ugly.05:59
wgrantBut it's ugly hidden away in a template.05:59
StevenKAnd it doesn't add code to SPPH and so therefore automatically good? :-)06:00
wgrantIt's also not *that* ugly.06:01
StevenKsteven@liquified:~/launchpad/lp-branches/link-recipe-on-ppa-page% grep -rc '+listing-archive-extra' lib/lp/soyuz/browser/tests/* | grep -vc ':0$'06:02
StevenKThat concerns me.06:02
wgrantStevenK: Probably all from Archive:+packages doctests.06:02
StevenKwgrant: No matches in lib/lp/soyuz/doc or lib/lp/soyuz/tests06:03
wgrantStevenK: Link-clicking, probably.06:03
StevenKwgrant: You mean, like I'm doing?06:03
wgrantStevenK: Yes.06:03
wgrantBut you are not a doctest.06:03
lifelessso tal defines can (in some situations) evaluate multiple times06:03
lifeless*if* the thing is expensive, thats a concern06:04
StevenKDon't make me turn it into one.06:04
lifelessjulian and I didn't figure out what causes that06:04
wgrantIt is three FK lookups.06:04
wgrantSo it's trivial.06:04
StevenKwgrant: Besides, I couldn't come up with a fool-proof way to get at the SPPH given a BPPH I just created.06:04
wgrantStevenK: BPB.current_source_publication doesn't work?06:05
wgrantI don't remember if I fixed the factory to create it in the right context.06:05
StevenKMeh, I think I'll ignore BPPH completly and just create an SPPH06:05
wgrantAlso, you don't technically need a BPPH.06:05
StevenKwgrant: Anyway, I shall fix it up tomorrow morning, and ping you06:06
wgrantDo you have any comments on the UI stuff?06:06
StevenKYou want a full stop at the end of the line I ended, that's it?06:06
wgrantI'd also like you to consider linking to the build instead of or as well as the recipe.06:08
wgrantAnd maybe turn the person into a link.06:08
StevenKThat view is already crawling with links06:08
wgrantIt is.06:09
wgrantBut at least the build is probably useful.06:09
StevenKI fail to see how, exactly06:09
wgrantSo I can check the build logs, mostly.06:10
wgrantTo see why it built strangely.06:10
wgrantAnd to see which revs it used.06:10
StevenKI already have the build, so I'm going to push back on turning the person into a link, but with suggested wording will look at linking the build in06:11
wgrantYou could possibly link "Built" to the recipe.06:11
wgrantTo the build, not the recipe.06:12
wgrantSo we have "_Built_ from recipe _Launchpad trunk_ for William Grant"06:12
StevenKYou forgot the full stop06:14
* StevenK ducks06:14
lifelessStevenK: why shouldn't the person be a link?06:15
wgrantThe icon can look slightly cluttersome.06:16
wgrantBut I would prefer it to be a link.06:16
wgrantEven with the icon.06:16
StevenKI wouldn't, and thumper agrees with me06:16
lifelessif its not a link06:17
lifelessyou need to show the unique username, not the display name06:17
lifelessto prevent spoofing06:17
StevenKWhat spoofing? We're showing information from something that's already been requested?06:19
lifelessso if the user doesn't matter, why show it at all ?06:20
StevenKBecause it may have requested by someone to build into their own PPA06:23
lifelessthen you should show who they are, not who they claim to be, no ?06:25
lifelessStevenK: whats the /objection/ to linking06:25
StevenKlifeless: As wgrant says, the icon can make the line look cluttered06:28
wgrantStevenK: But it shouldn't be too bad here, since there are no other icons.06:29
wgrantUnless you add the recipe icon to the start.06:29
wgrantWhich I might recommend.06:29
lifelessso, thats a reason to discuss iconless formatters, its not a reason to not link the person - we link person everywhere else.06:29
lifelessI guarantee if you don't link it, day one, someone will file a bug saying 'this is not linked and I cannot figure out who the >>> it actually is'06:30
wallyworldwgrant: i've done the changes to the method names: getBuilds, getCompletedBuilds, getPendingBuilds06:34
wgrantlifeless: I suppose I should ask if you have any further comments on that MP.06:34
wgrantwallyworld: Thanks.06:34
lifelesslink ?06:34
wgrantwallyworld: I'm not sure if that's better than getBuilds(completed_only, pending_only), but it's certainly better than it was before.06:35
wgrantlifeless: https://code.launchpad.net/~stevenk/launchpad/link-recipe-on-ppa-page/+merge/5069406:35
wallyworldlifeless: https://code.edge.launchpad.net/~wallyworld/launchpad/recipe-webservice-api/+merge/5068406:35
wallyworldlifeless: sorry, wrong context06:35
wgrantSorry, I was ambiguous.06:36
wallyworldwgrant: the reason the methods were changed from getBuilds(pending_only) etc is that having code like builds = getBuilds(True) blows chunks06:36
wallyworldmuch better and clearer to explicitly name the methods in this case06:37
wgrantwallyworld: But we have kwargs for that purpose.06:37
wgrantlifeless: That librarian meliae analysis is intriguing... could that be ZCA internals that we are seeing there?06:37
lifelessI htink os06:37
wallyworldwgrant: yes, i see your point but it's 2 against one :-)06:38
lifelesswallyworld: is this a democracy ?:P06:39
lifelesswhats the name of the law ab..06:39
lifelessah, demeter I think06:39
wallyworldlifeless: well, even dictatorships can fall :-) egypt, etc06:40
wallyworldlifeless: you manage to buy some food? i read that all the Countdowns are closed06:40
stubLoving my indicator icons. It is 31℃ with a chance of bacon.06:40
lifelesswallyworld: yeah, 60 minutes in a queue though06:40
lifelesswallyworld: at least we have some shinier stuff than baked beans * forever06:40
wallyworldlifeless: when we had the floods here a month back, people paniced and bought out the whole supermarket - no bread, veges or anything like that left. even canned foos all gone06:41
lifelesspanic buying *after* the fact06:43
lifelesslynne is getting pissed at the 4.0 after shocks06:43
lifelessthere are lots06:44
lifelessthere was a block long queue at the service station for petrol06:44
wgrantThe petrol station wasn't closed?06:44
wgrantI heard many were.06:44
lifelesswe're in rangiora06:46
lifeless30K NW of the cbd06:46
lifeless40K NW of the epicentre06:46
wgrantlifeless: Oh, I thought it was more like 15km.06:46
wgrantlifeless: Scaling-wise we are already doing all the queries.06:47
wgrantTo determine the uploader.06:47
wallyworldi heard that petrol was being made available to police and military only06:47
wgrantI'm not sure if that's prejoined or not.06:47
wgrantBut it's already there.06:47
wgrantOh, except those are subviews.06:48
wgrantThey're separate requests.06:48
wgrantSo this will cause three extra queries, but on-request and in a separate request.06:49
lifelesswgrant: it wasn't discussed, so I didn't know06:49
lifelesswgrant: its not clear to me that the source package recipe build link is dereferenced in determining the uploader06:49
lifelessstub: hey06:50
lifelessstub: so this branch of mine; I'd like to use the query I have, because its uglier to do what you suggested and use a big literal as a subquery with the reset in storm06:50
lifelesswe need to bring out two separate columns06:51
lifelessso we'd need to join to it as a subquery table06:51
lifelesswallyworld: I've commented anyhow06:54
wgrantTeamParticipation lies.06:54
lifelesswgrant: https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1879G33206:56
lifelesswgrant: how so?06:56
wgrantlifeless: You are in a team if you are in the owning team.06:56
lifelesswgrant: the owner distinction?06:56
lifelesssinzui and I agree that that is a bug06:56
wgrantBut there is no participation in that case.06:56
wgrantThis makes it impossible to do in one query.06:56
wgrantBecause you may need to recurse near-infinitely.06:56
lifelessyou are /not/ meant to be in a team by virtue of owning it06:56
wgrantJust have its privs.06:57
wgrantPrivs over *it*06:57
wgrantNot its privs.06:57
lifelessyou should be able to add yourself to the team06:57
lifelessor kick someone off it06:57
stublifeless: Yup. I think my query just exposed the distro id.06:57
wgrantIn fact.06:57
wgrantIt's already only partial.06:57
lifelessbut you don't get to do what the team permits people to do.06:57
lifelesswgrant: there are some places that are confused about this06:57
wgrantSince some things look up permissions from your teams, not vice-versa.06:57
lifelesswgrant: the /intent/ is 'must be in, not own, to be granted stuff *by* a team'06:58
wgrantI think we should look towards fixing this in the immediate future.06:58
lifelesswgrant: feel free to fix in that direction06:58
lifelessstub: it just exposed the spr06:58
StevenKstub: Hi! When you have a tick, could you review https://code.launchpad.net/~stevenk/launchpad/db-recipe-description/+merge/5069706:58
lifelessstub: we'd have to rejoin lots06:58
wgrantlifeless: Can I give you a query to find affected teams?06:58
lifelessstub: which is why I want to land what I have  - it works, it passes all tests06:58
lifelesswgrant: sure, but I can't check on prod; ask stub to do that if you need comprehensive data.06:58
wgrantlifeless: Staging's newish.06:59
wgrantI just want a rough idea.06:59
lifelessstub: what do you think06:59
wgrantFor now.06:59
stubGah... diff still not updated on the mp. I guess we don't retry on failures :-(06:59
wgrantstub: We retry a few times, I think. At least we do with normal BranchJobs.06:59
wgrant5 times for scans.07:00
stublifeless: I don't really follow. You have a query that is returning SourcePacakgeReleases and Distributions. Why does more need to be returned from the Store.find()  than what you already have?07:01
stubThe hack seems particularly bogus to me, and difficult to decifer with half the main query being injected in the origin(), and then relying on some magic for the DISTINCT ON to end up in the right place by inserting it in the find, and a magic column being ignored...07:04
stub(And the indentation of the SQL blocks went left, but that might be a matter of taste)07:05
lifelessstub: the variant you put on the MP doesn't work07:06
lifelessstub: to make it work we need to rejoin all the tables again07:06
lifelessstub: spr -> spph -> distroseries07:06
lifelessstub: its nearly twice as long once you fix your variant to do that07:07
stubSo spr.distroseries != spr -> spph -> distroseries ?07:07
lifelessthe indenting was taste, I can fix that07:07
stubSorry - spr -> distro -> distroseries != spr -> spph -> distroseries ?07:07
lifelessspr->upload_distroseries != spr->spph->distroseries07:08
lifelessthere is no spr->distroseries07:08
lifelesspackage copies keep the spr and make a new spph07:08
lifelessmaking a new series of ubuntu does the same thing07:08
stubI see07:08
lifelessso to get distroseriesID (and we need to use the ID, Reference columns have nasty compile errors - I07:09
lifeless've filed bugs on them in storm)07:09
wgrantmawson has 244 teams with members but the owner not in the team, and 207 teams with no members at all. Odd.07:09
lifelesswe need to redo all the joins in the origin query07:09
lifelessstub: the reason the diff didn't update was the librarian outage07:10
lifelessit retried but all within the downtime07:10
stubI think similar to my approach can still work - just need to reconstruct the correct query from your branch (told you it was indecipherable :)07:10
lifelessstub: I did that, but its much longer07:10
lifelessstub: the SQL("DISTINCT ON () 0 as ignored") is used elsehwere07:10
stubNah.... sublty different construct. Hang on...07:10
lifelesswgrant: 6 seconds of python time on bug 107:12
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Invalid by compscibuntu-bugs> <EasyPeasy Overview:Invalid by ramvi> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <The Linux OS Project:In Progress> <metacity:In Progress> <OpenOffice:In Progress by lh-maviya> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:New> <Ubuntu:I07:12
lifelesswgrant: I'll be in 2 weeks when we have 1-threaded appservers that it gets a lot better07:12
lifeless6.7 seconds getting the first message out07:13
lifelessthats either a /really/ busy slave or bogus07:13
lifelessFROM BugMessage,07:13
lifeless     Message07:13
lifelessWHERE BugMessage.bug = 107:13
lifeless  AND BugMessage.message = Message.id07:13
lifelessORDER BY BugMessage.INDEX, Message.datecreated,07:13
lifeless                           Message.id LIMIT 107:13
wgrantlifeless: https://pastebin.canonical.com/43694/07:15
wgrantCould you run that on staging please?07:15
wgrantSeems to be lots of OEM and DMB and loco.07:15
wgrantAnd not too much else.07:16
lifelessoh grrr07:16
lifelessthat query (the bugmessage one) just took 9 seconds cold on staging07:16
wgrantHow bad hot?07:17
wgrantAlthough it is restoring.07:17
wgrantAnd it is asuka.07:17
stubSo the branchscanner is too fast, because it does all the retries before we even notice critical systems are down :-) Think we need a better retry mechanism...07:17
lifelesswgrant: whats this query reporting exactly - too late ot be arsed figuring it out07:18
wgrantlifeless: Unmerged teams that have members but the owner is not a member.07:18
lifelesswgrant: why is this interesting?07:18
wgrantlifeless: Because it's teams that will be affected when inTeam no longer considers owners.07:19
lifeless269 rows07:19
lifelessoh rihgt07:19
lifeless*folk to notify*07:19
wgrantRight, probably.07:19
wgrantWe will see.07:19
lifelessit will make some delegations tricky07:19
lifeless'I and my delegate can do this'07:20
lifelesscould be done as 'I am in my delegated team'07:20
wgrantYou delegate it to yourself and someone else.07:20
lifelessor with a sideways team that has the delegated team and the owning team as both members07:20
wgrantBy putting you and that someone else in a team.07:20
wgrantlifeless: Can I have those rows? :)07:20
lifelessnonowners.txt in devpad:~robertc07:21
lifelesswgrant: the sort order is the problem in the query07:23
lifelessjust sorting on index makes the plan simple07:23
lifelessand drops it to 2ms07:24
wgrantlifeless: Ah. That's an easy fix.07:24
lifelessI'll fix indexed_messages07:24
wgrant29 teams are among the problematic owners. Need to work out how to contact them.07:26
wgrantLots of them are Canonical/Ubuntu, though, which is nice and easy.07:26
thumperStevenK: I did say the person should be a link, just a link to the person who requested the build, not necessarily the recipe owner07:27
lifelessstub: so, hows it going?07:27
stublifeless: What test should I run?07:27
lifelessstub: I've been assessing this by loading a bug from lp.dev07:28
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Invalid by compscibuntu-bugs> <EasyPeasy Overview:Invalid by ramvi> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <The Linux OS Project:In Progress> <metacity:In Progress> <OpenOffice:In Progress by lh-maviya> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:New> <Ubuntu:I07:28
lifelessthat has (for me) a spr on 'ubuntu' and on 'debian'07:28
stubSo we don't have a suitable test, or we don't know which test is suitable?07:28
lifelessthe latter07:28
lifelesswhich thing is this07:29
* lifeless scratches head07:29
lifelessseries lookups07:29
lifelessyes, that bug07:29
lifelessstub: the mozilla-firefox(ubuntu) task should highlight with a build by mark07:31
lifelessand the mozilla-firefox(debian) task should mouse over with 'no current source release ...'07:32
lifelessstub: a trivial thing that may save you some time - its DistroSeries SourcePackag... - every word capitalised07:35
stubWe never could seem to decide if they were one word or two - English language vs. domain language.07:35
stubWhat would save me time is faster 'make build' :-)07:36
stubmailman build, css assembling....07:36
stubrebooting hamster...07:36
StevenKmailman out of the tree would make me so happy07:36
wgrantstub: I use 'make -j3 compile' now. Not enough for the appserver, but enough for tests, and it's fairly fast.07:36
wgrantMore -j3 kills things :(07:36
stubOhh.. cool. forgot about -j07:36
StevenKBarry thinks it's very doable with Mailman 3.07:36
wgrantstub: compile skips mailman and WADL and other stuff.07:37
StevenKI think he's waiting for one or two things to hit core.07:37
StevenKstub: Can haz review and db patch number? :-)07:40
lifelesswgrant: yeah, like byte support in python3 :)07:41
StevenKThe thought of moving LP to Python 3 makes me sad.07:41
stublifeless: win. pushing.07:42
lifelessstub: thanks!07:42
lifelessstub: did you change both ?07:42
stubAh sod... forgot to commit your work before modifying... mushed together in the diff07:44
stubIs there magic to repair that 'commit changes I merged in' or 'commit changes that come from this branch over there'?07:44
stubI've just done one so far.07:46
stubStevenK: Are you dropping the NOT NULL to make the UI less sucky and not forcing users to enter rubbish, or is there something more subtle here?07:48
StevenKstub: I suspect the reason is most users aren't setting a description, or don't really know what to put in, so we're dropping the constraint.07:49
lifelessstub: when I merge from you it should be a clear diff07:49
stubThought so. Approved.07:49
StevenKstub: Can has number?07:50
StevenKI daresay -99 is bad07:50
stubStevenK: 2208-49-0, which will appear on the review when this ajax request submits... yay Thai ISPs.07:50
lifelessstub: how would you feel about people grabbing their own numbers from the wiki page as a minor optimisation to their workflow07:50
stublifeless: Sure. As long as approved status is in the same table so we can garbage collect if we want07:51
StevenKstub: Hehe, thanks07:52
lifelessstub: I was thinking just let us have holes in the sequence07:52
stublifeless: patchnum || who || description || approved07:52
lifelessstub: is that what you track at the moment ?07:53
stublifeless: So we either need a new baseline generated before we hit 99, or we need to hack upgrade.py and the Makefile and switch to 3 digits in the middle field.07:53
lifelessstub: re http://paste.ubuntu.com/570442/07:54
stubI don't track who at the moment, but we should if this is a shared pool.07:54
lifelessstub: you're grabbing DistroSeries.id - we need DistroSeries.distributionID07:54
lifelessoh bah07:55
lifelessnvm I had the wrong one of the two queries07:55
stublifeless: ok. Want me to fix that and the other callsite on my branch to see if it is working?07:55
stubThe technique seems to work though and I think it is clearer.07:55
lifelessI think its quite nice07:55
lifelessyes please07:56
lifelessstub: it will be less nice on the other one though07:57
lifelessstub: that bug doesn't exercise the one you've edited07:57
lifelessoh, hmm, yes it should work, little opaque at first reading07:58
StevenKwgrant: Still here?08:03
wgrantStevenK: Slightly.08:07
StevenKwgrant: I think I have it sorted out -- trying to fit tal:define in08:08
lifelessjml: WARNING: intersphinx inventory 'http://docs.python.org/objects.inv' not fetchable due to <class 'urllib2.URLError'>: <urlopen error [Errno 101] Network is unreachable>08:09
lifelessjml: from carob08:09
lifelessjml: the update-launchpad-built-code.sh stable  script - given you added the dep, and are in the right tz to liase with losas to fix, herewith I hand it to you ;)08:10
StevenKEr, why does it need a losa? The script needs to use http_proxy08:11
StevenKwgrant: <li tal:define="sprb context/sourcepackagerelease/source_package_recipe_build" tal:condition="sprb">08:12
lifelessStevenK: it runs out of cron in a losa maintained account?08:21
lifelessStevenK: that said, I'm not at all sure 'make' should -ever- need internet access.08:21
lifelessparticularly not in the deployment pipeline08:21
lifeless'fixing' it to do internet access would be bad08:22
StevenKlifeless: Ah ha. Fair enough08:24
StevenKlifeless: Is there a special testtools matcher that ignores whitespace changes?08:26
lifelessI might file a critical bug instead08:26
StevenKSince I'm trying to match HTML, and TALES is helpfully inserting linebreaks08:26
lifelessfor string matching? DocTestMatches(,,,. doctest.IGNORE_WHITESPACE) or something like that.08:26
lifelessto do html08:26
lifelessimport soupmaches08:26
lifelessjamesw's soupmatchers08:26
StevenKlifeless: Thanks, I've made a note to investigate.08:27
lifelessthe doctest docs document the flags to doctest to control its behaviour08:28
lifelessELLIPSIS I think is th eone08:28
lifelessthen you can write ... like you do in 'page tests'08:28
lifelessjml - fyi - https://bugs.launchpad.net/launchpad/+bug/72300308:31
_mup_Bug #723003: make is trying to connect to the internet <Launchpad itself:Triaged> < https://launchpad.net/bugs/723003 >08:31
=== jtv-afk is now known as jtv
wgrantStevenK: Back.08:34
lifelessstub: I think you need to commit and push again ?08:36
lifeless:!bzr merge lp:~stub/launchpad/trivial08:36
lifelessNothing to do.08:36
stub$ bzr push08:37
stubUsing saved push location: lp:~stub/launchpad/trivial08:37
stubNo new revisions to push.08:37
lifelessah, there it goes08:37
lifelessyou rebased onto trunk :<08:37
lifelessstub: future ref for doing something like this: start your branch; do bzr pull --overwrite <my brancH>08:38
lifelessthen you're hacking directly on what I'd done, rather than merging it into trunk etc08:38
lifelessavoids that issue you had with uncommitted changes from me as well08:38
* stub doesn't recall...08:39
lifeless20:44 < stub> Ah sod... forgot to commit your work before modifying... mushed together in the diff08:40
lifeless20:44 < stub> Is there magic to repair that 'commit changes I merged in' or 'commit changes that come from this branch over there'?08:40
StevenKwgrant: Do you think my <li tal:define... is suitable enough?08:40
wgrantStevenK: LGTM08:40
StevenKwgrant: Okay, excellent. I think I've addressed most of your concerns, except for one -- do you think I should rename the test?08:41
wgrantStevenK: Yes, the test needs to be reworked, renamed and moved.08:41
stubI've been avoiding pull --overwrite as I'm usually reusing branches and --overwrite nukes that old history08:41
StevenKwgrant: I've done the re-work, using self.getViewBrowser(spph, ... that should be the reworking done, surely?08:43
wgrantStevenK: That's great.08:43
wgrantNow rename and move, and I may be happy :)08:43
StevenKwgrant: Yes, I was going to ask for a suggestion.08:43
wgrantStevenK: test_publishing.py08:43
lifelessstub: once the branch is merged, that history becomes uninteresting08:44
StevenKwgrant: Just move the entire class into there?08:44
wgrantStevenK: Yes, and maybe rename it to TestSourcePublicationListingExtra or something like that.08:44
wgrantBut I'm not so fussed about the class name, as long as it doesn't mention ArchivePackages.08:45
StevenKYes, the test was written when I believed what needed to be changed was in ArchivePackagesView.08:45
wgrantI know.08:46
StevenKwgrant: At risk of being wrong: TestSourcePublicationListingRecipes08:48
wgrantStevenK: It depends how specific you want to make the class.08:48
wgrantDo those tests deserve their own?08:48
wgrantIt's possible they do.08:49
wgrantBut there are only two.08:49
StevenKThere is no other BrowserTestCase in test_publishing08:49
wgrantIs there a test_publishing?08:49
wgrantI don't see one.08:49
StevenKOh, I thought you meant tests, not browser/tests08:50
wgrantIf anything in lib/lp/*/tests/ is importing from lib/lp/*/browser, we have a bug.08:51
StevenKwgrant: Fixed, it's now lib/lp/soyuz/browser/tests/test_publishing.py08:52
lifelessstub: sql quick check08:52
lifelesswhen you select from two tables and they aren't joined08:52
StevenKAnd I understand what you were talking about, so it's also TestSourcePublicationListingExtra08:52
lifelessis it an implicit cross join ?08:52
wgrantStevenK: Thanks.08:52
lifelessstub: aren't joined, and there are no constraints joining them08:52
lifeless https://pastebin.canonical.com/43697/08:53
lifelessis what we're actually executing now08:53
stublifeless: Its an odd sort of join. the subquery only returns the (spr.id, distroseries) we are interested in.08:56
lifelessI wnat to make sure a) it will do the right thing, b) I understand why it will do the right thing08:56
adeuringgood morning08:56
stublifeless: So without an explicit join condition between the two tables, it is a cross join. But all tuples apart from the ones with the given (spr.id, distroseries) are discarded.08:58
stublifeless: Consider SELECT spr.*, distroseries.* FROM SourcePackageRelease AS spr, DistroSeries WHERE (spr.id, DistroSeries.id) IN (1,2)09:01
stublifeless: Or the eqivalent SELECT spr.*, distroseries.* FROM SourcePackageRelease AS spr, DistroSeries WHERE spr.id = 1 and DistroSeries.id = 2;09:01
stubBah... although that first one has to be written SELECT spr.*, distroseries.* FROM SourcePackageRelease AS spr, DistroSeries WHERE (spr.id, DistroSeries.id) IN (SELECT 1,2)09:05
=== almaisan-away is now known as al-maisan
lifelessjml: ping09:20
lifelessstub: thankds09:21
lifelessstub: I think we can make this a little more efficient09:21
lifelessstub: by using distroseries not distribution, so distribution isn't used at all09:22
stubexpanding the list of all-distroseries-for-this-distribution because we know that already?09:23
lifelessyou selected Distribution.id09:23
lifelessbut we don't join to distribution in the inner query09:23
lifelesswe use distroseries.distribution09:23
lifelesswhich is DistroSeries.distributionID outside it09:23
lifelesss/outside/ to storm/09:24
stubI'm not sure how that would speed anything up - Distribution.id and DistroSeries.distribution are just integers. DistroSeries might be slightly hotter in the cache, but Distribution is smaller. Not that it matters for those tiny tables.09:26
lifelessexplain says 105 vs 10809:32
lifelessso not worth worrying about09:32
lifelessthe 105 is using distroseries.distribution and a distinct on the outer (because the cross join nature permits multiple identical matching rows when we don't use something with a unique constraint)09:33
lifelessstub: sending what you had to ec209:33
lifelessbigjools: what do you think of bug https://bugs.launchpad.net/launchpad/+bug/27951309:34
_mup_Bug #279513: Distribution source package tooltip in bugtask table shows most recent SPPH in any series <lp-bugs> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/279513 >09:34
bigjoolslifeless: reading09:36
bigjoolsgimme 509:36
lifelesswgrant: once hot, bug one is now 8.3 seconds to render on prod09:45
lifelesswgrant: which isn't too bad at all09:45
lifelesswgrant: given all the other improvements we have pipelined09:45
bigjoolslifeless: do we even need tooltips?09:46
lifelessbigjools: thats an interesting question. I'll note that we can generate them in about 30ms now09:46
bigjoolslifeless: I have never used that tooltip :)09:46
bigjoolsdidn't even know about it09:46
wgrantbigjools: I used to use it very often.09:47
lifelessbigjools: less if we move the 'distro.getCurrentSourceReleases' stuff to be done via distro.development_focus.getCurrentSourceReleases09:47
wgrantlifeless: That's without the description check fix?09:47
lifelessbigjools: which is how I would propose to fix that bug09:47
bigjoolslifeless: +109:47
lifelesswgrant: the bug one times - yes09:47
lifelessbigjools: ok, cool, I'm in the area, I may polish it a little09:48
bigjoolsturds can only be polished so much09:49
wgrantlifeless: So, you said you'd discussed the owner participation thing with sinzui?09:49
lifelessIIRC the idea was this:09:52
lifeless - owner would be made visually distinct from member, and we'd squash any bugs around this - e.g. inTeam09:52
lifeless - we'd make it really easy for an owner to become a member, and to leave again09:52
wgrantBug #22749409:53
_mup_Bug #227494: Do not special case the owner in IPerson.inTeam() <disclosure> <lp-registry> <Launchpad itself:Triaged> < https://launchpad.net/bugs/227494 >09:53
stubjtv: You might be interested in reviewing https://code.launchpad.net/~stub/launchpad/garbo/+merge/5059509:59
jtvstub: I'll happily review it, but mind if I do after lunch?  Visa.09:59
stubjtv: Sure.10:00
stubIts not an urgent branch10:00
=== jtv is now known as jtv-afk
wgrantlifeless: The test fallout from this could be amusing.10:01
wgrantI guess I will talk to sinzui about it tonight.10:01
bigjoolsjml: can I trouble you to cast an eye over my twisted ftp stuff please?10:35
cody-somervilleIs there something going on with staging.l.n?10:36
lifelessby something, you mean its down?10:37
cody-somervillesomething like that, yea :)10:37
lifeless[its being restored at the moment, use qastaging if you need to play with something]10:37
lifelessits generally a better playground anyhow10:38
cody-somervillehrm... whats the process if it appears a legitimate person's account has been compromised by a spammer?10:39
lifelessfile a question on answers.launchpad.net/launchpad10:40
lifelessCHR will talk to them, get the spam removed etc10:40
cody-somervilleI assume I should escalate if for example said compromised account has upload permissions to the Ubuntu archive?10:41
lifelessmost spam is javascript automation driving their browser10:42
bigjoolscody-somerville: it's usually someone impersonating an email address10:42
bigjoolsor what rob said10:42
lifelessthat won't get transparent access to ssh or gpg keys10:42
lifelessso, I don't think you necessarily need to hit the panic button10:42
lifelessif its someone that can upload, talk to them directly too - at least they will be clueful enough not to need educating10:42
cody-somervilleLooking at the recent actions for the user, whatever is doing it is doing it quite quickly. ;) so most likely as you suggest lifeless10:45
lifelesswhats the user10:46
bigjoolslifeless: launchpad needs a sudo feature10:46
lifelessbigjools: yes10:46
wgrantI filed a few bugs about that a long time ago.10:46
lifelessI've suspended it10:48
wgrantHuh, ~registry can't see suspended users?10:49
wgrantThat seems dangerous.10:49
cody-somervillehttps://answers.launchpad.net/launchpad/+question/146394 is a duplicate10:49
jmlbigjools: definitely, already flagged.10:52
bigjoolsjml: excellent, thanks.  https://code.launchpad.net/~julian-edwards/launchpad/twisted-ftp-poppy/+merge/5072110:53
jmllifeless: I saw the bug. dealing with it as soon as I may.10:53
lifelessjml: oh hai10:53
lifelessjml: I had an action item to talk to you10:53
lifelessabout uhm10:53
lifelessbugs I think10:54
jmllifeless: I think I know what that's about.10:55
jmllifeless: I have to go very soon (I can't tell you how much I want this driving stuff to be over with)10:55
lifelessjml: its midnight10:55
lifelessperhaps tomorrow10:55
jmllifeless: but I'll be around when you are up next.10:56
lifelessthat would be good.10:56
lifelessHopefully I can remember stuff after sleeping :) - wouldn't remember much right now at all10:56
lifelessjml: oh, also - parallel testing an doops leps10:56
jmllifeless: saw them, flagged them :)10:57
lifelessone is drafted [pending other team inputs, but they don't affect our direct plans]10:57
lifelessthe other is open in my browser with stuff10:57
lifelesstomorrow. Later today. Whatver ;)10:57
* jml is off.10:57
sorenlifeless: You know what's funny? I woke up this morning, found a notice on my phone about the quake in Christchurch and 65 people dead. I wonder if you're ok, wander over to my laptop that was left in this channel from yesterday. I search for "quake", scroll up to find the context, and this is all I find:11:02
soren23:56 < lifeless> wow11:02
soren23:56 < lifeless> massive quake11:02
sorenThat's just classic.11:02
soren23:56 < lifeless> internet is up11:02
bigjoolssoren: lol11:05
wgrantCome on, that was like 5 minutes after the quake :P11:05
* bigjools quotes :)11:06
sorenSomeone ought to put that on a certain Quotes page if it's not already there. :)11:06
sorenbigjools: snap :)11:06
=== al-maisan is now known as almaisan-away
=== jtv-afk is now known as jtv
jtvdanilos, henninge: yay!  Fixed the new-template approval timeouts in just about the simplest way imaginable.11:38
henningejtv: cool!11:38
danilosjtv, marked them all as 'deleted'? :)11:38
jtv*Second-simplest* way imaginable.11:38
jtvNo actually, this is simpler.11:38
jtvIt was timing out because it creates all those POFiles.11:38
jtvAnd specifically, computing stats for them.11:39
danilosjtv, so you just removed updateStatistics call?11:39
jtvWhich doesn't make all that much sense for a freshly-created template because…11:39
jtvthere's nothing in them.11:39
danilosjtv, cool stuff11:39
jtvI just made it go "if template.messageCount() == 0: return 0"11:39
jtvheh heh heh11:40
danilosjtv, ah, you optimized updateStatistics :)11:40
danilosand heavily at that (at least for this special case :)11:40
henningesounds great ;)11:41
jtvsaves something like half a second per POFile11:41
danilosjtv, now you only need to do that for other cases updateStatistics handles, and you are done :P11:45
daniloshum, "operation timed out"? :)11:49
StevenKWould someone mind reviewing https://code.launchpad.net/~stevenk/launchpad/db-recipe-description/+merge/50697 ; it's tiny, and I can't see gmb.11:54
deryckMorning, all.12:01
stubStevenK: Looks like a candidate for a self review (I would approve, but lp doesn't want a code review in addition to db review :) )12:01
wgrantstub: Mentats sadly cannot self-review.12:02
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
benjijml: hi, I'm the RM for this round and the wiki says that I should ask you to be added to the stakeholder's list before sending emails13:44
jmlbenji: done.13:45
benjijml: thanks!13:45
bigjoolsjml: I am off to lunch now so can't talk much but I made another branch on top of that ftp one that will veryify gpg signatures on uploaded files and send an error back to the ftp client if it's invalid.  However, I need to patch twisted :)13:48
bigjoolsso I'll bug you about that later13:48
jmlbigjools: ok.13:49
jmlI'm still swamped beneath email.13:49
* bigjools hears you13:49
henninge2deryck: I cant make the stand-up right now. Can we do it in 30 min?14:01
deryckhenninge2, that's fine14:04
benjijml: I have another RM-related query for you, the procedure says that msm (Michelle Surtees-Myers) can approve my subscription to the ubuntu-platform list, but she's out of office until the 28th; do you know of anyone else that can approve it?14:13
jmlbenji: my guess would be any of the Ubuntu Platform managers.14:14
jmlbenji: mdz, rickspencer3, robbiew etc.14:14
benjijml: thanks, that'll help14:14
=== leonardr changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | firefighting: - | On call reviewer: leonardr | https://code.launchpad.net/launchpad-project/+activereviews
jcsackettbenji: you doing RM?14:25
benjijcsackett: I am.14:25
jcsackettbenji: cool! let me know if you have any other issues; i see elmo already told you to just email the list with reply-to rather than await moderation. :-)14:26
benjijcsackett: thanks14:26
deryckhenninge, abentley, adeuring -- shall we try the standup now?14:32
abentleyderyck, sure.14:32
=== jkakar_ is now known as jkakar
EzraRon the launchpad wiki it says "Running a stable production instance would be much harder than running a single-developer test instance, and we don't recommend it."14:39
EzraRhow much harder would it be? or would it just be the usual problems with any site?14:40
EzraRmy school is looking to set something up for CS students to use and wanted to use open source, i suggested LP14:41
jtvdanilos, henninge: good & bad news.  The pofile stats script's been failing in production because it accesses productseries.  Turns out it doesn't need to—another easy optimization.  :)14:41
henningederyck: when shall we have our chat? voice or type?14:42
deryckhenninge, ah, crap.  should have stayed on, sorry.14:42
deryckhenninge, I'll jump back in mumble.14:42
henningederyck: https://translations.launchpad.net/ubuntu/natty/+source/gedit/+pots/gedit14:46
=== salgado is now known as salgado-afk
gary_posterEzraR, harder.  LP is not designed for it, and (the vast majority of) devs are not interested in helping because we want people using the central LP site, and satellite versions actually fight our goals.15:08
maxbEzraR: The main problems (AFAIK) are that parts of the code are specifically customized on the assumption that they are running on launchpad.net (like, linking off to the Ubuntu Shipit CD distribution site, for example), that the full documentation of all the cronjobs and various different component deployments are not public, and that there isn't really any such thing as a Launchpad release.15:19
maxbSo, as much as I love Launchpad, it's not really viable to run separate instances unless you first found a project to derive a packaged version of the software15:21
jmlsome of these problems we are interested in solving. others less so.15:21
maxbAn idea lurks in my mind that it might be a viable project to fork out the registry + core code.lp.net bits as a way to give Bazaar a realistic "Here's how you can host your company's branches internally" solution15:23
deryckhenninge, do you know if bug 720673 has been deployed to lpnet yet?15:32
_mup_Bug #720673: TranslationMessage.origin field set incorrectly during import. <qa-ok> <upstream-translations-sharing> <Launchpad itself:Fix Committed by henninge> < https://launchpad.net/bugs/720673 >15:32
=== jkakar_ is now known as jkakar
jmlmaxb: I think thumper has been working on something similarish, although not by forking registry code.15:37
maxbYou'd need at least the concept of projects, teams and people, wouldn't you?15:38
jmlteams are optional, really.15:39
bigjoolsjml: regarding that sleep - I could not figure out how to avoid it other than to try and hack some crap in like the original poppy15:53
henningederyck: it's not. It's the next revision ready to be deployed.15:53
deryckhenninge, ok, great thanks!15:53
deryckabentley, and your stuff that's in the deploy ready lane is all db-devel stuff, right?15:54
jmlbigjools: yeah. I've said how I'd do it, and I think that's pretty similar to how original poppy worked.15:54
henningederyck: I can request a deployment of revision 12410.15:54
jmlwe already have something hacked in to make tachandler work anyway.15:54
abentleyderyck: no, some of it is devel stuff.15:54
bigjoolsjml: regarding the avatar, I can't return checkers.ANONYMOUS as it makes the FTP stuff go read-only15:55
abentleyderyck: actually, none of it is db-devel stuff.15:55
jmlbigjools: oh, I see. why do you return a different string there to the long string in the tac file?15:55
deryckabentley, and all qa-untestable, or there are bugs for any of them?15:56
abentleyderyck: qa-untestable.15:57
bigjoolsjml: which long string?15:57
deryckabentley, ok thanks15:57
deryckI'll move the cards across then15:58
jmlexcuse me15:58
jmlit's very hard to concentrate with this Ubuntu One bug.15:58
jmlok. my computer is usable again.16:03
EzraRthanks for the responses maxb and gary_poster16:05
=== beuno is now known as beuno-lunch
=== jam3 is now known as jam
=== salgado-afk is now known as salgado
jmlbigjools: re "which long string", "userthatwillneverhappen"16:44
bigjoolsjml: IIRC, it makes the ftp server go anonymous since it matches the string16:44
bigjoolsor does it ...16:44
bigjoolsanyway, it seemed the wrong thing to do because conceptually they are not the same user16:44
jmlare they not?16:45
jmloh, I see.16:45
jmlbigjools: have you filed a bug about the anonymous => read-only thing?16:46
bigjoolsjml: no, I don't see that it's particularly wrong16:46
bigjoolswe just have a weird ass thing we're doing in poppy16:46
jmlTwisted should probably still support that.16:48
* jml is looking deeper at the code16:48
bigjoolsmaybe - or at least let me say whether it's a r/o session without it matching the user name16:48
bigjoolsmaybe it should be a property of the avatar16:48
jmloh, also, you can pass portal and userAnonymous to the FTPFactory constructor.16:49
jmlbigjools: I can't find the code in Twisted that does the read-only bit16:50
bigjoolsjml: search for userAnonymous16:51
bigjoolsin protocols/ftp.py16:51
jmlI see that.16:51
jmlbut not where it's used to prevent writes.16:51
bigjoolsok, one sec16:51
bigjoolsso, 1st, notice it sets the creds to credentials.Anonymous()16:53
jmlbut that's ok, because you get to decide in the Realm how we handle anonymous credentials16:54
bigjoolsthen there's a FTPAnonymousShell that FTPShell inherits from16:54
bigjoolsmost of the former throws AnonUserDeniedError16:54
jmlbut you aren't using either shell, you're returning your own.16:54
bigjoolsI know16:54
bigjoolsI can't remember wtf it goes wrong now!16:55
bigjoolsbut it does16:55
bigjoolsit was to do with the Realm16:55
bigjoolsI'm going to have to comment that line to see where it breaks16:56
jmlyeah, I'm running the tests now against an unmodified version of your branch, in preparation for some experimentation.16:56
bigjoolsok, perhaps you can do it, I'm in the middle of making your suggested changes16:57
=== deryck is now known as deryck[lunch]
* bigjools works out why we have both lib/lp/poppy/server.py and lib/lp/poppy/daemon.py16:58
jmlthey are both cruft now, right?16:58
bigjoolsI'll be wielding a large axe at some point16:59
bigjoolsbut I need somewhere to put a function common to both ftp and sftp16:59
bigjools__init__ it is :)16:59
jmlthis ZopelessAppServerLayer had better be worth the wait.17:00
jmlactually, better to reboot first get these updates out of the way.17:03
bigjoolsreading every single zcml file to just get at one is annoying17:03
bigjoolsjml: so removing my override of the anonymous user prevents anonymous from actually logging in17:06
bigjoolsI decided it was easier to move it out the way that bugger about with another checker17:06
thumpermaxb: check out lp:sloecode17:10
thumpermaxb: we have it installed now, and I'll be writing something up soon17:10
jmlturned out ZAPL was deadlocked somehow.17:13
jmlin natty, I've lost my cpu usage indicator.17:14
jmlbigjools: test_full_source_upload fails for me in an unmodified version of that branch.17:15
bigjoolsjml: it works here17:15
bigjoolsmaybe the 5 seconds is not enough17:15
jmlas does test_single_upload, both because of mode checking failures.17:15
jmlDifference: 34236 != 3422817:15
bigjoolsyeah I fixed that17:16
jml    self.assertEqual(os.stat(wanted_path).st_mode, 0102664)17:16
jmloh, maybe I need to pull again.17:16
bigjoolswell it was fixed before the MP went up17:16
jmlthat's 0102674 != 010266417:17
* bigjools scratches head17:17
jmlbigjools: what's your umask?17:17
jmlsame as mine17:18
bigjoolsjust re-running the test17:18
jmlin any case, the 7 means g+s, iirc.17:18
bigjoolsit's failing here now....17:18
* bigjools boggles17:19
jmlperhaps you were only running the ftp tests?17:19
jmlit fails only for sftp for me.17:19
bigjoolsyeah that's it17:19
bigjoolsit should not be setting g+x, the test is right17:19
jml+x, of course. I'm a nong.17:20
* bigjools googles nong17:20
bigjoolsah, Australian slang.17:20
=== beuno-lunch is now known as beuno
bigjoolsSFTPFile.writeChunk() was wrong17:23
jcsackettany chance someone could help me figure out what's going on with a traceback/test error? http://pastebin.ubuntu.com/570668/17:24
jcsackettsomething to do with me adding a where clause and join to a bug search, but i can't figure out how it's related.17:24
bigjoolsjcsackett: diff?17:24
jcsackettbigjools: http://pastebin.ubuntu.com/570669/17:26
jcsackettthe test in that diff is fine; the one failing (amongst others) is the xx-front-page-search17:27
jcsackettthought i had gotten everything sorted, and ec2 kindly let me know i was quite wrong.17:27
jmlbigjools: http://pastebin.ubuntu.com/570671/ seems to work. removes the need for the literal strings.17:28
bigjoolsjcsackett: it's hard to tell from your diff, but I suspect you can figure it out by selectively removing diff chunks until it works17:29
jmland/or writing a test that does a more focused version of whatever xx-front-page-search does.17:30
jcsackettjml, bigjools: yeah, i've tried removing things. if i get rid of my product clause adding segment it works. which confuses me, as i don't see what the connection is.17:32
jcsacketti will continue chipping away at it. thanks.17:32
jmljcsackett: oh, you mean the commented out section?17:33
bigjoolsjcsackett: which clause?17:33
bigjoolsstorm errors suck :/17:34
jcsackettjml: that's not a commented out section, that's a very large comment block before the clause i'm talking about.17:34
jmlmy bad. green is how I colour comments in my editor :)17:34
* jcsackett laughs.17:34
jcsacketti could see where that would be confusing.17:34
bigjoolsis the extra_clauses right?17:34
jcsackettbigjools: i believe so. it seems to follow how some others do it.17:35
bigjoolsyou quoted it17:35
bigjoolsah it's literal sql rather than storm17:35
jcsackettbigjools: yes; as you roll through this section an enormous query is built here and there.17:36
bigjoolsI wonder if that's buggering up the bit (that's not in the diff) where it's adding extra clauses?17:36
bigjoolsjcsackett: in the past I've debugged these by using pdb to step into the storm compilation17:36
bigjoolsit would be nice if it threw decent errors17:36
jcsackettbigjools: yes.17:36
jmlor you could see the failing sql17:36
bigjoolsit's not getting that far jml17:37
jmlbigjools: yeah it is. "statement" is defined in the traceback.17:37
jmlbigjools: it's just not sending it to the db.17:37
jcsackettyeah, i tried pdb diving, but didn't find anything terribly useful. couldn't even easily get through to the part where this exception bubbled up from. many executions between a sensible point and the failure.17:38
bigjoolsjml: ah so it is17:38
bigjoolsmy bad, it's generating duff sql somehow17:38
bigjoolsjcsackett: which means you can turn on LP_DEBUG_SQL_EXTRA17:39
bigjoolsand see what it's trying to do17:39
jcsackettis that an environment var to set, or what?17:39
gary_posterleonardr: https://code.launchpad.net/~gary/launchpad/subscriptions_for_bug-1/+merge/50788 when you get a chance, though I plan to get a bit of lunch soon17:39
leonardrgary, sure17:41
bigjoolsjcsackett: yes17:41
gary_posterthank you17:41
jcsackettbigjools: thanks.17:41
jcsacketti'll give that a try.17:41
bigjoolsjcsackett: you need LP_DEBUG_SQL, the latter gives a traceback too17:41
jcsackettbigjools: dig. just set to true, i assume?17:41
bigjoolsset anything, yeah17:41
jtvgrrr why can't I push my branch to staging?17:43
jtvexec request failed on channel 017:43
jtvbzr: ERROR: Connection closed: Unexpected end of message. Please check connectivity and permissions, and report a bug if problems persist.17:43
jmljtv: what does 'ssh bazaar.staging.launchpad.net' tell you?17:44
jtvjml: err that it tries to ssh to bazaar.staging.launchpad.net?17:45
jtvjml: No shells on this server.17:45
jmljtv: hmm. so basic connectivity & authentication is fine.17:46
jmljtv: anything interesting in your ~/.bzr.log?17:46
bigjoolsjml: your patch does not work17:47
jmlbigjools: in what fashion?17:47
bigjoolsyou can't log in as "anonymous"17:47
jmlbigjools: no tests failed.17:47
bigjoolsthe tests suck then!17:47
jmlbigjools: seriously, are you manually testing this stuff?17:48
bigjoolsjml: in some cases yes, because it's loads quicker than waiting for our shitty test harness to start up17:48
bigjoolsI thought this had a test case17:48
bigjoolsobviously not :/17:49
jmlmaybe it's not in test_poppy17:49
* jml runs all the poppy tests.17:49
bigjoolsjml: that will just use the *old* server17:49
jtvjml: there's the traceback, and then the next attempt shows nothing that strikes me as suspicious.17:49
jmljtv: ok. you're getting the error consistently?17:49
jtvyes—and there it is again.17:49
jtvI think the non-suspicious one was a different request.17:50
jmlbigjools: I'm confused. I think I have misunderstood the point of your branch.17:50
jtvIt logs the traceback.17:50
jmlbigjools: you aren't changing poppy to use Twisted for ftp in this branch, are you?17:51
bigjoolsjml: the point is to add a new ftp service17:51
jmlbut not stop the old service17:51
bigjoolsthe old one is not removed yet so we can switch over in parallel17:51
jmlthat makes sense.17:52
bigjoolsother benefits include using your recently-landed haproxy stuff17:52
bigjoolsok, what are these tests logging in with?!17:52
jmlnot mine17:52
bigjoolsoh flacoste said it was yours17:52
bigjoolssome tac stuff for load balancing?17:52
jmldefinitely not mine.17:53
bigjoolsoooo kay :)17:53
jmlonly coding I've done recently has been deleting old crap and adding sphinx doc gen stuff.17:53
jmlanyway, what are these tests logging in with, I wonder.17:53
leonardrgary, review is in. i think you have some stuff you forgot to remove, but it's good otherwise17:53
bigjoolsjml: so the tests are using the bzrlib ftp transport17:56
bigjoolsah you beat me to it17:56
jmlI've got to drop offline to test something. brb.17:57
bigjoolsjml: so making the user anonymous in the URL has the result of the test failing18:00
jmlbigjools: yay18:00
jmlbigjools: I guess we should have a couple of tests that try user:pass, anonymous and ubuntu w/out pass.18:01
bigjoolspoking my override back makes it pass18:02
jmlthat the override is needed to make them pass means there's a bug somewhere.18:03
* jml keeps digging18:03
bigjoolsno doubt18:04
bigjoolssorry I can't remember where was causing it :/18:04
bigjoolsI did dig deep to find it18:04
bigjoolsbut I think it was because there's a separate checker for anonymous access18:04
jmlthere aren't any checkers in t/protocols/ftp.py18:05
* jml really does prefer old standard_test_template18:08
jmlbigjools: got it.18:11
bigjoolsjml: \o/18:11
jmlbigjools: it was my bad. credentials.username doesn't exist for Anonymous().18:11
jmlbigjools: and ftp.py reacts to *any* failure in the realm as an auth failure18:12
jmlwait, no I don't.18:12
jmlbut that is definitely *a* bug.18:12
jmladding direct tests for some of this stuff as I go.18:12
bigjoolsjml: I am using credentials.username and it's fine18:13
jmlbigjools: that's because you aren't logging in with the username that ftp has assigned to the anonymous user.18:13
jmlgot it for real.18:14
bigjoolsjust pushed up fixed tests18:15
jmlbigjools: errr, wrong url.18:16
jmlbigjools: http://pastebin.ubuntu.com/570708/18:16
jmlbigjools: the actual, actual, actual issue was that the checker we'd defined was not being used for anonymous logins, because it hadn't declared that it could handle such things.18:18
=== deryck[lunch] is now known as deryck
bigjoolsjml: this stuff is too complicated18:22
jmlbigjools: it's certainly not easy to understand.18:23
bigjoolsso I see from your comments in #twisted :)18:23
jmlbigjools: but I don't think that's quite the same as "too complicated". I'm not sure what I'd remove.18:23
bigjoolsif it's not easy to understand it must be too complicated18:24
bigjoolsI suspect a lot of this is down to snow blindness18:24
jmlcred is actually an elegant design, and surprisingly simple. it's just hard to get one's head around at first.18:28
jmlwe really would have been helped here by unit tests instead of integration tests.18:29
jml(won't say it again, promise)18:29
bigjoolsjml: ok so I've fixed everything in the review apart from the strports stuff.  I really, really hate seeing "tcp:NNNN" in the config and I want to change that to just NNN but it means fixing production configs in parallel18:36
flacostebigjools: i meant spiv18:36
bigjoolsso I will do it all as a simpler change later18:36
bigjoolsflacoste: heh, ok18:36
jmlbigjools: ok. sounds good.18:37
jmlbigjools: you've also applied the patch in the pastebin above?18:37
bigjoolsjml: the extra credentials?18:37
bigjoolsyes, if so18:37
jmlbigjools: yeah, extra creds, return credentials.ANONYMOUS instead of "poppy", don't bother setting factory.userAnonymous18:38
bigjoolsall done18:38
bigjoolsnow I need to so the sleep removal thing18:39
bigjoolsbut, after sleeping myself18:39
bigjoolsnight all18:42
bigjoolsthanks for the help jml18:42
jmlbigjools: my pleasure.18:42
bigjoolstwisted is starting to make me think of regexes now :)18:43
jmlthe ftp server isn't its strongest point.18:43
jmlspiv has spent the last ten years apologizing for it.18:43
lifelessjml: hi18:47
jmllifeless: hi18:47
jmllifeless: I haven't looked at your branch yet. it's third item in my queue, counting the thing I'm doing now.18:48
lifelessthats fine; its for your patch after all :)18:48
lifelessjml: how much longer are you around for this evening ?18:55
jmllifeless: probably at least another half hour to an hour18:55
lifelessjml: so, I should be ready for that call in about 10/15 if you can still spare the time18:55
jmllifeless: that would be ideal18:55
jmllifeless: hi19:17
lifelessjml: ready19:17
jmllifeless: ok19:17
=== gary_pos_ is now known as gary_poster
leonardri have a yui question, on the off chance anyone here knows anything about yui19:48
leonardri'm trying to figure out why an event fired from one source file is not received by the handler in another file. is it possible they are running in different sandboxes?19:50
thumperleonardr: hi19:50
thumperleonardr: I've just asked that on #yui19:50
leonardri've been poking at your branch for a while19:50
leonardroh, great19:50
leonardrare you ok w/r/t the earthquake?19:51
thumpergot my answer19:51
thumperyes, all fine here19:51
thumperno damage in Dunedin19:51
leonardrthumper: i may be doing something wrong, but changing Y.on to Y.Global.on doesn't change anything for me19:56
thumperleonardr: we need to use Y.publish(...)19:56
thumperleonardr: I'm just wondering how to pass the args through19:57
leonardroh, we need to do the whole publisher thing19:57
leonardrthumper: maybe explicitly create the event object and assign the arguments to its attributes?19:58
thumperI think we need a fancy context19:58
thumperleonardr: aye19:58
thumperI've got a call with flacoste now, I'll continue looking after that19:58
leonardrthumper: ok, i'll hack at it a bit20:00
thumperI think I may have it...20:02
* thumper makes run20:02
jtvmbarnett: no luck at all reproducing the permissions problem with that stats script… did it finish yet by the way?20:02
thumpernot working yet20:04
jtvAnyone know why I can't push my branch to staging?  "exec request failed on channel 0"20:04
leonardrthumper: push what you have?20:07
thumperleonardr: done20:09
lifelessgary_poster: hi20:09
gary_posterlifeless, hey20:10
lifelessgary_poster: I'd like to catch up a little, if you have time20:10
gary_posterlifeless, I have 20 minutes today, right now, and then I'm booked till EoD.  Tomorrow is good after team lead call (and a bit of lunch).  Which would you prefer?20:10
lifelessgary_poster: right now is best for me20:11
gary_posterlifeless, I'm on mumble and draggable to where you'd like to talk (or tell me and I'll try to get there)20:11
lifelessI'll go grab a headset then20:12
gary_posterI can20:13
lifelessmay we switch to pots?20:19
lifelessinternet voice fail - another quake going through at the moment20:19
lifelessgary_poster: ^20:20
gary_posterlifeless, skype?20:25
gary_posterlifeless, I can heat you fine, fwiw20:25
lifelessgary_poster: I could hear you -much- better with skype, FWIW20:36
jtvleonardr: got another review for you if you're available!  https://code.launchpad.net/~jtv/launchpad/bug-723168/+merge/5080821:02
leonardrjtv, ok, it'll be a minute21:03
deryckLater on, everyone.21:04
jtvlifeless: any idea why I might not be able to push my branch to staging?  "exec request failed on channel 0"21:13
mwhudsonjtv: sounds broken server side21:14
jtvno kidding :)21:14
lifelessjtv: I'd guess that the codehosting server is configured for the fork server but the fork server isn't21:14
lifeless(serving that is)21:14
jtvI'll pretend I understood that21:14
mwhudsonwithout a losa around i guess that's not going to be possible to debug :/21:15
jtvWe had mbarnett earlier…21:15
wgrantsinzui: Hm, when did you ask me to do that?21:42
sinzuiwgrant: ask what?21:43
leonardrjtv, r=me21:45
StevenKleonardr: Hi! What's the next step with my lazr.restful branch?21:48
leonardrStevenK: it's approved, so you can merge it or i can do it for you21:50
wgrantsinzui: Me to look at what needs fixing in the person picker.21:50
StevenKleonardr: I've not done that before, but happy to merge it.21:51
leonardrStevenK: it's easy. just do a bzr co of trunk, then bzr commit with [r=leonardr]21:51
leonardrtrunk being lp:lazr.restful21:51
sinzuiwgrant:  oh. 1.5 weeks ago when we discussed goal. I think I cited the person-picker as something you should propose because of your experience with the issues21:52
StevenKleonardr: Ah. What about a release so I can drop about 90 lines from the LP tree? :-)21:53
leonardrStevenK: when you commit, bump the version number in src/lazr/restful/version.txt to 0.17.1, and add a summary in the NEWS.txt. then ping me and i'll run my release script21:54
StevenKleonardr: So merge my branch, adding [r=...] at the front, and then commit the version and summary information? Sounds fine21:55
=== salgado is now known as salgado-afk
StevenKleonardr: Or I can change my move-test branch to also change the version, which would you prefer?21:56
sinzuihand up who has a IE that they can point at a dev instance21:57
* sinzui expects no hands21:57
leonardrStevenK: change the move-test branch and merge the whole thing at once21:57
StevenKsinzui: I think you also need to ask "and will admit to it"21:57
sinzuiStevenK: I really do not expect anyone to have windows. I don't21:58
StevenKleonardr: 0.16.1 -> 0.17.1, right?21:58
leonardrStevenK: we are now at 0.17.0, but launchpad is probably on 0.16.121:58
wgrantsinzui: There is a machine here that I can boot into Windows if required.21:59
wgrantsinzui: I believe it has IE8.21:59
sinzuiwgrant: the exact version I need.21:59
wgrantsinzui: What needs testing?21:59
StevenKleonardr: Hm, should I be concerned trunk's NEWS file has no mention of 0.17.0? :-)22:00
leonardrStevenK: what does bzr info say about your copy of trunk?22:01
leonardryou should be at revision 17422:01
StevenKleonardr: Yes, I was looking at my branch, not trunk :-(22:01
sinzuiwgrant: I think I will attempt to create a simple page and script to exercise bug 500015. I hope it is a one line fix22:01
_mup_Bug #500015: IE js error in filebug <dhrb> <javascript> <lp-bugs> <oem-services> <story-ajaxify-dupe-finder> <Launchpad itself:Triaged> < https://launchpad.net/bugs/500015 >22:01
=== leonardr changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
=== StevenK changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | firefighting: - | On call reviewer: StevenK | https://code.launchpad.net/launchpad-project/+activereviews
StevenKleonardr: Done. Do you need me to tag, or does your release script do that?22:07
leonardrStevenK: my script does that22:07
wgrantsinzui: Hm? Is it not easy enough to patch the page directly?22:10
sinzuiwgrant: I thought so. I saved the page, but I need to do some hacking because the function is not wired to the button22:11
leonardrStevenK: all right, http://launchpad.net/lazr.restful/trunk/0.17.1/+download/lazr.restful-0.17.1.tar.gz is ready to go into launchpad dependencies22:15
wgrantsinzui: OK, I have the machine booted into Windows and explorer stopped hanging after I killed it 5 times.22:16
wgrantsinzui: It seems to connect to my LP instance OK.22:16
StevenKleonardr: Thanks! If you need to go, I can work with someone else to update the download-cache and so on. Or I can keep asking you. :-)22:16
wgrantHmm, that's not good.22:17
leonardrStevenK: copy it into lp-sourcedeps/download-cache/dist and commit it before your land your branch22:18
leonardrthat's about it22:18
leonardryou'll need to update versions.cfg in launchpad22:18
lifelessflacoste: hi22:18
flacostehi lifeless22:18
lifelessflacoste: whats the url for the haproxy status page?22:18
lifelessflacoste: the ppr needs to exclude that as well as +opstats22:18
flacostelifeless: it does22:18
flacostepart of my initial patch22:19
flacostebut for the record, the URL is /+haproxy22:19
lifelesslaunchpad except opstats22:19
lifelessdoesn't look like it :)22:19
wgrantsinzui: Clicking Next on +filebug seems to just do refresh the page.22:19
flacostelifeless: All Launchpad except operational pages=(?<!\+opstats|\+haproxy)$22:19
StevenKleonardr: Yeah, that part I worked out, thanks.22:19
lifelessflacoste: ?!22:19
sinzuiwgrant: excellent. The bug lives22:20
flacostethat's from from utilities/page-performance-report.ini22:20
lifelessflacoste: maybe it needs to be deployed ?22:20
flacosteare we using a custom configuration on devpad...22:20
* flacoste looks22:20
lifelessflacoste: should bug 451390 be 'escalated' ?22:22
_mup_Bug #451390: limited upload rights no longer give series nomination accept/decline rights <dhrb> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/451390 >22:22
wgrantAh, there's the error.22:22
flacostelifeless: nobody asked me for it<22:22
sinzuiwgrant: Y.one('#bug_reporting_form') ?22:22
flacostelifeless, the lpqateam launchpad tree is outdated...22:23
* flacoste updates22:23
lifelessflacoste: we should get that done by nodowntime deploys22:23
wgrantsinzui: No, it's calling event.stopPropagation()22:23
wgrantsinzui: Which isn't supported by IE, AIUI.22:23
wgrantLet's try cancelBubble instead.22:24
wgrantsinzui: Oh, no, this._event is undefined.22:27
wgrantHow do I unminify this JS...22:27
sinzuiI do not know.22:27
spivjml: actually, the ftp server in Twisted isn't my fault, I wrote the ftp client22:29
wgrantThe call stack is a dozen "JScript anonymous function"s.22:30
wgrantNot helpful.22:30
flacostewgrant: see Deryck's email to the list22:32
flacostewgrant: there is an env var you can set22:32
flacosteto have it build unminified22:32
wgrantflacoste: Ah, missed that one. Perfect.22:32
sinzuiwgrant: e.cancelBubble = true; is what I would have tried22:32
flacoste$ make clean_js22:33
flacoste$ make jsbuild JSFLAGS='--filetype=raw'22:33
flacostewgrant: ^^^22:33
flacostefrom 'State of lazr-js/YUI in Launchpad' email22:33
flacosteiirc, that only works for our JS22:33
flacostenot YUI itself22:33
StevenKwgrant: I've updated the screenshot for link-recipe-on-ppa-page22:33
flacostebug 720097 tracks making it work for YUI22:34
_mup_Bug #720097: Support jsbuild's JSFLAGS filetype raw for YUI deps <javascript> <Launchpad itself:Triaged> < https://launchpad.net/bugs/720097 >22:34
wgrantStevenK: Link?22:34
StevenKwgrant: http://people.canonical.com/~stevenk/built-by-recipe.png22:34
wgrantStevenK: Could you publish that?22:35
wgrantSo we can see how it looks alongside the timestamps.22:35
sinzuiwgrant: mumble?22:35
* StevenK tries to remember how to run the PPA publisher on mawson22:36
wgrantStevenK: ./scripts/publish-distro --ppa -vvomgbbqvvvvwefwepfiojwegfwrigwrgerg22:36
flacostefor real???!???22:37
StevenKflacoste: No, wgrant is kidding :-)22:37
sinzuiwhat that is too close to Ekke Ekke Ekke Ekke Ptang Zoo Boing Zow Zing!22:37
flacosteit still goes on the quotes page...22:37
StevenKsinzui: When you're undistracted, would you be able to UI review a branch of mine. wgrant has context, too.22:38
sinzuiStevenK: thanks I will do it shortly22:39
sinzuiwgrant: still no sound22:41
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: StevenK | https://code.launchpad.net/launchpad-project/+activereviews
wgrantDid you hear me say hi earlier?22:41
sinzuiI wish mumble let me read lips22:41
huwshimisinzui: Lost internet for a second.22:44
flacostelifeless: fixed22:48
StevenKwgrant: Running the publisher had no effect. :-(22:49
lifelessflacoste: \o/22:50
wgrantStevenK: It's not a P3A?22:50
lifelessflacoste: will it be updated by deploys?22:50
flacostei also found out that i never commited the change i made to page-performance-daily-report.sh22:50
flacostethat's not corrected22:50
StevenKwgrant: No, it's public22:50
flacostelifeless: nope22:50
lifelessflacoste: RT that ?22:50
flacostelifeless: yes22:50
wgrantStevenK: The publisher didn't crash? The publish flag isn't off?22:50
StevenKwgrant: It published the source, but not i38622:51
wgrantStevenK: I don't care about i38622:51
wgrantStevenK: But you need to run p-a to get binaries published.22:51
StevenKwgrant: Ah, if all you care about is source, then: https://code.dogfood.launchpad.net/~stevenk/+archive/daily/+packages22:52
wgrantStevenK: :(22:53
StevenKwgrant: Hm?22:53
wgrantStevenK: It looks bad next to the timestamps.22:54
wgrantIt needs to be moved or rewritten.22:54
wgrantPossibly under Builds.22:54
wgrantsinzui: What do you think?22:54
lifelesstimestamps ?22:55
lifelesslooks like it should replace the 'Publishing details' text22:55
wgrantlifeless: The rest of that section is timestamps.22:56
wgrantSo it looks out of place.22:56
sinzuisorry, I am still catching up22:57
lifelessBug 719249 needs qa22:57
_mup_Bug #719249: The new direct subscription overlay takes too long to load <qa-needstesting> <story-better-bug-notification> <Launchpad itself:Fix Committed by gmb> < https://launchpad.net/bugs/719249 >22:57
wgrantIt does.22:58
lifelessI don't think anyone in yellow is still here, and gmb is out for the week22:58
wgrantI'm tempted to not-ok it for being insane.22:58
wgrantBut I think it's actually ok.22:58
lifelesswgrant: its ok to go out for a few days22:58
lifelessit will get rolled back soon22:58
lifelessBug 722568 also needs love22:59
_mup_Bug #722568: Empty TranslationMessages confuse stats <qa-needstesting> <Launchpad itself:Fix Committed by jtv> < https://launchpad.net/bugs/722568 >22:59
lifelessand Bug 72082622:59
_mup_Bug #720826: Add subscription description header for bug notifications <qa-needstesting> <story-better-bug-notification> <Launchpad itself:In Progress by danilo> < https://launchpad.net/bugs/720826 >22:59
lifelessand we can deploy everything22:59
wgrantOh good.23:01
wgrantEven loading BugTask:+index in IE8 causes JS errors.23:01
wallyworld_wgrant: you admit to using IE? :-P23:02
wgrantwallyworld_: I'm attempting to debug +filebug in IE.23:03
sinzuiwgrant: I see that pofile.js is using e.halt()23:04
wgrantI think our YUI setup is entirely broken in IE :/23:04
* wallyworld_ hooks a big fisk23:04
wgrantThe event facade is not being loaded.23:04
wallyworld_wgrant: i was just messing with you :-P23:04
lifelesswgrant: are you in the malone beta team?23:07
wgrantlifeless: The alpha team? No.23:08
lifelessI'll join on qas and qa then23:08
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/less-lazr-security/+merge/50824 should make you happy23:08
lifelessits moderated23:09
lifelessflacoste: hey23:09
wgrantlifeless: Yes :(23:09
lifelessflacoste: can you check that Bug 719249 hasn't broken the subscription form on qastaging ?23:09
_mup_Bug #719249: The new direct subscription overlay takes too long to load <qa-needstesting> <story-better-bug-notification> <Launchpad itself:Fix Committed by gmb> < https://launchpad.net/bugs/719249 >23:09
wgrantStevenK: Yay. But what's in lazr.restful 0.17?23:10
StevenKwgrant: Something that thumper was after. I was going to wait until that lands, which should be soon.23:10
flacostelifeless: sorry, i need to run23:12
lifelessflacoste: no worries23:12
lifelesscody-somerville: ^23:13
lifelessthese teams should be owned by ~launchpad23:13
wgrantlifeless: He's not an admin.23:13
lifelessdoesn't need to be23:13
lifelesscody-somerville: would love it if you could help us with qa23:14
cody-somervilleSure. What do you need me to do?23:14
sinzuiwgrant: StevenK: I am looking at https://code.dogfood.launchpad.net/~stevenk/+archive/daily/+packages . I got confused about what I should be looking at. Instead I just looked. found the "built by" line, then realised I do not know why there are two black bold chunks of text.23:15
lifelesscody-somerville: on qastaging23:15
lifelessvisit a bug23:15
lifelessand click on the advanced subscroption thingy that you should see as a member of malone-aplha23:15
lifelesstell me that it works23:15
lifelessthat is that it loads ok23:16
lifelessyou don't need to actually change your subscription23:16
wgrantsinzui: The first one's boldness is not useful. The second one may be.23:16
sinzuiStevenK: I suspect the chunks of text are reused, and the bold "Published" and "Pending publication" mix badly on this page23:17
StevenKI can stop it being pending :-)23:17
cody-somervilleDoes qastaging.launchpad.net/bugs/##### not work on qastaging?23:17
sinzuiStevenK: I think the "Built by" is not important next to the "Published". I think both are is equal value23:17
wgrantcody-somerville: It works for me.23:18
lifelesscody-somerville: it should23:18
lifelesshttp://qastaging.launchpad.net/bugs/23 just worked for me23:18
_mup_Bug #23: baz redo should use merge3 for conflicts like most other commands do. <Baz (deprecated):Won't Fix> < https://launchpad.net/bugs/23 >23:18
cody-somervillehmm... maybe the bug I'm trying to access is too new23:18
lifelesscody-somerville: doesn't need to be an interesting bug - use 23 ;)23:18
sinzuiStevenK: the <h3>s are victims of the stylesheet. I think I can fix that this week23:18
wgrantsinzui: I sort of want to remove all bold text from Launchpad, except maybe the occasional "this will kill something" warning.23:19
wallyworld_thumper: i like the stuff you did to the spr browser tests. removing the (fragile) huge text pattern matching strings23:19
wgrantIt looks terrible.23:19
cody-somervillelifeless, If I click 'Subscribe' I get a modal dialogue with three options.23:19
lifelessgreat, thanks23:20
cody-somervilleIts too bad that flexibility isn't available when subscribing someone else.23:21
wgrantcody-somerville: Yet.23:21
wgrantlp.registry.browser.person is too big.23:23
wgrantlifeless: I guess jtv was trying to QA that empty messages thing last night when he ran into the permissions issue.23:25
StevenKlifeless: Are you aware if I can mix soupmatcher tags with text?23:28
lifelessI don't know23:28
wgrantsinzui: I am thinking about UI for the ownership change.23:35
* sinzui look23:35
wgranthttps://launchpad.net/~wgrant/+participation is going to be particularly problematic.23:35
wgrantWe may need to split ownership into a separate table.23:35
sinzuiYes. That may be. I considered that too recently.23:36
wgrantIt already lies.23:36
sinzuiwgrant: also. I want to know what teams I own. Lp does not tell me23:36
sinzuiI own more than I remember.23:37
thumperwallyworld_: :-)23:40
sinzuiwgrant: I was thinking I could avoid the owner column by showing "owner/admin" in membership. I want to list owned teams separately on a related page. I do not think about the teams I only own as something I participate in.23:41
wallyworld_thumper: that big blob of text was the real reason my branch failed, not the db crap i talked about this morning. i got mixed up with 2 separate issues23:41
thumperwallyworld_: ah...23:41
thumperwallyworld_: should be easier now23:41
wallyworld_but your changes mean that it wouldn't have failed if they had been done first23:42
wallyworld_so more robust moving forward :-)23:42
wgrantsinzui: Hmm. I don't like the idea of having them on separate pages, really.23:43
cody-somervillethe less pages the better IMHO :-)23:48
sinzuiwgrant: Adding it to a second table might work. Since non-member-owner cannot will not be able to participate (change the project the team owns for example), I think mixing these teams in a listing will lead to confusion.23:49
wgrantsinzui: That was my intention.23:50
wgrantPlacing them in the same table would be very awkward.23:50
cody-somervillewait a second23:50
sinzuiwgrant: consider the team that losas own. No one should think they participate in rosetta-admins or ubuntu-mirror-admins23:50
cody-somervilleAre you saying that you're changing it so that being the owner of a team will no longer give you the permissions associated with said team?23:50
sinzuiwe are23:50
wgrantcody-somerville: It already gives you only a partial set.23:50
cody-somervilleOEM Services *specifically* relies on this.23:51
wgrantYou can add the owning team to your teams.23:51
cody-somervilleIts intentional that they are not a member23:51
sinzuiyou can be a member, or you can just own, delegating the responsibilities to the members23:51
wgrantcody-somerville: Why?23:51
wgrantIf they want the privileges of the team, they can be a member of the team...23:52
cody-somervilleMembership causes bug mail23:52
lifelesscody-somerville: what benefit do you get by having the owner not listed as a member but getting the benefits of being a member23:52
sinzuicody-somerville: then we want to fix the bug mail case23:52
wgrantThe bug mail case is actually just about fixed.23:52
cody-somervillelifeless, We have a pmteam that is able to edit and maintain all of our projects without actually being members of the individual teams23:52
wgrantMute subscriptions are nearly here.23:52
lifelesscody-somerville: this is a pretty big issue23:52
lifelesscody-somerville: it causes lots of confusion at the moment, and reports on 'who can do X' are not possible until the ambiguity is resolved.23:53
cody-somervilleI don't disagree that there is confusion. Its a huge issue for us. However, we intentionally exploit the current behavior for our benevolent needs so changing it without coordination would cause major disruption.23:54
wgrantWe are not changing it wihtout coordination.23:54
wgrantWe will communicate with all affected owners.23:54
sinzuicody-somerville: the pm case is a part of the project group non-sense that need fixing, probably with an axe23:55
wgrantsinzui: A Green axe, I suppose.23:55
cody-somervillewgrant, I had no doubt. I'm just doing a bit of that communicating right now to highlight that this in particular would be problematic for us ;)23:58

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