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

pooliethanks for the reviews lifeless00:37
pooliewill someone land my lazr.restful patch, or should i try?00:37
lifelessI think if you set a commit message tarmac will pick it up00:38
pooliewow00:38
pooliei will then00:38
pooliecan i just say how satisfied i am that is fixed00:38
pooliei should have done it ages ago00:39
pooliei have seen that cryptic message so many times00:39
lifelessStevenK: you may have closed bug 117163 ?03:26
_mup_Bug #117163: Soyuz email generation should be part of the LP mailnotification module <email> <feature> <lp-soyuz> <soyuz-build> <soyuz-upload> <Launchpad itself:Triaged> < https://launchpad.net/bugs/117163 >03:26
StevenKlifeless: I have not, but I have made it easier to do so.03:27
lifelesshah!03:30
lifelessI now have a solid use case for team-subscription-muting: private bugs03:30
StevenKlifeless: I'm completly happy to self-review this, but I wanted your opinion if it's pointless or not (hopefully I have explained myself well enough in the MP description): https://code.launchpad.net/~stevenk/launchpad/silence-rf-get/+merge/6278803:32
lifelessStevenK: I saw it03:33
lifelessyour logic is flawed03:33
lifelessbut I'm happy with the change03:33
lifelessthe warning was never about private branches03:33
lifelessits for community contributors that haven't run 'bzr launchpad-login' - they will get bzr whinging03:34
lifelessOTOH removing the crufty explanation is fine IMO03:34
wgrantlifeless: That's not a solid use case.03:34
wgrantlifeless: Conflation of notification and visibility is a bug.03:35
lifelesswgrant: not with a proper overhaul in progress :)03:35
lifelesswgrant: but till then ...03:35
lifelesswgrant: there is a bug launchpad-bugs is subscribed too that is private and on c-i-p03:35
wgrantRight, but it's a hacky use case.03:35
wgrantNot a solid one :)03:35
lifelesswgrant: even after privacy is overhauled03:36
lifelesswgrant: cross-organisational stuff may well want it03:36
lifelesswgrant: Having subscription *not* imply access would be weird.03:36
lifelessbug 187837 - still relevant?03:36
_mup_Bug #187837: ILinkData.sort_key should be removed once we stop using action menus <infrastructure> <lp-foundations> <tech-debt> <Launchpad itself:Triaged> < https://launchpad.net/bugs/187837 >03:36
lifelesswgrant: bug 185620 - perhaps fixed in your bugs-oops-crusade ?03:37
_mup_Bug #185620: DebBugs comment import doesn't handle invalid senders correctly <bugwatch> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/185620 >03:37
lifelessditto 18561303:37
wgrantWe are not planning to remove action menus, AFAICT.03:37
wgrantThey have been minimised, but still exist...03:37
lifelesssurely 182076 is fixed already,. SO MUCH CRUFT03:40
wgrantBug #18207603:40
_mup_Bug #182076: launchpad-form.pt doesn't present widget errors clearly <css> <lp-web> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/182076 >03:40
wgrantBug #18561303:40
_mup_Bug #185613: DebBugs comment import doesn't handle encoding errors correctly <bugwatch> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/185613 >03:40
wgrantProbably not.03:40
lifelessI'm trying to see if I can delete launchpad-bugs03:41
wgrantBy removing non-security private bugs?03:42
wgrantAnd then seeing what's left over?03:42
lifelessrepeat for branch subscriptions etc. Yes.03:42
lifelessalso killing bugs like 173972 on the way03:46
lifelesswgrant: what about bug 225228 ?03:47
_mup_Bug #225228: checkwatches error handling needs refactoring <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/225228 >03:47
lifelesswe also shouldn't *have* security bugs on ~launchpad-bugs. *sigh*03:49
wgrantlifeless: Indeed, closed.03:53
wgrantlifeless: Isn't using direct subscriptions for visibility awesome? :)03:53
lifelesswgrant: what about bug 210901 ?03:54
_mup_Bug #210901: Passing strings through LaunchpadValidationError results in double-escaping. <lp-foundations> <tech-debt> <Launchpad itself:Triaged> < https://launchpad.net/bugs/210901 >03:54
wgrantlifeless: No idea.03:56
wgrantWell, the only thing that comes to mind is "fuck IE".03:56
wgrantBut that's not much of an idea.03:56
lifelesshhhha03:56
lifelesshow is ie related to that ?03:56
lifelessI wonder if folk would be unhappy if I just closed all these bugs.03:57
wgrantJavaScript can't be escaped sensibly, so our template system cannot be safe.03:57
wgrantIn HTML, that is. And IE<9 don't support XHTML.03:58
lifelessmwhudson: bug 196345 - whats the /why/ ?04:01
* mwhudson waits for mup04:02
mwhudsonor is it private?04:02
lifelessprivate04:02
lifelesswith a dead web link to a list archive whose web password I have no idea about04:02
wgrantI think we should close bug #220625.04:02
lifelesscan you expand on why?04:03
mwhudsonlifeless: trying :)04:03
lifelessmwhudson: that was to wgrant :P04:03
mwhudsonlifeless: it's all about impersonation04:03
lifelessI probably want that04:04
lifelessis it private these days? if not, lets make it public and copy in the discussion ?04:04
mwhudsonmethods like createBranch clearly act on behalf of a user, and currently rather hack to achieve that04:04
mwhudsonlifeless: can't see why it would be private at all now04:05
* mwhudson publicizes04:05
lifelessmwhudson: done04:05
wgrantlifeless: There are much worse things that a buildd-manager bug can do.04:05
mwhudsonheh04:05
mwhudsonracing changes!04:05
lifelessmwhudson: can you add sensible content to it ?04:05
lifelesswgrant: right, but what about other folk on the machine, for instance.04:05
lifelesswgrant: or other services on the same machine going rogue04:05
mwhudsonlifeless: let me consult my mail archives04:05
lifelessmwhudson: thanks!04:06
wgrantlifeless: There are far worse things that they can do too.04:06
wgrantlifeless: If we don't trust the machine, then we have major overarching design issues.04:06
wgrantFar beyond this bug.04:06
lifelesswgrant: I'm fine with closing it, or not. But I think you need to explain a little about why in this case.04:06
lifelessas its not a cosmetic test-refactoring bug :)04:06
* mwhudson reads the thread again04:09
mwhudsonugh, this is all very confusing04:11
mwhudsonand the use case from the time has disappeared04:11
mwhudson(it wasn't impersonation)04:11
lifelessfeel free to extirpate it04:12
lifelessjtv - bug 23786804:15
_mup_Bug #237868: Contain non-ascii str objects in parsers and browser code <lp-translations> <tech-debt> <Launchpad itself:Triaged> < https://launchpad.net/bugs/237868 >04:15
lifelessjtv: is that done, or obsolete now?04:15
lifelessgmb: bug 23777404:15
_mup_Bug #237774: checkwatches doesn't update many SourceForge bug watches <bugwatch> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/237774 >04:15
lifelessgmb: please tell me that isn't still the case?04:15
jtvlifeless: it was never consciously done.  It was more a "we need to take a critical look at our code someday" thing than a "here's a change we need to make" bug.04:15
lifelessso, we're on storm today04:16
lifelessand I'm pretty sure it + our pg driver will barf at non-unicode strings04:16
jtvPlenty of test code will happily store non-unicode strings in object properties AFAIK04:17
LPCIBotProject db-devel build #594: FAILURE in 5 hr 37 min: https://lpci.wedontsleep.org/job/db-devel/594/04:18
lifelesssure, but if it does that to a db column we'll get a barf04:18
mwhudsonlifeless: https://bugs.launchpad.net/launchpad/+bug/196345/comments/104:22
_mup_Bug #196345: implement endpoint specific authentication for the private xml-rpc server <infrastructure> <lp-foundations> <tech-debt> <Launchpad itself:Triaged> < https://launchpad.net/bugs/196345 >04:22
lifelessmwhudson: thanks04:25
lifelessbug 19634504:25
_mup_Bug #196345: internal xmlrpc service requires impersonation to be handled per-method rather than systematically <infrastructure> <lp-foundations> <tech-debt> <Launchpad itself:Triaged> < https://launchpad.net/bugs/196345 >04:25
mwhudsonhaha04:26
mwhudsonoh right, you just changed the title04:26
lifelessand copied your prosed into the description04:26
lifelesslock04:26
lifelessstock04:26
lifelessand barrel04:26
mwhudsoni thought that was going to turn out to be another bug that i had reported04:26
lifelesswow04:27
lifelesshttps://launchpad.canonical.com/BugPageTwoZero04:27
mwhudsonare you saying wow because the current bug page actually looks not entirely unlike that?04:28
lifelessmwhudson: there is a bug saying we should do that04:29
lifeless*still* open04:29
lifelessbug 22731004:29
_mup_Bug #227310: duplicate bug handling UI is awkward and confusing <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/227310 >04:29
lifelesswhy is bug 300044 on sso ?04:30
wgrantBug #30004404:31
wgrantlifeless: It's in the old SSO codebase.04:32
wgrantThe rewrite uses the same project.04:32
wgrantIt's Invalid.04:32
lifelessyou sure ?04:33
wgrantHmm.04:33
wgrantRetarget to Launchpad, publicise, retitle to suggest that it should be deleted.04:33
wgrantSince we still have those properties.04:33
wgrantDespite not being an OP any more.04:33
wgrantThe last record in the table it checks is dated 2010-04-01, so it isn't being replicated back post-rewrite.04:37
wgrantSo it can be removed.04:37
wallyworld_lifeless: i think storm has a bug in Union. it rejects perfectly valid sql if the 2 queries differ in their exact select expressions, even if the resulting columns are compatible. i can run the sql manually just fine. do you know if there's a reason for this limitation?04:41
lifelesswallyworld_: I don't, sorry.04:41
lifelessstorm is very geared towards its ORM role04:42
lifelesswhich could explain it04:42
wallyworld_np. i'll see if i can come up with a reasonable work around04:42
wgrantwallyworld_: I suspect it's because it's then unclear how you would reference those columns.04:42
wallyworld_wgrant: one would use "as foo"04:43
wallyworld_storm should look at the alias and column type to figure out if everything is kosher and not just compare the exact select terms04:44
wgrantRight, but that would have to be explicitly done. It won't work by default.04:44
wgrantAnd given that Storm is Storm...04:44
lifelessbug 24554304:45
_mup_Bug #245543: Call sites that use SPR.createBuild() should really be using SPPH.createMissingBuilds() <lp-soyuz> <Launchpad itself:Triaged> < https://launchpad.net/bugs/245543 >04:45
wallyworld_\o/04:46
* wallyworld_ has a new coffee grinder just arrived from italy. must immediately cease Storm work to try it out :-D04:46
wgrantlifeless: Lies.04:46
wallyworld_thumper: ^^^^^^^^ :-D04:46
lifelesswallyworld_: nice04:47
lifelessbug 17286904:47
_mup_Bug #172869: SoyuzScript needs more test coverage <lp-soyuz> <tech-debt> <trivial> <Launchpad itself:Triaged> < https://launchpad.net/bugs/172869 >04:47
thumperwallyworld_: nice04:47
lifelessfaceplant. bug 15838604:48
_mup_Bug #158386: Close all low-level cursors <infrastructure> <lp-foundations> <tech-debt> <Launchpad itself:Triaged> < https://launchpad.net/bugs/158386 >04:48
wgrantzomg04:54
wgrantLinux 3.0-rc104:54
wgrantThe day has come.04:54
lifelessand unlike py3 its not a disaster04:58
wgrantIndeed.05:01
wgrant:(05:01
wgrantWell.05:01
wgrantNo *more* of a disaster.05:01
StevenKIf gina create builds, I will have to murder people.05:02
wgrantStevenK: It has to when importing binaries.05:02
wgrant(which it hasn't done since 2007)05:02
wgrantBut the feature is still there, somewhere.05:02
StevenKHeh, and only once, I daresay.05:02
wgrantTwice!05:03
wgrantOnce to import Ubuntu primary, and again to import -commercial (brokenly)05:03
jtvwgrant: mind if I restart the df app server?05:03
wgrantjtv: Not at all.05:03
jtvLetter-for-letter identical to what StevenK said.  :)  Thanks.05:03
StevenKwgrant: Have we fixed that broken -commercial import?05:04
wgrantStevenK: No.05:04
StevenKPity.05:04
StevenKHm, not many callsites of SPR.createBuild()05:05
wgrantDoes archiveuploader still do it?05:05
wgrantI forget if we removed mixed uploads.05:05
wgrantIIRC they were too entangled with tests to kill.05:05
StevenKYes, nascentupload uses it05:06
StevenKWell, nascentuploadfile05:06
StevenKAmusingly, createMissingBuilds calls it under the covers.05:06
wgrantIs that amusing?05:06
StevenKWell, I found it amusing05:06
wgrantIt is intended that createMissingBuilds should be its only callsite.05:07
StevenKAh05:07
StevenKA whole bunch of tests call it too05:07
wgrantYes05:07
wgrantlifeless: launchpad-bugs has no contact address, but launchpad has launchpad-bugs@lists.c.c05:10
wgrantThat's the problem.05:11
lifelessuhhhhh fail05:11
lifelessok05:11
lifelessso lets remove that05:11
lifelessthanks for digging that up05:11
wgrantNow that PQM is out it should be fairly safe.05:11
wgrantPQM was the main problem last time.05:11
wgrantWe'll all immediately get loads of vcs-imports spam.05:12
wgrantBut at least we won't have robots spamming.05:12
lifelessfixed05:12
wgrantHm, why is canonical-bazaar in launchpad?05:12
lifelessthey were a subteam organisationally05:12
wgrantWere.05:12
lifelessyes. were.05:13
wgrantBut they were added just before me.05:13
lifelesspoolie: ^05:13
wgrantLike a month before the refactoring.05:13
lifelesspoolie: what does that team membership do for you ?05:13
jtvStevenK, wgrant: does either of you have time to guide me through some Q/A on dogfood?05:15
wgrantjtv: Sure.05:15
jtvThanks.  I need to see (1) a pending DSDJob, and (2) a failure on a package copy job.05:15
wgrantAh. StevenK is possibly going to be more effective at that sort of thing.05:16
jtvRight ho.05:16
LPCIBotProject windmill-devel build #152: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/152/05:16
jtvStevenK: what can I safely to do produce a pending DSDJob to show up on +localpackagediffs?05:17
StevenKAn upload, copy or removal will create a DSDJ05:17
jtvI guess a removal will make the package drop off +localpackagediffs.05:18
StevenKMaybe not05:18
StevenKA removal will create a DSDJ. Until that DSDJ is run, the existing DSD will not be touched.05:19
StevenKOnce the DSDJ has run, the DSD will be updated to state unique to derived series or missing from derived series.05:19
jtvI see.05:20
jtvWould the easiest way though be to sync e.g. a52dec?05:20
jtvI guess that'd give me a copy job first, and then when that's done, a DSDJ05:21
StevenKRight.05:21
jtvDo we run any of the cron jobs on df?05:21
jtvISTR no.05:21
StevenKI'm not sure.05:21
jtvWell, here goes.  IIRC a52dec is a pretty normal package, safe to copy?05:22
wgrantStarting a script takes like 30s of CPU time, so I hope not :/05:22
* jtv curses zcml once more05:22
lifelessmicahg: bug 59846 may entertain you with a flashback05:23
jtvArgh "same version is already building in oneiric"05:23
* jtv looks for different arbitrary guineapig05:24
micahglifeless: I don't see anything there05:24
jtvStevenK: acct should be safe as well, right?05:24
lifelessmicahg: retry05:24
lifelessmicahg: I was just unembargoing it05:24
micahglifeless: heh, yeah05:25
StevenKjtv: Yes.05:25
jtvSame error.  :(05:25
jtvrmadison has nothing special to remark about alarm-clock either…05:26
wgrantlifeless: You asked of bug #121538 "Can this bug be opened ?"05:26
lifelesswgrant: made public05:27
wgrantI think you may have been through too many this afternoon :P05:27
wgrantOh.05:27
wgrantI see.05:27
StevenKjtv: alarm-clock is already identical05:27
jtvIs _now_ :)05:27
jtvIt was -1.1 vs -1ubuntu105:28
jtvIt correctly shows up as "updating..."05:28
jtvAnd now it's off the list.05:29
jtvSo we are running DSDJobs on dogfood.05:29
micahglifeless: should I dupe mine to it05:29
lifelessno05:30
lifelessits fix released05:30
lifelessand sufficiently long it would be a pita to reuse it05:31
jtvStevenK: now I'd like to try an asynchronous copy...  I'll disable synchronous copying for a moment.  Any objections to syncing amule, ajaxterm, or amsn?  If I read rmadison output right, they have some version differences across architectures but they're not in nonfree.05:31
wgrantDo they?05:33
jtvWell not ajaxterm since it's for "all"05:33
wgrantNor amsn.05:33
wgrantNor amule.05:33
lifelesshmmm05:34
lifelessI wonder if merging -bugs and -security would be better05:34
jtvwgrant: I ran e.g. $ rmadison -u debian -s sid amsn05:34
wgrantjtv: Why Debian?05:34
wgrantDebian binaries are not interesting.05:34
wgrantlifeless: Possibly, if there are no non-bugs -bugs references.05:35
jtvBecause I need to know whether I can copy it into oneiric without creating an invalid publication.05:35
lifelesswgrant: if only we had a UI to show subscriptions05:35
wgrantlifeless: For everything else, there's psql.05:36
wgrantjtv: Ah, I see.05:36
wgrantjtv: Those should indeed be safe.05:36
jtvAnd while I love the idea of being the author of an illegal publication…05:36
lifelessok, how to request a team merge ?05:38
wgrantlifeless: /people/+adminteammerge, but let's check this out first.05:39
jtvStevenK: next I need to trigger a CannotCopy on an asynchronous copy request… is there some off-the-shelf way of getting that?05:40
jtvI'll try a regular run first though, to verify the common case.05:41
wgrantlifeless: It's still bug supervisor for a couple of places.05:41
StevenKjtv: I can't think of an easy way off the top of my head05:42
jtvStevenK: on the bright side, the status quo for handling that is an oops.  So from a branch Q/A standpoint, just verifying that it works when there are no errors means the change is good to deploy.05:43
jtvWhat script was the processing of PPCJs hidden in again?05:43
jtvprocess-pending-packagediffs?05:43
jtvNo05:43
wgrantI thought one just used run_jobs.05:44
lifelesswgrant: according to you thats not conflated with subscriptions now05:54
wgrantlifeless: It has some structuralsubscriptions, some assigned questions and bugtasks, and is the bug supervisor and security contact on some projects. That appears to be it.05:55
wgrantlifeless: It's not.05:55
lifelesswe should nuke the strucsubs05:55
wgrantRight.05:55
lifelessthe rest we can tolerate05:55
wgrantBut launchpad-security may not be the correct bug supervisor for all our projects.05:55
lifelessit shouldn't be a security contact anyway05:55
wgrantKIndeed.05:55
lifelesswgrant: -security and -bugs are functionally equivalent now05:55
wgrantlifeless: OK.05:55
wgranthttps://launchpad.net/~launchpad-bugs/+structural-subscriptions05:56
wgrantIt has as few.05:56
wgrantI suspect all should be deleted.05:56
wgrantBefore we merge.05:56
lifelesswe can't open -bugs to non-staff because of the tonne of old bugs that would need auditing05:56
lifeless400 odd05:56
wgrantYeah.05:56
lifelessso if we want different supervisors05:56
lifelesswe can't use -bugs anyhoo, so merging won't make this worse05:56
wgrantWe should delete the structsubs first.05:57
lifelessyes05:58
lifelessam on it05:58
lifelessits not ajaxy05:58
wgrantThanks.05:58
wgrantmalone-developers has bugs assigned, and that's all.05:58
wgrantMight merge it into ~launchpad.05:58
lifelessqprocd wtf05:58
wgrantHeh05:58
lifelessdilys?!05:59
wgrant.. yes?05:59
wgrantYou don't remember dilys?05:59
lifelesscleared out06:04
wgrantlifeless: ~malone-developers isn't a celebrity, only member is ~launchpad, and only artifacts are assigned bugtasks. Any objections to merging it into ~launchpad?06:04
wgrantOr even deleting it.06:04
lifelesshahha06:06
lifelesswant to file this bug ?06:06
lifelesshttps://bugs.launchpad.net/~malone-developers/+assignedbugs?advanced=106:06
lifelessnote the team portlet06:06
lifelesswgrant: have you cleared the bug assignments ?06:06
wgrantlifeless: No. Deletion will do that.06:07
lifelessI can't see them06:07
lifeless(even with closed bugs checked)06:07
wgrantNeither. Let me find what they are.06:07
wgrantBug #346006:07
_mup_Bug #3460: Bug reported as no secret is not accessible anymore. <lp-foundations> <Launchpad itself:Incomplete by malone-developers> < https://launchpad.net/bugs/3460 >06:07
wgrantIt's a dupe.06:07
lifelessdoh06:08
lifelesshttps://launchpad.net/~malone-developers/+adminteammerge 404s06:09
lifelessoh06:09
lifelessliteral people06:09
wgrant/people/+adminteammerge06:09
wgrantYeah.06:09
wgrantBut that team can just be deleted.06:09
wgrantI guess it doesn't make much difference.06:09
lifelessI think we're gtg on bugs now06:10
lifelessyes?06:10
wgrantAs long as we don't care about bug supervisor, security contact or question/bugtask assignee, yup.06:11
lifelessah questions06:11
lifelesslets see about those06:11
wgrant1 question06:12
wgrant10964506:12
lifeless1 bug06:12
lifelessunassigned06:12
wgrantBug #174335?06:12
_mup_Bug #174335: [remote-bug-watcher] GStreamer's Trac has switched to https <lp-foundations> <Launchpad itself:Fix Released> < https://launchpad.net/bugs/174335 >06:12
wgrantQuestion unassigned06:13
lifelessand supervisor I don't care about06:13
lifelessI will raise that its odd06:13
wgrantThat leaves us with just bugsubscriptions and products.06:13
wgrantSo let's doit.06:13
lifelessproducts?06:14
wgrantbug supervisor and security contact.06:14
wgrantWhich you say we don't care about.06:14
lifelessah - shrug ;)06:14
wgrantWhich seems reasonable.06:14
lifelesssecurity contact should be -security06:14
wgrantYup.06:14
lifelesswe do care - its wrong today :)06:14
lifelesssupervisor won't functionally change06:14
wgrantSo, -bugs -> -security, malone-developers -> oblivion?06:14
wgrant~malone-developers is already gone, I see.06:15
wgrantExcellent.06:15
lifelessmerged FTR06:15
wgrantk06:15
wgrant-> launchpad06:15
wgrant?06:15
lifelessyeah06:15
jtvThis is worrying: my branch is "Merged," my MP is "Merged," the bzr log shows my revision, but my changes don't seem to be in the code.06:17
wgrantjtv: Which rev?06:18
jtvWhat am I missing?  It's this MP: https://code.launchpad.net/~jtv/launchpad/db-bug-78697006:18
jtvdb-devel 161706:18
jtv1061706:18
wgrantWhich changes are missing?06:18
wgrantmailing-list-experts is also no longer a celebrity and obsolete and unreferenced, besides owning the already deleted mailing-list-beta-testers.06:20
jtvAFAICT at least the first one in the diff: security.cfg06:20
wgrantjtv: It's in db-devel for me...06:20
wgrant[sync_packages]06:20
wgrantgroups=script06:20
wgrantpublic.account                                = SELECT06:20
jtvYeah, just showed up—strange06:20
wgrantlifeless: launchpad-bugs is gone! Thanks.06:21
poolielifeless: hi, what do you mean what does it do?06:23
lifelesspoolie: just that06:23
wgrantlifeless: canonical-loggerhead only controls access to ancient private loggerhead branches. -> canonical-launchpad-branches?06:25
lifelessyes06:26
lifelesswant to do the honours?06:27
wgrantYup.06:27
wgrantDone.06:27
wgrantSo much cruft :(06:27
lifelessthere may be some config manager configs to cleanup with that last one ?06:29
wgrantIt didn't own anything.06:30
wgrantOnly subscriptions.06:30
lifelessand the branches ?06:30
poolielifeless: well, for instance we assign bugs to ~canonical-bazaar to indicate they're on our short list06:30
wgrantlifeless: Hm?06:30
lifelesspoolie: oh, econtext. I don't mean 'what do you use the team for with launchpad.net'06:31
poolie(we could have a tangential conversation there about per-person or per-team hit lists)06:31
lifelesspoolie: its in ~launchpad. What does that *membership* do for you.06:31
poolieoh i see06:31
pooliei don't know06:31
lifelesswgrant: 17:25 < wgrant> lifeless: canonical-loggerhead only controls access to ancient private loggerhead branches. -> canonical-launchpad-branches?06:31
lifelesswgrant: won't that have changed urls ?06:31
pooliewhat is ~launchpad06:31
lifelesspoolie: folk that report to francis, more or less06:31
lifelesspoolie: including himself.06:31
poolie:) hm odd name for it then06:32
wgrantIt also controls who can see tracebacks.06:32
wgrantThat's about it.06:32
poolieso only canonical staff?06:32
lifelessand transitively closed06:32
lifelessyes06:32
wgrantlifeless: No, it only subscribed to branches. It owned nothing.06:32
lifelesswgrant: ~canonical-loggerhead controls who sees tracebacks ?06:32
pooliei don't think the team membership does anything much then06:32
wgrantlifeless: I was speaking of ~launchpad.06:33
lifelessheh06:33
pooliehm06:33
wgrantThe only specialness it has within LP is granting tracebacks.06:33
pooliei mean it is useful for us to see tracebacks06:33
lifelessyeah06:33
poolieso you could expand out the membership to the individuals, if you think that is cleaner06:33
wgrantOr move it to a flag :)06:33
lifelessperhaps we should make that a ff06:34
lifelessjinx06:34
wgrantMeans we can delete more celebrities.06:34
wgrantYay.06:34
poolie:) oh speaking of which, the bug about staging flags06:34
wgrantThe logic way to control that is with flags, yes.06:34
pooliewould it make sense to do that off static configuration that's different between lpnet and other instances?06:34
wgrantFlagception, and all that.06:34
lifelesspoolie: no06:35
lifelesspoolie: rather, you could. But I wouldn't :)06:35
pooliebecause... that config stuff is a pain?06:35
pooliei was just thinking of what is permanently different between them06:35
lifelesslazr.config is a pita yes.06:35
poolieit seems kludgy to need to reset it after every synchronization06:35
poolieit may be the least kludgy thing i suppose06:36
lifelesspoolie: there is an is_beta setting etc06:36
lifelessbut I think its better to have the stuff visible06:36
lifelessrather than magically differ based on not obviously related settings06:36
poolieoh, well06:37
pooliei would have (handwavy) added a static configuration that says what person is allowed to edit, and to see, flags06:37
poolie*flag rules06:37
* lifeless shudders06:37
poolie?06:38
lifelesspoolie: that would either require a team on production that matches the policy we want on staging (so that you can refer to it statically in the staging config)06:38
pooliebut surely there is one; perhaps ~launchpad ?06:38
lifelesspoolie: ~launchpad doesn't include ~admin06:39
pooliehm06:40
poolieok06:40
pooliei crave enlightenment06:40
poolieis that the main thing that would be gross about it?06:40
lifelessthis doesn't seem like config to me06:41
lifelessuhm06:42
pooliei guess to me bootstrapping-type information like who should get certain privileges seems like the kind of thing that goes in static configuration06:42
pooliein general; but that may not be a good fit for the launchpad idioms06:42
lifelessso06:42
lifelessthings that might vary by where the server/script is running and how other services are talking to it06:43
lifelessthose should be config (today)06:43
lifelessnothing else shold be06:43
lifelessbecause the config is spread out over about 100 locations06:44
wgrantthumper: Does ~launchpad-recipe-beta still need to exist?06:44
lifelessto deal with bootstrap issues the instance-creation script (make schema) seeds sensible defaults06:45
lifelesspoolie: ^06:45
lifelesswgrant: its gone from the feature rules06:50
wgrantIt is about to be gone in general.06:51
lifelesswow06:57
wgrant?06:57
lifelessthe wiki bug has gone over the 'can-comment' limit06:57
wgrantHeh06:58
thumperwgrant: no07:22
wgrantthumper: Thanks.07:23
* wgrant destroys.07:23
poolielifeless: so this wouldn't fall under "vary by where the server/script is running"?07:24
lifelesspoolie: no07:41
lifelesspoolie: we wouldn't want it different for two prod servers07:41
lifelesstherefor it shouldn't be a config setting07:41
poolieok07:41
=== Ursinha-afk is now known as Ursinha
lifelesshttp://webnumbr.com/launchpad-critical-bugs.derivative08:24
StevenKLooks like math homework. "Using only this graph, determine exactly when William Grant switched from maintaince to feature work."08:26
wgrant:(08:30
adeuringgood morning08:37
jtvhi adeuring08:43
adeuringhii jtv!08:43
wgrantjam: Which bugs?08:56
lifelessI have a feeling bug 117166 may be fixed08:56
_mup_Bug #117166: Soyuz tests should use standard LP logger <lp-soyuz> <tech-debt> <test-system> <Launchpad itself:Triaged> < https://launchpad.net/bugs/117166 >08:56
wgrantjam: There should be no team bug subscriptions left, except for ~launchpad-security (which has its own contact address)08:56
jtvAny reviewers willing to pick up an easy fix?  https://code.launchpad.net/~jtv/launchpad/db-bug-790084/+merge/6284508:56
jamwgrant: so unfortunately I cleared them out of my bug folder, but I'll go track them down, just a sec08:57
jamwgrant: 47941 for example08:58
wgrantHm, ~launchpad is apparently subscribed to 351 or so bugs.08:58
jamwell, 74941 if I could type correctly08:58
wgrantHm.08:59
wgrantDo you have the rationale from that email?08:59
wgrantthere's no ~launchpad subscription near it, AFAICT.08:59
lifelesshmm08:59
jamwgrant: You received this bug notification because you are a member of Launchpad08:59
jamBug Contacts, which is a direct subscriber.08:59
jamhttps://bugs.launchpad.net/bugs/7494108:59
_mup_Bug #74941: Database permission exception in ticket expiration <lp-foundations> <Launchpad itself:Fix Released by flacoste> < https://launchpad.net/bugs/74941 >08:59
lifelessperson merge happily creates dual subscriptions to one bug08:59
lifelessjam: you're in canonical-bazaar which is in launchpad which was in launchpad-bugs09:00
wgrantjam: That was pre-merge.09:00
wgrantjam: That team no longer exists. Are you still getting mail?09:00
jamwgrant: ok, it was about 20 bugs from this morning, about 4 hours ago09:00
lifelessthat was me :)09:01
wgrantProbably lifeless unsubscribing ~launchpad-bugs from half the world.09:01
wgrantJust after the contact address was removed.09:01
jamlifeless: correct, most of them are you09:01
jamthough not all unsubscriptions09:01
wgrantSome deprivatisations?09:02
jtvstub: are you reviewing?  https://code.launchpad.net/~jtv/launchpad/db-bug-790084/+merge/6284509:02
jamwgrant: at least one of them, yes.09:02
jamAnyway, if it is going away now, great. I don't have any *proof* of that yet, but I also wanted to clearly state that launchpad doesn't clearly let me unsub09:02
jamthis was a ~bzr issue. The community wants yet-another team09:02
wgrantjam: Well, the subscription is already removed.09:02
wgrantYou can't unsubscribe, since it was done between you receiving the email and reading it :)09:03
lifelessjam: you can't unsubscribe because you aren't subscribed09:05
jamlifeless: sure. Though having gotten emails within a couple hours, not having actually unsubscribed myself, and not having gotten a clear "you are now unsubscribed" made that a bit unclear09:09
wallyworld_lifeless: are you able to run some sql against qastaging for me? i don't think there's a dba around. i'd like to see the result set and query plan09:10
lifelesswallyworld_: sure09:10
wallyworld_https://pastebin.canonical.com/47947/09:11
wallyworld_thanks09:11
lifelessjam: FWIW see the activity log09:11
lifelesswallyworld_: FTR - losas can do this, we have 24x5 coverage, stub can do it - he's here, and all squad leads can as well :)09:11
wallyworld_oh ok. thanks for the clarification09:11
wallyworld_you want a losa to do it this time?09:12
lifelessno, I said sure :)09:12
lifelessbesides which, its running now.09:12
wallyworld_np.09:12
lifeless50 seconds09:13
wallyworld_and hot?09:13
lifeless6.609:13
wallyworld_it's for the person picker. it does correct ordering of results etc09:14
lifelessso - too slow by at least 2.1 seconds09:14
wallyworld_i think that time is ok for qas?09:14
lifelessno09:14
lifelessremember vocabs count(*) and execute09:14
lifelessqas is only slightly slower than prod at query execution09:14
wallyworld_sure. i never know how much to discount for the fact that qas is so slow09:14
wallyworld_right09:15
lifelessdon't discount at all ever09:15
lifelessdo you want all 100 rows of output ?09:15
wallyworld_sure. but looks like it's back to the drawing board since the query is slow. perhaps an explain can say why09:16
lifelesshave we added tje person fti yet ?09:16
wallyworld_i think it's already on qas?09:17
wgrantlifeless: I don't think so.09:17
wgrantlifeless: I asked stub about it.09:17
wallyworld_ah. that could explain it. the new query is actually simpler than the current one i am pretty sure. less subselects09:17
wallyworld_does staging or dog food have the person fti?09:18
lifelesshah09:19
lifelessyou have't prepped for this at all09:19
wgrantDF has it.09:19
lifelessI'm going to skip the results09:19
lifelessand talk you through working on queries in our environment a little :)09:19
lifelesswallyworld_: https://pastebin.canonical.com/47948/09:19
* wallyworld_ is scared09:19
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: henninge | Critical bugs:209 - 0:[######=_]:256
wallyworld_ok got the pastebin09:20
lifelessnote the estimated cost -  26163809:21
lifelessthats huge09:21
wallyworld_yeah09:21
lifelessthe Merge Left Join  (cost=0.34..212979.61 rows=7785 width=834) (actual time=1539.047..51003.757 rows=3942 loops=1)09:22
lifelesscontains most of the time09:22
lifelessMerge Left Join  (cost=0.00..207878.63 rows=1295397 width=830) (actual time=23.991..47925.318 rows=1271338 loops=1)09:22
wallyworld_that's to the ircid table i think. that table is quite small i thought09:22
lifelessand that then shows whre its going - 1.2M rows09:22
lifelessperson09:22
jamlifeless: its only 1.2Million :)09:23
wallyworld_would a subselect be quicker i wonder09:24
lifelesswallyworld_: nope09:24
lifelessthis is a selectivity thing09:24
lifelessthere is no index on displayname09:24
lifelessthere is no index on fti09:24
wallyworld_the index on displayname is on the todo list ie we need to get it added09:25
wallyworld_same with fti09:25
lifelesswallyworld_: ok so process09:25
lifelessyou can't sensibly craft *any* queries without getting measurements with indices added09:25
lifelesswhich losas/stub can do09:25
lifelessstub: while you're here ;)09:26
wallyworld_i was initially just after the result set, and though why not see the explain while we were there09:26
=== almaisan-away is now known as al-maisan
lifelessstub: our schema claims person_fti is indexed.09:26
lifelessstub: qastaging has no index on person.fti; I'm guessing production is the same.09:26
wallyworld_lifeless: i was initially looking to see the correctness of the results. i shouldn't have asked for explain yet. sorry.09:27
lifelesswallyworld_: its all good09:27
lifelesswallyworld_: I wouldn't do this in separate phases:09:27
wallyworld_well, if the results are crap, no good profiling the query09:27
lifelesswallyworld_: the ability to get the right results in the right timeframe (subsecond render time) requires working on both things at once09:27
wallyworld_fair enough. i was too eager after fighting with storm for a few hours09:28
lifelessgenerally speaking for collections to meet our goals the query has to be ~500ms stable09:29
wallyworld_ok09:29
wallyworld_so if we need to get person.fti set up, i'd like to get person.displayname done too09:29
wgrantjam: ~launchpad had a few hundred ancient public bug subscriptions. They are currently being removed.09:30
wallyworld_i'll try and catch stub later to ask him09:30
lifelesswallyworld_: I'm confused though09:31
lifelesswhy are you checking displayname09:32
wallyworld_about?09:32
lifelesswhen fti includes displayname09:32
wallyworld_because we want exact matches to occur first09:32
wallyworld_and afaiu, fti doesn't do that09:32
wgrantstub had some compelling arguments for doing a string match first.09:32
wgrantstopwords and stemming and such.09:32
lifelessthe second clause does a plain old fti09:32
wallyworld_yes, wgrant beat me to it09:32
lifelessthe first clause uses an ||09:33
stub?09:33
lifelessstub: hi!09:33
lifelessstub: a few things lined up for you :)09:33
lifelessstub: firstly being whats up with person.fti being unindexed09:33
lifelesswallyworld_: in the second part of the query - 'AND NOT (Person.teamowner IS NULL)09:35
lifeless'09:35
lifelesswallyworld_: is a little weird, and that sort of thing can confuse the planner sometimes09:35
wallyworld_lifeless: that is as per the current query09:35
lifelessk09:35
wallyworld_i've kept the sort of stuff you mention above and reworked the select scaffolding and ranking around it all09:36
LPCIBotProject windmill-db-devel build #341: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill-db-devel/341/09:36
wallyworld_wow, that's poorly worded09:36
stubPerson.fti not having an index is a bug. The index probably got lost ages ago when we tried to switch from GIST to GIN indexes, but I have no way of being sure without trawling ancient backups...09:38
lifelessstub: can you create on prod/qas/staging ?09:38
* stub checks if he fixed that on prod last week09:38
wallyworld_stub: i have to duck off for dinner - after you have looked at the person.fti i'd love it if you could create a person.displayname index too :-)09:39
wgrantstub: Oh, we're using GIN now?09:39
wgrantstub: The dev index is GIST.09:39
lifelesswgrant: no09:39
lifelesswgrant: we tried too09:39
wgrantOr is that "tried and failed"?09:39
wgrantHeh.09:39
stubI'll create the fti indexes now. Do you have the query using displayname?09:39
wgrantRight.09:39
lifelessstub: https://pastebin.canonical.com/47947/ is the draft09:39
stubwgrant: 9.0 or 9.1 adds the feature we need... forget which09:39
lifelessstub: I'm not clear why we want to check displayname ?09:39
wallyworld_yeah, what he said ^^^^09:40
wallyworld_the pastebin, not the question09:40
stubwallyworld_: You sure you want exact match, and not say case insensitive prefix match like email address is?09:40
lifelessstub: I think we just want fti09:41
stubBoth can use an index, but they are different indexes.09:41
lifelessstub: I'd really like to understand why we don't.09:41
lifelessstub: because the current draft seems a bit crazy - its oring the exact and the fti checks together, and the fti match is a superset of the exact09:41
stublifeless: Because we dropped it ages ago and didn't recreate it, and the fti.py script isn't smart enough to catch this error.09:41
wallyworld_i was thinking exact match. wouldn't the fti pick up the other sort?09:41
lifelessstub: crossed wires. I'm cool on the fti thing - I know how that came to be.09:42
wallyworld_the exact matches are ranked higher than the fti ones09:42
stubwallyworld_: fti is case insensitive word matches. quite a different thing to an exact or prefix match.09:42
lifelesswallyworld_: fti will pick up everything. I don't think there is a single result the displayname check will match that fti won't.09:42
wallyworld_lifeless: yes, but the ranking is what we care about09:43
stublifeless: There are cases where stopwords and stemming gives broken results09:43
wallyworld_and fti has limiations there09:43
lifelessstub: but checking both is only useful if one won't match.09:43
lifelessstub: we should turn stopwords off for person.fti09:43
wallyworld_but how do we know one won't match ahead of time?09:44
stublifeless: we should tune fti everywhere, or switch to a different search engine.09:44
lifelesswallyworld_: I don't know what you mean by that09:44
wallyworld_maybe i misunderstood your previous staement09:44
wallyworld_"checking both is only useful if one won't match"09:45
lifelessyou have this09:45
stubwallyworld_: It is still one query09:45
lifelessOR Person.displayname = 'jon'09:45
lifeless ( Person.fti @@ ftq('jon') )09:45
lifelessthis is pointless unless Person.displayname = 'jon' can match something that Person.fti @@ ftq('jon') cannot09:45
wallyworld_that's what i'm using yes. but the ranking is different for each case above09:45
lifelessthe ranking is a separate discussion09:46
wallyworld_not if we want the results odered correctly09:46
lifelessno09:46
lifelessyou are doing two things09:46
wallyworld_it all has to be in the query if we want sql to do the ordering09:46
lifelessa) filtering on display name redundantly with fti filtering09:46
lifelessb) ranking on a separate test on display name09:46
lifelessa and b are entirely separate09:47
lifelessI am only talking about a09:47
wallyworld_ah, i think i see the problem09:47
wallyworld_yes, you are correct09:47
wallyworld_but the same token, the comparison to person.name is also unncessesary09:48
lifelesswe probably want to put the irc nickname into the fti09:48
lifelessthen we can can drop that from the filter09:48
wallyworld_that's a separate table. does that matter?09:48
lifelessyes, I agree that the name= check can be dropped too if its in the fti09:49
wallyworld_what blinded me was the original query had the check for name as well as fti09:49
lifelessneeds a little trigger love to update the fti on changes in the ircid table09:49
stubyes, the current infrastructure doesn't let us use values from separate tables. Need to replace that old stuff.09:49
lifelessstub: it doesn't? I thought it was trigger based...09:49
stubit is, but automatically generated and maintained by fti.py09:49
lifelessah right09:50
lifelessso the glue we use is limited09:50
lifelessthe underlying facility is agnostic09:50
lifeless?09:50
stubYes. If we stick with tsearch2, we should hand roll the indexes and triggers in some or all cases09:50
lifelesswallyworld_: I thought all persons had to have an email address ?09:51
stubfti index exists on production now... doing staging and qastaging09:51
stubexcept teams09:51
lifelessah right09:51
wallyworld_yes, what he said09:51
wallyworld_stub: the wife is getting anxious i'm not at dinner? you around for another hour or 2? i'll give you a new version of the query09:51
lifelessteams can't have irc etc09:51
lifelessI suspect a union for the team/nonteam case might be better.09:51
wallyworld_lifeless: yes, hence the left join09:51
stubwallyworld_: Sure09:52
wallyworld_thanks09:52
lifelessthen you can use an inner join rather than a left join09:52
wallyworld_lifeless: fair point09:52
lifelessand skip the ircd check on teams09:52
wallyworld_i'll look into it after food09:52
wallyworld_thanks for the input. i've been looking at it too long :-(09:52
lifelessno worries09:54
lifelesswill kibbitz more tomorrow09:55
lifelessfwiw there are 10K emails matching that query10:05
lifelesswallyworld_: https://pastebin.canonical.com/47949/10:08
lifelesswallyworld_: I think you want a union - one for fti, one for email10:08
lifelessat minimum10:08
lifelessI seem to recall that the old query had that10:08
wgrantlifeless: It's not clear how we want to rank.10:10
lifelesssure10:10
lifelesswe can probably get 500 rows back (5 * union elements) and then rank & filter10:10
lifelessin 300-400ms10:10
wgrantAnd what if we get 10000 email address matches back?10:10
lifelesswgrant: reread what I said10:13
wgrantlifeless: How do you get 500 rows out of 10000 rows/10:14
wgrant?10:14
lifelesswgrant: limit 100 in each union component10:14
wgrantSo rank, filter, collate, rank and filter?10:15
lifelessyes10:15
lifelessits not ideal10:15
lifelessbut triggering stupid plans isn't ideal either10:15
wgrantThis is true, but hopefully missing a less bad solution.10:16
bigjoolsmorning10:18
wgrantbigjools: Isn't the UK not here?10:18
lifelesswgrant: well, I'll take that under advisement, but its clearly possible to deliver a 500ms or so query using this approach.10:21
lifelesswgrant: so thats the bar to reach for any alternate solution10:22
wgrantlifeless: Sure.10:22
bigjoolswgrant: looking around me, it's very much business as usual (pissing it down)10:22
wallyworld_lifeless: yes the original query had 4 or 5 unions but then proceded to mess up the ordering. i thought i'd see how it ran with fewer queries since it's all about the person table except for the join to email and irc. but if it's suboptimal i'll look to change the approach. i thought it was worth revisiting to see how it ran10:26
lifelesswallyworld_: I trimmed the query back to just emailaddress + fti and it triggered the left merge join10:26
lifelesswallyworld_: which is size(table) overhead10:26
wallyworld_ouch10:27
lifelesswallyworld_: individually the email address prefix search and the fti search are both 150ms10:29
lifelesscombined 500010:29
wallyworld_wow.10:30
jtvhenninge: hadn't noticed your review — a belated vielen Dank!10:30
bigjoolswgrant: any thoughts on my email about PCJs in the queue?10:32
wgrantbigjools: "aaaa"10:32
bigjoolsyes10:33
wgrantbigjools: I think we fairly clearly have to have single-source PCJs for now.10:34
bigjoolsyes10:34
wgrantAnd by the time we have multi-source ones we will hopefully have dropped PackageUpload.10:34
bigjoolshaha10:34
bigjoolsPCJ will end up a copy of PCJ10:34
bigjoolserr10:34
bigjoolsPCJ will end up a copy of PU10:34
wgrantMm.10:35
bigjoolswgrant: also lifeless doesn't like having a suspended job state10:35
bigjoolswhich means PU will have to stay10:35
wgrantNeither do I.10:35
wgrantWell, something like PU will have to stay, yes.10:36
wgrantI have vague plans about unifying them.10:36
wgrantInto something sort of like PU, but not really.10:36
wgrantBut that is too invasive for now.10:36
wgrantThe PCJ solution will do.10:36
bigjoolsStevenK, wgrant: anyway, what did you think about the override problem I described ?10:38
bigjoolswe need PCJ.copypolicy and PCJ.overridepolicy I tihnk10:38
wgrantbigjools: I guess the initial pre-suspension run gets and stores the overrides?10:39
bigjoolsand the overriding done in copyTo() needs to be refactored - again10:39
wgrantThat is trivial.10:39
wgrantIt's like three lines.10:39
wgrantIt always needed to be changed anyway.10:40
wgrantTo detect newness.10:40
bigjoolsno, the overrides are added after it suspends10:40
wgrantHow?10:40
bigjoolsI've already done newness detection10:40
wgrantIt needs to be shown in the UI, you say.10:40
wgrantSo it has to be done before suspension.10:40
bigjoolsit just uses the ancestry check again10:40
bigjoolsmanual overrides are added when it's suspended10:40
bigjoolsauto overrides are applied as they are now, which is finew10:41
wgrant4. Default overrides. - These are currently done at the copying stage in Steve's recent changes.10:41
wgrantWe actually need them to apply before then, in the PCJ metadata when the job10:41
wgrantsuspends itself so the defaults appear in the UI.10:41
bigjoolscorrect10:41
bigjoolsthat was my point in the email :)10:41
wgrantSounds like you need to add the overrides before it suspends.10:41
wgrantThen the AA adds the missing ones.10:41
bigjoolsAAAAAAAAAAAAA10:41
wgrantI'm not sure whether that's a pun or a scream of realisation.10:42
wgrantOr both.10:42
bigjoolsI realised it over the weekend when I was writing lots of code to do all this10:42
bigjoolswip branch: https://code.launchpad.net/~julian-edwards/launchpad/copies-must-use-queue-bug-789502/+merge/6274510:42
LPCIBotProject windmill-db-devel build #342: STILL FAILING in 1 hr 7 min: https://lpci.wedontsleep.org/job/windmill-db-devel/342/10:43
bigjoolsI've also done a change to fix overrideSource to add stuff to the metadata for PCJ10:44
bigjoolsbut that failed in ec2 with 1400 errors.  WTF10:45
wgrantHahah10:45
lifelesswin10:54
bigjoolswgrant: so you agree with me that I need to add those 2 policies as columns on the PCJ?10:57
wgrantbigjools: Why?10:57
lifelessbigjools: don't they apply to normal uploads too ?10:57
wgrantI don't understand why the PCJ can't find them itself. At least the override policy is trivial to find from Archive.10:58
wgrantHm.10:58
wgrant19:58:28 < wgrant> I don't understand why the PCJ can't find them itself. At least the override policy is trivial to find from Archive.10:59
bigjoolsno11:00
bigjoolsthink about sync copies11:00
bigjoolswell, the override policy is probably ok11:00
bigjoolsbut the copy policy needs to live on the PCJ11:00
bigjoolssince it depends on the type of copy operation11:01
wgrantArgh11:01
wgrantFor now, yeah, probably.11:01
bigjoolsthe other option is to have a SyncPackageCopyJob11:01
bigjoolsbut.... <shudder>11:01
wgrantDon't ever say that again.11:01
bigjoolsand, I really hope my ISP is not playing up today11:01
wgrant19:57:02 < bigjools> wgrant: so you agree with me that I need to add those 2 policies as columns on the PCJ?11:02
wgrant19:58:25 -!- bigjools [~quassel@canonical/launchpad/bigjools] has quit [Quit: No Ping reply in 180 seconds.]11:02
henningeIf a team is an administrator for another team then all members of that first team have administrator rights on the second team, correct?11:02
wgranthenninge: Yes.11:02
bigjoolswgrant: that's twice now11:02
henningethanks.11:02
wgrantbigjools: Yes. But you spoke just over a minute before you were timed out after three minutes.11:02
wgrantA little odd.11:02
=== al-maisan is now known as almaisan-away
bigjoolsnow, how to implement policy lookups11:03
bigjoolsyeah odd11:04
wgrantProbably named adapters for now.11:04
bigjoolscould be a utility11:04
wgrantEr, that, yes.11:04
wgrantWait.11:04
bigjoolsbut adapter fits better11:04
wgrantA utility that takes names, or a set of named utilities?11:04
stubwallyworld_: http://paste.ubuntu.com/614872/ is where I seem to be ending up. Inner query selects all the rows that can be retrieved quickly using indexes, outer query filters unwanted rows. ~400ms on staging with 'jon'11:20
stubAnd the index on lower(displayname)11:21
wallyworld_stub: awesome thanks. i'll look. i was just in the middle of doing my own query refactoring. it would be easier if it were pure sql but we also have to weave it into storm11:22
stubwallyworld_: Aren't you supposed to be eating dinner?11:22
=== jtv is now known as jtv-afk
wallyworld_stub: finished :-) doing sql now11:22
stubwallyworld_: The with statement can be inlined I think without causing slowness11:22
stubwallyworld_: (And does storm support WITH now? I know there were bugs open on this, maybe patches too)11:23
wallyworld_stub: ah, i haven't used with before11:23
wallyworld_is that standard sql?11:23
stubwallyworld_: like a view or temporary table for just that query11:23
wallyworld_excellent. that's nice11:24
stubwallyworld_: I believe it is standard. Its the same syntax for recursive queries.11:25
stubSQL-99 or later I think11:26
wallyworld_right. shows my sql is a little dated11:28
lifelessstub: store.with_().find()11:30
stubwallyworld_: ^^11:30
wallyworld_yeah. just found some examples in branchcollection11:31
wallyworld_thanks11:31
lifelessstub: I was saying to wallyworld that filtering on displayname is likely unneeded11:32
lifelessstub: FWIW11:32
stubYer, but it is cheap with an index so what the hey :)11:32
stubJust not substring - prefix or exact is fine.11:33
wallyworld_stub: thanks for the help. muchly appreciated.11:35
stubwallyworld_: Just remember if displayname matching stays in, we need an index: create index person__displayname__idx ON Person(lower(displayname));11:37
=== almaisan-away is now known as al-maisan
lifelesswallyworld_: that means you'll need to land this on db-devel11:49
wgrantWhy?11:49
wgrantCan't we create it live?11:49
wallyworld_stub: ack that. we don't need the index though if i use a case statement for the rank. ie we don't need any where terms matching on name==? or displayname==?11:49
lifelessmmmm11:49
wallyworld_just a fti match and a case statement for the rank11:50
lifelesswgrant: we probably can, with a -1 patch11:50
wgrantlifeless: Exactly.11:50
lifelesswgrant: can you guide wallyworld_ through that if ineeded?11:50
wgrantNo point db-develing it.11:50
lifeless<- ETIRED11:50
wgrantSure.11:50
wallyworld_btw, i was also thinking we could do the index live *if* required11:50
wgrantWe discussed this on the call a couple of days back.11:50
wgrantSeemed like it should work OK.11:50
stubwallyworld_: Correct. You only need the index if we are selecting on displayname, not using it in already selected rows.11:50
stubYes, we can create the index live.11:51
wallyworld_indexes cost cpu cycles, disk space etc so if we can get away without....11:51
wgrantwallyworld_: That devel landing of yours should unbreak windmill?11:54
wallyworld_wgrant: some tests not all :-(11:54
wgrantwallyworld_: Well, most of the picker ones should work, at least.11:54
wgrantThe others we can see in an hour.11:54
wallyworld_yep11:54
wallyworld_wgrant: afaiu, there were some onkeypress event handling issues with ff411:55
wallyworld_and windmill11:55
wallyworld_hence some tests failed11:55
wallyworld_but the functiionality works on in real life11:55
wallyworld_/son/ok11:55
wgrantbigjools:  4. Write a new SyncCopyPolicy that auto-accepts everything not NEW11:56
wgrantHuh?11:56
wgrantAutosyncs don't have different acceptance rolls.11:56
wgrantEr.11:56
wgrantrules.11:56
bigjoolsyes they do11:56
wgrantOh?11:56
bigjoolssee the existing Sync policy in the upload processor11:57
bigjoolsfor a mass sync you don't want it all hitting the queue11:57
lifelesscould someone give https://dev.launchpad.net/ArchitectureGuide/ServicesRoadmap a once-over for sanity ?11:57
lifelessI haven't brought in the full list of service opportunities from the analysis yet11:58
wgrantbigjools: Why not?11:58
wgrantbigjools: You're not going to be mass-syncing a frozen series.11:58
bigjoolshmm good point11:58
wgrantAnd you probably don't want to accidentally do it.11:58
wgrant=> no point having it bypass the freeze.11:58
bigjoolsalthough this is what sync-source -a does right now, we just rely on them only running it at the right time11:59
wgrantYes.12:00
wgrantMass syncs are first done immediately after opening, and last done at DIF.12:00
wgrantThe archive does not normally freeze in the meantime.12:00
bigjoolswe probably still need a separate policy because we don't want to send emails12:01
bigjoolsneed to add a send_email bool to them12:01
bigjoolsStevenK: note that --^12:01
wgrantbigjools: Right, a separate policy is reasonable for that, but your original reasoning had me a little surprised.12:02
bigjoolsyeah, I was mistaken12:02
lifelessstub: ^ can has your eyeballs ? :)12:06
stubI'm using them...12:06
stubThe services road map12:06
stub?12:06
wallyworld_stub: using lower(displayname) like ? picks up matches that fti misses so looks like we'll need that index12:11
stubk. Do you have an example query btw?12:11
stubquery string I mean12:11
wallyworld_ie if displayname is "Jonathan Smith"12:11
wallyworld_then searching usinfg the term 'jon'12:12
wallyworld_will only match using the displayname term12:12
wallyworld_not the fti12:12
stubRight. Because 'jon' isn't a word in that displayname.12:12
stubFeel free to add that example into the doctests in case someone decides to pull it in the future :)12:12
wallyworld_it's a partial word. i was hoping it would match12:13
stubif you get lucky with stemming, it might.12:13
stubBut not in this case :)12:13
wgrantI wonder if there's a name stemmer around.12:13
wallyworld_since fti on person is only name,displayname - can we match it match more loosely without costing too much?12:14
wgrant"more loosely" is very difficult to define :/12:14
wallyworld_sure. substring match then :-)12:14
stubfti searches are word searches. If you want substrings, we need a different sort of index12:15
lifelessstub: yes12:15
wallyworld_ah ok.12:15
stub(which is possible, but not yet in LP since most thinking is we want to get this sort of search out of the db)12:15
wallyworld_how does google do it?12:15
stubgoogle doesn't do substring searches12:16
wallyworld_i meant searching in general12:16
stubpretty much the same techniques as tsearch2, but more intelligence.12:16
stubsuch as detecting typos etc. and much better ranking.12:17
wallyworld_ok12:17
stubtsearch2 doesn't do phrases though.12:17
lifelessnot to mention a massively parallel index implementation12:19
lifelessright now we can't sanely do substring matches12:20
lifeless(by yes I meant the services roadmap)12:21
wallyworld_but at least we can do sensible thinks like startswith ie like which cover what most people expect when using the picker12:21
wallyworld_stub: do you feel like creating the displayname index given we will be needing it?12:22
stublifeless: the in datacentre authentication stuff is assuming HTTP communication between a client and server, and that authentication will be handled by a proxy rather than the app. Might want to be explicit about this, and list this proxy feature as a infrastructure dependency.12:22
stubwallyworld_: Sure. I've added it to my list.12:24
wallyworld_stub: thank you.12:24
lifelessstub: we already have that in place with apache though, no ?12:27
stublifeless: Which means in-datacentre http stuff will be going through both haproxy and apache, increasing latency and complexity12:28
lifelessstub: somewhat yes, but lowers the requirements for each service12:30
stublifeless: sure.12:31
stublifeless: Document seems fine anyway. I'm fuzzy today though so take my proofing with a grain of salt :)12:31
lifelessstub: I have revised that section12:32
lifelessstub: thanks for the loan of your eyeballs12:32
jtvbigjools: what should existing PackageCopyJobs have for copy_policy?12:32
bigjoolsjtv: InsecureCopyPolicy is the default12:35
jtvOK12:35
bigjoolsI am naming it 'insecure' in my branch12:35
jtvGoing to be a bit nasty extracting all the source package names from the metadata.12:35
bigjoolsjtv: but I think a default of NULL is fine12:35
jtvSo the string text should be 'insecure'?12:35
bigjoolsif it's NULL we can default it in code, which makes it more flexible12:36
jtvIn this case I'd read NULL as "not applicable," really…12:36
bigjoolsjtv: also we don't have any existing copy jobs to worry about outside of dogfood, I'd be happy to blitz those, so you don't need to worry  about migrating the name12:36
jtvExcellent.12:37
bigjoolswhat runes do I need to get push --stacked-on to work?  I tried a local file, lp:, bzr+ssh: all of which fail for different reasons12:53
wgrant--stacked-on=/~user/project/branch might work... I forget if it was fixed.12:54
wgrantA year ago it was impossible to do it cleanly.12:54
wgrantYou had to --stacked-on=bzr+ssh://..., but then LP would fail to parse that, so you had to change the path manually to /~user/project/branch afterwards.12:54
lifelessbigjools: stacking normally occurs automatically12:55
bigjoolslifeless: which is great until I want to override the default12:55
bigjoolsbecause pushing db-devel branches is far too painful now12:55
bigjoolswgrant: yes, it all seems fecked12:56
bigjoolsmy very ADSL has poor upstream :(12:56
LPCIBotProject windmill-devel build #153: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill-devel/153/13:04
bigjools42MB and still pushing :/13:08
lifelessI suspect its not stacking13:11
lifelessthats -huge-13:11
lifelesspushing a new db-devel branch with the default behaviour should be much smaller than that13:12
bigjoolsI killed it13:15
bigjoolsit's usually around a 14MB push13:15
bigjoolslifeless: so I am guessing that possibly my previous attempts to push on a stacked branch have tainted something, this bugger will no now longer push up and stack even on db-devel it seems13:27
bigjools 30908kB    37kB/s \ Fetching revisions:Inserting stream:Estimate 139517/107453713:27
lifelessbigjools: yes, nuke it and start over.13:29
bigjoolslifeless: gah13:29
lifelessfrom orbit if you can13:29
bigjoolslifeless: you mean a local nuke?  I already nuked on LP13:29
lifelessI've documented what we need to do to make db-devel pushes fast ongoing13:29
lifelessbigjools: no, just on lp13:29
lifelessbigjools: 'delete branch' that is13:30
bigjoolslifeless: well it dint wurk :)13:30
lifelesshmm13:30
lifeless0030 here13:30
lifelessI has to go13:30
bigjoolsI will make an entirely fresh branch13:30
bigjoolsah, go then :)13:30
lifelessperhaps spiv or vila or someone can give you a hand ?13:30
lifelessnn13:30
LPCIBotYippie, build fixed!13:39
LPCIBotProject db-devel build #595: FIXED in 5 hr 1 min: https://lpci.wedontsleep.org/job/db-devel/595/13:39
=== matsubara-afk is now known as matsubara
henningeadeuring: Hi13:49
henningeadeuring: Can we have the call at half past, please?13:50
henningeadeuring: I'll am having lunch now.13:51
=== henninge is now known as henninge-lunch
adeuringhenninge-lunch: ok; let's do the standup at 1330 UTC14:12
=== henninge-lunch is now known as henninge
henningeabentley: Hi!14:34
abentleyhi!14:34
henningeabentley: stand up?14:34
abentleyhenninge: sure.14:34
wgrantbigjools: Before I disappear...15:07
wgrantbigjools: You're not supporting separate binary overrides?15:07
bigjoolsyarp?15:07
bigjoolsnot for syncs15:07
wgrantHmm. Interesting. OK.15:08
bigjoolsbinary syncs?  no :)15:08
wgrantThis isn't just syncs.15:08
wgrantIt's going to immediately be used for security updates too.15:08
wgrantStill, should be better than it is now, as long as you make overrideBinary throw an error.15:09
bigjoolssecurity updates are not going through this job code yet, and I don't intend to complicate this project by extending it ad infinitum15:10
wgrantTrue.15:10
wgrant(three copy mechanisms, yay)15:10
bigjoolsso, I always intended it to happen later15:10
bigjoolsyes, but we're heading in the right direction15:11
wgrantYeah.15:11
bigjoolsand we'll have the One True Way Of Copying15:11
wgrantThis is something that will be able to subsume the other two, right.15:11
bigjoolswhich will also make a shedload of oopses disappear15:11
wgrantAnd it's more easily mergable with uploads.15:11
wgrantAt least we are really close to being able to delete delayed copies.15:13
wgrantThat will all be worth it.15:13
bigjoolsalso, the override policies are a bit of a pain with regards to detecting NEW15:13
wgrantOh?15:13
wgrantI think they probably need extension.15:13
wgrantTo return NEWness explicitly.15:13
bigjoolsthe way they're written, you can only do it with a combo of two policies15:13
bigjoolswhich is what one of them is doing by using .missing()15:14
wgrantSo we seed it with the origin overrides and everything NEW, override them with target overrides (unsetting NEWness where appropriate), etc.15:14
wgrantAnyway, I should depart.15:16
bigjoolsI am doing it differently now15:17
bigjoolsgood night anyway15:17
=== al-maisan is now known as almaisan-away
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs:209 - 0:[######=_]:256
henningeadeuring: did you see Francis' comment on your  MP?15:53
adeuringhenninge: not, not yet15:53
=== salgado is now known as salgado-lunch
adeuringhenninge: I'll add the things he suggested15:54
henningeadeuring: ok. Actually, I don't think I'll be able to finish your review today. Do you want me to give it back or shoudl I continue in the morning?15:55
adeuringhenninge: I don't mind that much. If you fancy to look at it tomoorw, that would be fine, but i can also ask tomorrow's OCR15:56
henningeadeuring: ok, I'll give it back and see what the morning brings.15:57
LPCIBotProject windmill-db-devel build #343: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill-db-devel/343/16:06
LPCIBotProject windmill-db-devel build #344: STILL FAILING in 43 min: https://lpci.wedontsleep.org/job/windmill-db-devel/344/16:50
=== beuno is now known as beuno-lunch
abentleybigjools: I am exposing Archive.external_dependencies over the web service.  Should validate_external_dependencies move to the model, so that invalid dependencies cannot be set?17:21
bigjoolsabentley: yes, there's no much choice since we don't have a browser layer for the api17:21
abentleybigjools: I guess the other option would be to export it read-only, and supply a mutator that accepted structured data.17:22
bigjoolsabentley: no, that would be a bad idea, we need to validate it or it can cause all builds to fail17:23
abentleybigjools: I think a structured mutator would make it impossible to supply invalid data.17:24
bigjoolsfamous last words ;)17:25
bigjoolsthe field is a *horrible* hack anyway, don't spend too much time on it because I want to remove it in the future17:25
abentleybigjools: Sure, happy to do it the easy way.17:26
bigjoolsonce the people who use it are using derived distros in LP then it will get removed17:27
LPCIBotProject windmill-db-devel build #345: STILL FAILING in 41 min: https://lpci.wedontsleep.org/job/windmill-db-devel/345/17:31
=== salgado-lunch is now known as salgado
=== beuno-lunch is now known as beuno
LPCIBotProject windmill-db-devel build #346: STILL FAILING in 41 min: https://lpci.wedontsleep.org/job/windmill-db-devel/346/18:27
=== elmo__ is now known as elmo
=== almaisan-away is now known as al-maisan
=== matsubara is now known as matsubara-afk
lifelessmorning19:37
=== al-maisan is now known as almaisan-away
lifelessflacoste: hiya19:57
lifelessflacoste: can talk whenever you want.19:57
flacostelifeless: give me 10 minutes19:59
lifelesscool19:59
lifelessI'll pat le chât some more19:59
flacostelifeless: ok, skype me whenever you want20:04
LPCIBotProject windmill-devel build #154: STILL FAILING in 1 hr 12 min: https://lpci.wedontsleep.org/job/windmill-devel/154/20:37
lifelessflacoste: lib/lp/registry/model/person.py line 130921:05
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: - | Critical bugs:209 - 0:[######=_]:256
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: - | Critical bugs:208 - 0:[######=_]:256
=== soren_ is now known as soren
lifelessflacoste: launchpad-owner -21:49
lifeless 48 | -owner$              | Reserved for mailinglists                                           |21:49
lifelessflacoste: thats why21:49
flacostelifeless: makes sense, then launchpad-manager?21:55
lifelessand done21:55
lifelesslaunchpad-leader21:55
flacostethanks21:55
lifelessyou can change if you like21:55
flacosteeven better21:55
flacostei prefer to be a leader than a manager :-)21:55
lifelesslaunchpad-leader launchpad-architect launchpad-strategist21:55
lifelessall setup21:55
flacosteawesome21:55
lifelessmailing -dev now21:55
=== maxb_ is now known as maxb
lifelessthe owner of launchpad-leader needs tweaking I guess21:56
lifelessand done22:00
lifelessflacoste: I've made you owner of -leader22:01
lifelessflacoste: you can hand it off to ~canonical-cdo-manager if you want :)22:01
flacoste:-)22:02
lifelesshowever https://launchpad.net/~launchpad-security/+members can be sorted out now \o/22:02
flacostelifeless: done22:05
lifelessflacoste: not much point having jml & I as regular members ;)22:05
lifelessflacoste: we get that via ~launchpad22:05
lifelessLaunchpad strategist2 minutes ago –Approved22:06
lifelessahha! now done :)22:06
lifelessand now I can fix up the description :)22:07
flacoste:-)22:07
flacosteyep, all done22:07
flacosteand i did ~launchpad also22:07
lifelesscool22:08
lifelessI've changed the description to 'The contact point for security issues in the Launchpad software (https://launchpad.net/launchpad-project).'22:09
lifelessa little more open and a little less confusing IMNSHO22:09
lifelessflacoste: wow, we have 56 engineers !22:10
flacostei wish!22:11
lifelessbeuno and rockstar still there22:12
lifelessand tim22:12
flacosteand salgado and mwh22:12
lifelessI don't know if it matters22:12
lifelessthe big thing for me was -security fixup22:12
flacostedoes it matter, the trouble is, i don't know either22:13
lifelessnow thats done, I'm going to go workup some fake numbers for test performance :)22:13
flacostemwh and salgado do review branches from time to time22:13
flacostebut it might not matter22:13
lifelessI was wondering22:13
lifelesswhy does -security go to a mailing list ?22:13
flacostearchiving22:14
flacostei think22:14
flacostethe same reason launchpad-bugs was in a way22:14
lifelessso we need those lists to accept any From: ?22:14
lifelessI wonder if removing the list would have any negative effect22:15
lifelessfolk would get the mails by default (because -security gets a subscription to security bugs)22:15
Ursinhaanyone here knows what dates launchpad use to search for modified_since tasks (lp.searchTasks)?22:15
lifelessthe one on bug I think22:16
cody-somervillelifeless, -security is also the bug supervisor22:16
cody-somervillelifeless, so we'd start getting all bug e-mails22:16
lifeless date_last_updated      | timestamp without time zone | not null default timezone('UTC'::text, now())22:16
lifelesscody-somerville: no, supervisor does not imply subscription22:16
cody-somervillewhen did that change?22:16
lifelessa while back - years.22:17
lifelessit surprised me too :)22:17
Ursinhathanks lifeless22:17
flacostereally?22:17
lifelessflacoste: cody-somerville: just checked22:19
lifelessyou will laugh22:19
lifelessif there is *no* supervisor, the owner gets a pseudo structural subscription.22:19
=== salgado is now known as salgado-afk
lifelessIf there is a supervisor, they do not get mailed.22:19
cody-somervillethat can't be right. I just got an e-mail for a bug because of being indirectly a member of the team thats the bug supervisor22:20
lifelesslib/lp/bugs/model/bug.py line 206722:20
lifelesscody-somerville: that team may have a structural subscription22:20
lifelesswhats the team ?22:20
cody-somervillelaunchpadlib-developers22:20
cody-somervilleeither way, launchpadlib-developers don't show up on the bug as subscribed but I got notified which is confusing in its self22:21
lifelesscody-somerville: https://launchpad.net/~launchpadlib-developers/+structural-subscriptions22:21
lifelessso supervisor *stops* mail to owner and delegates setting some fields22:22
lifelessseparately the supervisor may have a structural subscription22:22
cody-somervillesomething must have created subscriptions for all the bug supervisors22:24
cody-somervillebtw, whats the difference between staging and qastaging?22:25
lifelessstaging runs the proposed next schema22:26
lifelessqastaging runs the live schema22:26
lifelesswe qa *all* our deploys on qastaging22:26
lifelesswe check db patch times on staging22:26
lifelessthere are some other minor differences but they are historical not intended: as and when we can we will eliminate them22:26
cody-somervillelifeless, I just tested. I created a project on qastaging and set the bug supervisor and it created a (structural?) subscription.22:27
lifelessflacoste: https://launchpad.net/~launchpadlib-developers is owned by leonardr22:27
lifelesscody-somerville: yes, thats to keep the old behaviour22:27
lifelesscody-somerville: you then delete the structsub22:28
lifelessand you're set22:28
cody-somervillelifeless, if private bugs are enabled by default, I assume the bug supervisor still gets directly subscribed?22:29
cody-somerville*private bugs by default is enabled22:29
flacostelifeless: let's ask a losa to change ownership to launchpad-leader22:29
lifelessflacoste: I can't delete the launchpadlib-developers subscriptions atm. Should we re-own the team ? https://launchpad.net/~launchpadlib-developers/+members22:29
lifelesscody-somerville: I suspect so.22:29
lifelesscody-somerville: at least until the disclosure project gets structural-private-stuff-done22:30
flacostelifeless: only a losa can change ownership, maybe ~launchpad should own the team22:30
lifelessflacoste: in the meantime, you're an admin - can you unsubscribe on https://launchpad.net/wadllib/+subscribe and https://launchpad.net/launchpadlib/+subscribe22:30
lifelessflacoste: ~launchpad works for me22:31
flacostelifeless: done22:31
flacostelifeless: if you can follow-up with the losa for the reown, i'd appreciate22:31
lifelessok22:32
lifelesscody-somerville: I just realised my reply, meant to be a little cheeky could be read as snarky... i didn't mean it that way22:32
lifelessflacoste: elmo helped out. Tis done.22:34
bigjools"flacoste deactivated by lifeless" - best email subject evar22:39
elmohahaha22:43
flacosteindeed, i lol when i saw it22:44
* lifeless aims to please22:44
flacostebigjools: do we have any soyuz components facility or it's SQL-maintained?22:45
flacostefor example, can we select which components are allowed within a distroseries22:46
bigjoolsflacoste: SQL, and yes in ComponentSelection22:46
bigjoolsalthough trying to change it might be futile since there's a lot of hard-coded crap :/22:47
lifelessbigjools: we want to add a component main to principia22:47
bigjoolsshould be fine22:47
bigjoolsthere's bits and bobs that expect universe to be there as well though22:48
lifelessin soyuz ?22:49
bigjoolsyes22:49
lifelessor more registryish code?22:49
flacostewhat happens if there are no components selection22:49
flacoste?22:49
bigjoolsI think it only affects uploading22:49
lifelessthe former won't matter as we're not doing builds - nothing beyond pushing to branches22:50
flacostewell22:50
lifelesss/won't/shouldn't/22:50
lifeless:)22:50
flacostei was going to reuse Archive.checkUpload for the official package branch permission22:50
flacosteand that's where i encountered components :-)22:50
flacosteseems like the parameter is required22:50
lifelessyes22:50
bigjoolsyes, because there's lots of ways of getting permission to upload22:51
bigjoolscomponent being one of them22:51
flacosteactually22:51
flacosteseems like component can be None22:52
flacoste        if (component is not None22:52
flacoste            and strict_component22:52
flacoste            and not self.checkArchivePermission(person, component)):22:52
flacoste            return NoRightsForComponent(component)22:52
flacoste        return None22:52
flacosteso not caring about component here might just work22:52
flacostefor principia at least22:52
flacostefor Ubuntu... what would component=None means22:52
bigjoolsyeah if you don't care about component don't specify ut22:52
bigjoolsit will check the other permissions; per-package and packageset22:53
flacostebigjools: would using component=None work in the context of bug 36509822:53
_mup_Bug #365098: Anyone who can write to a sourcepackage should be able to set the official package branch <lp-code> <package-branches> <Launchpad itself:Triaged> < https://launchpad.net/bugs/365098 >22:53
bigjoolsflacoste: if it's per-package, should work yeah22:53
flacosteor per-package set22:54
bigjoolsyep22:55
flacostefrom the code, i understand that the person must have permission to one component at least to get to the end of that method22:55
bigjoolsif it got that far and if you don't have any component permissions it'll fail you there22:56
=== Ursinha is now known as Ursinha-afk

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