/srv/irclogs.ubuntu.com/2011/01/26/#launchpad-dev.txt

thumper?!?!?!02:11
thumperline 765 of client.js02:11
thumperWTF02:12
* thumper heads for a real coffee02:27
lifeless=== Top 10 Time Out Counts by Page ID ===02:58
lifeless    Hard / Soft  Page ID02:58
lifeless     129 /  293  BugTask:+index02:58
lifeless      61 /  196  Distribution:+bugs02:58
lifeless      56 / 4821  Archive:+index02:58
lifeless      28 /   44  Branch:+index02:58
lifeless      12 /    3  Person:+related-software02:58
lifeless      11 /    2  Product:+filebug-show-similar02:58
lifeless       9 /    2  Distribution:EntryResource02:58
lifeless       8 /   29  MailingListApplication:MailingListAPIView02:58
lifeless       8 /    3  Cve:+index02:58
lifeless       6 /  156  POFile:+translate02:58
* thumper has a bad feeling about this03:39
thumperlifeless: when was the last rollout?03:40
wgrantthumper: 24th03:41
wgrant1224803:41
wgrant12263 should happen once mthaddon wakes up.03:42
thumperno03:42
* thumper slams the breaks on it03:42
wgrantWhy?03:42
* thumper raises the red flag03:42
thumperwgrant: try editing a bug description in qastaging03:42
wgrantTimeout?03:43
thumperno03:43
thumperoops03:43
thumperValueError: Unicode results must have a text content type.03:44
thumperin the zope publisher03:44
thumperI'm trying to figure out why03:44
thumperI thought it was just local for me03:44
thumperdue to me messing around03:44
wgrantI get a timeout :/03:44
thumperbut after I removed all my changes03:44
thumperit still oopses03:44
thumperso I checked qastaging03:44
wgrantSigh.03:45
wgrantlp-oops.c.c can only see up to QS1.03:45
thumperI've just emailed lp-dev03:46
wgrantHave you tried downgrading lazr.restful?03:47
thumpernot yet03:49
wgrantThat's a really strange error.03:50
thumperyes, it is03:52
wgrantI wonder if Windmill would have caught this.03:53
thumperprobably03:53
thumperactually, I think it is something I did03:54
thumperlast week03:54
* thumper thinks03:54
wgrantThe Windmill tests were passing OK before lazr.restful 0.15.3, I believe.03:54
wgrantHmm.03:54
wgrantNot lazr.restful.03:54
thumperhmm....03:55
wgrantStill broken with 0.15.0.03:55
thumperwgrant: same error?03:55
wgrantYes.03:55
thumper(Pdb) content_type03:55
thumper'application/xhtml+xml'03:55
thumperthe publisher expects it to start with 'text/'03:55
wgrantHah.03:55
thumperI changed something...03:55
thumperbut03:55
thumperit shouldn't have changed03:56
thumperthis03:56
lifelessthumper: when you get a gap, filing a bug to change the exception to show the wrong type would be helpful.03:56
wgrantWhat did you change? The webservice named adapters thing?03:56
thumperlifeless: it is in the zope publisher code03:56
thumperwgrant: yeah03:56
lifelessthumper: yes03:56
lifelessthumper: thus filing a bug rather than changing it in the first instance03:56
thumperbut this is asking for the representation of the description03:56
thumperwhich "should" have the same implementation03:57
thumperI wonder if the resulting content type has changed....03:57
thumperwe should be able to test this...03:57
lifelesson qastaging03:57
lifelessSELECT heat\n FROM Bug, Bugtask, Product\n WHERE Bugtask.bug = Bug.id\n AND Bugtask.product = Product.id\n AND Product.project IS NOT NULL\n AND Product.project = 82\n ORDER BY Bug.heat DESC LIMIT 1'<br /> Parameters:()<br /> Original error: QueryCanceledError('canceling statement due to statement timeout\n'03:57
lifelessthumper: bug editing works fine on qastaging in the web ui03:59
lifelessthumper: could it be your client asking for something odd?03:59
thumperlifeless: it didn't for me03:59
lifelesshttps://bugs.qastaging.launchpad.net/launchpad-foundations/+bug/1234 - edit it using the ui03:59
_mup_Bug #1234: Gina is an unmaintainable mess of command line options, environment variables and shell scripts <lp-foundations> <Launchpad itself:Fix Released by debonzi> < https://launchpad.net/bugs/1234 >03:59
thumperOOPS-1852QS1504:00
wgrantI used that very bug.04:00
wgrantIt broke.04:00
lifelesswgrant: timeout getting heat for the project gourp04:00
wgrantOh.04:00
wgrantSo it was.04:00
lifelessI've now edited it three times without trouble04:00
thumperOOPS-1852QS1604:00
wgrantdevpad has the OOPS now.04:00
wgrantdevpad doesn't have QS16 :(04:01
thumperthat was my oops for trying to edit it04:01
lifelessthumper: using the web UI ?04:01
thumperyes04:01
lifelessthumper: just now, or before ?04:01
thumperjust now04:01
lifelessthumper: this is odd, if you refresh you'll see i've edited it04:01
thumperlifeless: which browser04:01
lifelesschrome04:01
wgrantChromium 8.blahblah here.04:02
lifelesschromium 8.0.552.224 (685999)04:02
lifelessI'll try ff04:02
thumperlifeless: not the title04:02
thumperlifeless: the description04:02
lifelessbah04:02
lifelessok04:02
lifelessOOPSes for me04:02
lifelessyou're not crazy04:03
wgrantthumper: Which adapters did you change?04:03
wgrantI know you changed person.04:03
wgrantBut did you also change TextField or whatever it is?04:03
lifelesswow, 300ms to get hottest heat for a project gorup04:04
thumperwgrant: yes, I changed Text04:04
lifeless-slow-04:04
wgrantAh, yes.04:04
thumperwgrant: but it does the same thing04:04
wgrantSo it does.04:05
thumperwgrant: it appears to  be the content type04:05
thumperthat is the problem04:05
thumpernot the rendering of the description04:05
thumperI wonder if there was a lazr restful change that played with the content type04:05
thumperit isn't something I remembered from last week04:05
wgrantExcept that it still dies with lazr.restful 0.15.0.04:05
thumperreally?04:05
thumperWTF?04:05
wgrantIt was the first thing I tried. Let me try again.04:05
lifelessbisect time ?04:06
wgrantDone already.04:06
wgrantIt's 12251, as expected.04:06
wgrantGoing further into the diff now.04:06
wgrantBut first trying lazr.restful again...04:06
wgrantAlso, our appserver startup time fucking sucks.04:06
lifelesstagging it bad04:06
wgrantDeath to ZCML, etc.04:06
lifelessit does04:06
lifelessok, https://devpad.canonical.com/~lpqateam/qa_reports/deployment-stable.html should notice in a few minutes04:07
wgrantthumper: Confirmed bad with lazr.restful 0.15.0.04:07
wgrantSomething in the r12251 diff is somehow breaking it.04:07
lifelessI'll send a rollback for this now04:07
wgrantBut I cannot see how.04:07
wgrantBe careful.04:07
wgrantThere was a later lazr.restful update.04:07
lifelesswgrant: ><04:08
wgrantYou cannot roll it back safely without going through ec2.04:08
lifelesswgrant: right04:08
lifelessok, actually, its past EOD04:08
lifelessso I won't do it04:08
lifelessas theres no chance I'll  be paying attention later04:08
thumperyeah... that isn't easy to revert04:09
thumperas there are later revisions tweaking it04:09
wgrantthumper: Have you tried bypassing the JS?04:09
* thumper pokes04:09
thumperwgrant: yes04:09
wgrantWhat happens?04:09
thumperwell... for the entry, it is working fine04:10
thumperhmm....04:10
thumpermaybe not04:10
* wgrant compares the requests.04:11
thumperI remember testing this though :(04:11
thumperit was one of the things we tested to make sure we didn't fuck it up04:11
wgrantWell, the requests are identical, so it's not JS, so it is debuggable.04:13
* thumper stops...04:13
thumperand thinks04:13
thumperthe publisher has the correct string04:13
thumperI can see that in the debugger04:13
thumperbut it is trying to return a different content type04:13
wgrantBut I cannot see how.04:14
wgrantthumper: In both cases the Accept says application/xhtml+xml.04:16
wgrantHuh.04:16
wgrantIn the good case it also returns application/xhtml+xml.04:16
wgrantSo the content type is right.04:17
thumperwhich good case?04:17
wgrant12250, before the problematic revision.04:17
wgrantIt asks for application/xhtml+xml, and gets it back fine.04:17
wgrantThe publisher does not choke.04:17
wgrantEr.04:18
* wgrant headdesks.04:18
wgrantI just looked at the adapter diff.04:18
wgrantNow it is pretty obvious.04:18
wgrantYou removed the .encode('utf-8')04:18
* wgrant tries.04:19
thumperwgrant: we checked that04:20
wgrantIt works fine with that readded.04:20
thumper:((04:20
thumperthe lazr.restful code was encoding it04:20
wgrantHuh.04:20
thumperwe thought we were double encoding04:20
thumperlazr.restful gets all the results and encodes that04:21
thumperargh...04:22
* thumper thinks...04:22
thumperthe multiline editor asks for a xhtml+xml representation of a single field of the resource04:22
thumperwhich would go through a different code path04:23
wgrantRight.04:23
thumperto the one what asks for the entire entry04:23
wgrantAh, indeed.04:23
thumperwhich is what the chooser needs04:23
wgrantSo the entry gets encoded by lazr.restful.04:23
wgrantBut the field does not.04:23
thumperI think so04:23
thumperbut the field should04:23
wgrantIt should.04:23
wgrantLet's see what lazr.restful thinks...04:23
* thumper goes to dig in lazr.restful04:23
wgrantHmm.04:25
wgrantInteresting.04:25
wgrantIt looks like we just need to fix EntryFieldResource._representation to encode if it is a unicode?04:27
wgrantI guess that whatever tests it uses an adapter that returns a str.04:28
wgrantAlthough EntryFieldResource has no direct tests.04:28
thumperI guess04:30
* thumper tries04:30
* wgrant is already waiting for the appserver to start...04:30
wgrantSeems to work OK.04:30
=== Ursinha is now known as Ursinha-afk
thumperwgrant: yeah...04:31
wgrantBoth entry and field representations looks fine now.04:32
thumperwgrant: if you see the EntryResource._representation it encodes utf-804:32
wgrantIt does.04:32
thumperalthough04:32
wgrantHmm.04:32
wgrantInteresting.04:32
wgrantThere is a difference in the HTML entry repr.04:33
thumperI'm wondering if the EntryFieldResource._representation is called from EntryResource...04:33
wgrantIt doesn't seem like it.04:33
wgrantI'll throw some Unicode in and see.04:33
wgrantduplicate_of_link in dev is the empty string, but on lpnet it's 'None'.04:33
wgrant(this is in the HTML entry representation, as seen in the browser)04:33
wgrantI suppose that's the new reference formatter.04:34
wgrantIt's not being double-encoded.04:34
lifelessok, I'm really EOD, have to cook dinner etc etc etc04:34
wgrantSo it looks like EntryResource doesn't uses EntryFieldResource.04:34
lifelessif you need me, SMS and I'll come a running04:35
wgranthttps://bugs.launchpad.dev/api/devel/bugs/1 has a nice snowman, and so does the webapp after changing it.04:35
_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:35
wgrantthumper: I suppose we should wait for a Leonard, though :(04:36
* thumper checks something04:36
thumper:(04:39
thumpersomething seems weird04:40
wgrant?04:40
thumperhmm... maybe not04:40
thumperhttps://bugs.launchpad.net/api/devel/launchpad/+bug/1234?ws.accept=application/xhtml%2Bxml04:40
_mup_Bug #1234: Gina is an unmaintainable mess of command line options, environment variables and shell scripts <lp-foundations> <Launchpad itself:Fix Released by debonzi> < https://launchpad.net/bugs/1234 >04:40
thumperI would have thought that would have the description in it04:41
wgrantthumper: That's the BugTask.04:41
wgrants@launchpad/+bug@bugs@04:41
thumperoh yeah04:41
thumperok04:42
thumperthat seems to work fine04:42
* thumper puts up a lazr.restful branch04:44
thumperjust running the tests04:47
thumperomg04:48
thumperit is building otu04:48
wgrantHeh.04:48
thumperwgrant: I don't suppose the tests pass for you on lazr.restful?04:54
thumperwgrant: I get 4 errors and 1 failure04:54
thumperwgrant: I did get errors in the setup of  RestrictedPython-3.6.004:55
wgrantthumper: Let me run buildout and see.04:57
wgrantugh, I don't have my usual buildout global download cache config here.04:57
wgrantThis could take a while.04:57
thumperI'm getting the same errors with trunk04:59
wgrantSounds fine, then.05:00
thumperwe could patch the lazr.restful egg05:01
thumperor create an egg with the fix05:01
thumperland that05:01
thumperand wait for confirmation05:01
thumperfor inclusion in trunk05:01
thumperwgrant: what do you think?05:01
wgrantI don't know. I'm wary about patching it, although it seems safe.05:02
wgrantIt is tempting to just wait for leonard to appear and release 0.15.4 with the fix.05:02
wgrantThat's not too far off.05:02
* thumper frowns05:02
thumperthe unmerged revisions on the code review looks crackful05:03
wgrantI don't know lazr.restful well enough to make a sensible judgement here.05:03
wgrantit is, yes.05:03
thumperthe diff is right05:03
thumperI think someone "fixed" it05:03
wgrantI suspect jtv's BranchRevision changes broke it.05:03
thumper:(05:03
wgrantBut I didn't end up having time to investigate.05:03
wgrantAnd I'm not here today.05:03
thumperwgrant: heh05:03
wgrantBut he changed the relevant method, so I think that's probably it.05:03
thumperI'll flick this leonards way and get him to release the fix if it is05:04
wgrantThanks.05:04
wgrantHopefully it will be deployable some time tomorrow.05:05
wgrantAs for the unmerged revisions, will you be able to investigate soonish?05:05
wgrantBug #70780805:08
_mup_Bug #707808: Unmerged revisions list does not exclude merged revisions <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/707808 >05:08
thumperwgrant: not right now, I'm focused on recipes05:08
thumperand EOD for me now05:08
wgrantthumper: 'soonish' could include tomorrow.05:08
wgrantie. should I look at it when I wake up tomorrow?05:08
thumperwgrant: yes, you05:08
wgrantk05:08
thumperare on a bug team :)05:08
wgrantFair point.05:09
thumperthanks05:09
StevenKwgrant: That would be awesome05:19
* StevenK bursts into flame too cool down05:27
wgrantStevenK: What would be/05:29
wgrantStevenK: Huh, it's only like 18°C down here.. what is it up there?05:29
StevenK3205:30
wgrantOw.05:30
wgrantIt's just about perfect here.05:30
wgrantAlthough overcast.05:30
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
mrevellHi09:08
adeuringgood morning09:09
danilossinzui, hi, it would be nice to get https://bugs.launchpad.net/bugs/707741 fixed ASAP11:18
_mup_Bug #707741: Translations export script failing. <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/707741 >11:18
wgrantThe other blocker (12251) is first on my list for tomorrow.11:25
wgrantdanilos: I'll also handle 707741 if nobody else has done it.11:25
daniloswgrant, right, but this is pretty critical in the sense that if I was translations team, I'd go right away and do it11:25
wgrantIt's been failing for 48 hours already.11:26
daniloswgrant, which makes it even more so11:26
daniloswgrant, the fact that we are doing a very bad job watching our services is not something to brag about11:27
wgrantIndeed.11:28
StevenKthumper: When you start work, https://bugs.launchpad.net/launchpad/+bug/707919 sounds like something we fixed at the Thunderdome, if you want to comment.11:45
_mup_Bug #707919: Reassign to another project animation spins forever <Launchpad itself:New> < https://launchpad.net/bugs/707919 >11:45
dpmBug 707741 is a big blocker for translation teams, who have started complaining. I'm not pointing the obvious, just trying to point out that it's a critical regression for the translations community11:49
_mup_Bug #707741: Translations export script failing. <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/707741 >11:49
=== Ursinha-afk is now known as Ursinha
Ursinhamorning12:08
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== danilos changed the topic of #launchpad-dev to: Launchpad development https:/​/​dev.launchpad.net/​ | PQM is open | firefighting: - | On call reviewer: - | reviewing: - | queue: [danilo] | https://code.launchpad.net/launchpad-project/+activereviews
leonardrthumper or lifeless, i don't suppose you're still around12:53
leonardri'm looking at the qastaging breakage12:53
=== mrevell_ is now known as mrevell
=== Ursinha is now known as Ursinha-lunch
deryckabentley, adeuring, henninge -- ping for call in 2.13:58
adeuringyes13:58
abentleyderyck, pong13:59
deryckadeuring, https://launchpad.net/launchpad/+bugs?field.tag=upstream-translations-sharing14:15
=== matsubara-afk is now known as matsubara
henningewow, I just closed two bugs in 10 secondsd14:28
=== Ursinha-lunch is now known as Ursinha
deryckhenninge, I think abentley already opened a bug about what you were talking about on the standup.  see bug 70600514:33
_mup_Bug #706005: solve the case where sharing is enabled with existing upstreams <upstream-translations-sharing> <Launchpad itself:Triaged> < https://launchpad.net/bugs/706005 >14:33
henningederyck: yup, I added a comment to make that clear. Thanks.14:40
derycknp.  thank you14:41
deryckadeuring, abentley, henninge -- board is up to date with remaining tasks14:44
adeuringok14:44
abentleyderyck, cool.14:44
abentleyderyck, also, yikes!14:45
deryckit's not that bad :-)14:45
deryckflacoste, you might be interested in that too ^^ (Orange board is updated with cards for remaining work on our story)14:46
=== danilos changed the topic of #launchpad-dev to: Launchpad development https:/​/​dev.launchpad.net/​ | PQM is open | firefighting: - | On call reviewer: - | reviewing: - | queue: [] | https://code.launchpad.net/launchpad-project/+activereviews
deryckflacoste, there is a "misc" card added to track that we still need 2-3 cards for some remaining UI bits.14:46
deryckbut henninge and I will nail that down in our call today14:47
jcsackettcan someone review https://code.launchpad.net/~jcsackett/launchpad/branch-delete-api-702620/+merge/47449? it's some quick webservice stuff and tests.14:57
deryckhenninge, ready for call when you are15:01
henningederyck: give me a minute or two to finish this up, please15:02
deryckhenninge, np.  take your time.15:03
henningederyck: no, almost done15:08
deryckok15:08
leonardrjcsackett, i'll review you if you'll review me15:13
leonardrhttps://code.launchpad.net/~leonardr/lazr.restful/encode-xhtml-field/+merge/4753615:13
jcsackettleonardr: deal.15:14
leonardrjcsackett: for context, see thumper's recent message to launchpad-dev15:14
benjisalgado: do you have a minute for a UI review?15:14
jcsackettleonardr: dig.15:16
salgadobenji, sure, though can it be after my lunch? I was about to break15:16
benjisalgado: sure; let me know when you're back and I'll give you the info15:17
salgadowill do15:18
=== salgado is now known as salgado-lunch
jcsackettleonardr: what is this SNOWMAN stuff?15:18
leonardrjcsackett: it's an obvious unicode character15:18
leonardrstart up python and >>> print u"\N{SNOWMAN}"15:18
jcsackettleonardr: huh. did not know that.15:19
leonardri learned the syntax from thumper--it's v. nice because you don't have to write down the escape15:20
jcsackettyeah, i dig it.15:21
leonardrjcsackett, r=me15:22
jcsackettleonardr: the tree <<<< stuff in the MP is just because of your soon to be born merge oddness, right? i can safely just look at the pastebin diff?15:23
leonardrjcsackett: yeah15:23
leonardrdo you know the best way to do this merge, btw?15:23
jcsackettleonardr: i have no idea, honestly. sounds like it could be painful.15:24
jcsackettleonardr: maybe lay out the situation in #bzr?15:24
leonardrjcsackett: reverting isn't too bad, since i've been committing a feature that's not done yet15:24
leonardrok15:24
jcsackettleonardr: r=me. i'm requesting follow up from sinzui (who is usually fast), but if you need this ASAP grab anyone else. sorry i'm still only in mentored mode. :-/15:25
jcsacketti can also help huntdown a follow up if you need someone quick.15:26
leonardrjcsackett: quick would be good, this is blocking15:33
sinzuileonardr: I am seeing unicode in doctests. unicode often causes zope doctests to fail. We may have removed the ascii exception last week though15:36
leonardrsinzui: how do you suggest i do this?15:36
sinzuileonardr: why am I seeing unicode though. What is that? A BOM?15:36
leonardrsinzui: it's a snowman15:36
leonardri am junking up the data with a unicode character to make sure it's properly handled15:37
sinzuilots of translations and answers tests encode the output to get \x123415:37
leonardri'll see if i can do that15:38
sinzuileonardr: Does this test play in the zope testrunnner?15:38
leonardrsinzui: i think so15:39
leonardrit sets up layers15:39
danilossinzui, hi, could you please arrange for bug 707741 to be worked on asap: basically translation exports are broken, and that's something our users depend on15:40
_mup_Bug #707741: Translations export script failing. <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/707741 >15:40
sinzuioh, that might explain why that user did not get his export email15:40
=== deryck is now known as deryck[lunch]
sinzuileonardr: answers uses .encode('ascii', 'backslashreplace') to avoid outputting fun characters15:43
bacderyck[lunch]: is bin/jssize still needed?15:48
sinzuileonardr: you have my approval with the unicode fix. I included the section about unicode vs. zope test runner in my review.15:54
* jcsackett is no longer happy with his dev environment.16:04
leonardrsinzui: having trouble getting the unicode fix to work, will ping you in a bit16:05
leonardrsinzui: basically, the result of webservice.get() is a string, and i can't get it into unicode so that i can use .encode('ascii', 'backslashreplace')16:07
leonardrwhew, got it16:08
=== almaisan-away is now known as al-maisan
sinzuileonardr: all okay now?16:10
leonardrsinzui: i think so16:10
=== salgado-lunch is now known as salgado
salgadobenji, still want a UI review for your branch?16:18
benjisalgado: absolutely: here's the MP for background on what the UI is for: https://code.launchpad.net/~benji/launchpad/bug-636193/+merge/46350 the two relevant screen shots are the page that links to the new page: http://i.imgur.com/R6jma.png and the new page itself: http://i.imgur.com/ExwBs.png16:19
sinzuijcsackett: where did you find the recent oops reports. I need to see staging for the last 6 hours16:37
jcsackettsinzui: i don't know how recent they were, but i found the ones i needed in devpad:/srv/launchpad.net-logs/qastaging/asuka/<DATE>/16:42
jcsackettso i assume /staging/asuka/<DATE>/ should be what you want.16:42
lifeless*yawn*, moin16:51
=== deryck[lunch] is now known as deryck
deryckbac, I think so.  Will gave to confirm, though.16:51
deryckbac, about to be on TL call, but will look after that.16:52
=== leonardr is now known as leonardr-afk
=== bigjools-afk is now known as bigjools
salgadobenji, who's the target audience for that page? LOSAs?17:58
benjisalgado: yes17:58
benjisalgado: and developers17:58
salgadobenji, I'm wondering if it'd make sense to show it to one of the LOSAs ans ask them if it has enough information for them to write a new rule?17:59
benjisalgado: that makes sense; do you have a candidate in mind?18:00
salgadolet's see if we can get someone to volunteer18:01
salgadoLOSA ping?18:01
Chexsalgado: hello there18:01
lifelessperhaps it should link to the LEP as wlel ?18:01
lifelesswhich is the docs for this18:01
salgadohi Chex!18:02
salgadoChex, I'm reviewing benji's branch which better documents feature flags and we'd like to know if you'd be willing to have a look and tell us if the new page works18:02
salgado(i.e. does it have all the info you'd need to write a new rule)18:03
salgadolifeless, is the LEP going to be kept up to date to match what's implemented?18:03
lifelesssalgado: the goal is to move the list of actual flags/scopes out of it. but the conceptual and operational docs will stay there IMO18:04
salgadooh, ok, that's good18:05
salgadobenji, can you do that?18:05
benjisalgado: yep, I can remove the static docs for flags and scopes from the LEP18:06
salgadobenji, oh, I meant linking to the LEP, but I'm sure lifeless will appreciate you removing the flags and scopes from there18:07
benjisalgado: oh; I /could/ do that, but LEPs are unmaintained after implementation, and that one in particular already says things that aren't true, so linking to it seems like a bad idea18:08
salgadolifeless, ^18:09
lifelessbenji: what do you propose for docs for this then?18:10
lifelessbenji: (its not globally true to say LEPs are unmaintained after impl)18:11
benjiHow do we document things like this now?  Perhaps more importantly, for what audience are we documenting?  I /think/ LP developers will be writing new rules and the lib/lp/services/features/__init__.py docstring contains a nice (pre-existing) description of how feature flags works.18:13
lifelessbenji: developers will be asking for things as they do features; losas will be changing stuff to deal with operational issues; for isntance the timeout is controlled by a feature flag18:14
lifelessbenji: I think the LEP is fine as docs; sure it needs a cleanup, we can do that.18:14
lifelessbenji: the docstring isn't operational-docs.18:14
lifelessperhaps it should be, but its not, and with a 8 hour overhead to improve it I don't think anyone will when dealing with a operational issue18:15
* lifeless practices skepticsm18:15
benjilifeless: so link to the LEP from the info page?18:15
lifelessbenji: thats what I was suggesting, yes. If you think its a bad idea don't do it :)18:16
benjiI have to wonder if the LOSAs have a cache of operational documents somewhere.18:16
lifelessthey do18:16
lifelessbut they get stale as well18:16
benjiLinking to a document that's already in a known-bad state feels wrong.  Not that I can think of anything better, but I'm +0 on silence being the best approach here (i.e., no link at all).18:19
lifelessbenji: I'll get it cleaned up18:19
lifelessbenji: what bits are wrong? just the speculation in the early part?18:20
benjilifeless: Unfortunately, I don't recall off the top of my head.  I'd have to re-read it to find the inacuacies, but I recall that there were some rather significant difference between the LEP and the current implementation and functionality.18:22
lifelessbenji: ok, I think I know what you mean18:22
lifelesspoolie described a phase space.18:22
lifelessI previously updated the lep to ensure it does describe what we have, but left the phase space in place.18:23
lifelessI'll happily remove it18:23
lifelesssinzui: hi18:24
lifelesssinzui: do you need help w/ mailman ?18:24
lifelesson qastaging18:24
sinzuiyes. I do not know why QAS mailman cannot talk to QAS launchpad. we get a 40318:24
benjiChex: are you familiar with the feature flags functionality? (https://launchpad.net/+feature-rules)  I'm adding a little documentation to help when writing rules so people will know which flags and scopes are available, screen shot at http://i.imgur.com/ExwBs.png18:25
benjiChex: we'd like to know if that presentation of the info makes sense to LOSA eyes18:25
=== al-maisan is now known as almaisan-away
benjilifeless: ok, so I should add a link to the LEP from the info page?  (and I suppose also add a special note on the LEP that it is intended to be kept up to date with the implementation, and also a note in the implementation that when it is changed the LEP should be updated)18:26
lifelessbenji: I don't think we need a special note; LEPs that no longer reflect reality are harmful18:27
lifelessbenji: I thought our standard practice was to keep things up to date18:27
lifelesse.g. gary has been updating things18:28
lifelessand so have other people18:28
benji11:11 < benji:#launchpad-dev> are LEPs meant to be kept up to date after they're implmented or are they simply historical?18:28
benji11:18 < flacoste:#launchpad-dev> benji: historical18:28
lifelessflacoste: ^ lets talk about this ;)18:28
benjilifeless: ^^ there seems to be some confusion on that front18:28
bachi deryck, could i talk to you sometime today with some JS questions?18:33
deryckbac, sure.  I forgot about your jssize question.  sorry18:33
bacnp18:33
bacderyck: do you have time now?18:34
derycksure.  let me grab headphones18:34
lifelessbenji: ok, lets talk constraints18:35
lifelessbenji: all I care about is that the page list the known scopes etc; if we want the page to be 'sufficient to write a rule' then I care that the exposition about the rules, and the whys, and the approval policy be 'present or linked'.18:36
lifelessI dunno if that parses18:37
lifelessbenji: and with that let me get out of your hair and let you do it as you think best ;)18:37
benjilifeless: I parsed it -- correctly, I think. :)  My understanding of the original bug (636193) was to "list the known", which seems like a subset of "sufficient to write a rule" which could be a new bug, so I'll claim victory with the current state of the branch plus feedback from Chex when he gets a chance to look at the screenshot.  Thanks for the input.18:39
lifelessmy pleasure, sorry to drag this offbase.18:40
lifelessBad habit of mine18:40
benjilifeless: on a related note, you reviewed the branch and found one flaw that I've since fixed, do you feel comfortable marking the code part accepted now? (https://code.launchpad.net/~benji/launchpad/bug-636193/+merge/46350)18:40
lifelessbenji: I think the test_unknown_scope18:41
lifelessshould do self.assertFalse(scopes.lookup('not-a-real-scope'))18:41
* benji looks18:42
lifelessotherwise a legitimate implementation could return 'yipee-a-i-m*f*' for unknown scopes,18:42
benjiheh18:42
benjiok, will do18:42
lifelessbenji: can I suggest showing the info on the +feature-rules page, rather than a separate page?18:43
lifelessbenji: seems like less clicking for admins, and the rules for visibility are identical18:43
lifelessbut perhaps thats tricky to do? If so its not a big deal18:43
benjilifeless: that'd be fine with me; I was expecting that they'd open them in multiple tabs/windows (being expert users) and that they would prefer that to scrolling up and down18:44
benjiI think it'd be easy to do.18:44
lifelessbenji: lets see what $losa says18:45
lifelessmbarnett: yo, I know you're around :P18:45
benjisounds good18:45
lifelessdocstring_dedent seems like it really wants to live somewhere more common18:46
lifelessbenji: getUserBrowserAsTeamMember looks like its copied from somewhere? perhaps pull up to the base class?18:48
lifelessat a guess getUserBrowserAsAdmin too18:48
lifelessbenji: recommendation: rather than using tearDown, use addCleanup in setUp18:49
benjilifeless: putting it in a more general place would be reasonable.  I normally follow the rule to promote something to a wider scope when it's needed in that scope, but that does assume the knowlege that the thing exists, so the alternative of "put general things in a general place" might pervail in a project with so many devs as LP.18:50
lifelessbenji: or even make a small Fixture to save and restore those things - I see lots of semi-repetitive code18:50
benjilifeless: re. addCleanup indeed; I'll do that18:50
benjiI'll look into making a Fixture.18:50
lifeless(bin/pydoc fixtures is a good starting point for that)18:51
mbarnettlifeless: looking into another problem, will need a moment.18:52
lifelessmbarnett: no panic18:52
lifelessbenji:18:52
lifeless440+    def __init__(self, request):18:52
lifeless441+        self.request = request18:52
lifelessis repeated in most (all?) scopes; perhaps move to the base?18:53
benji+118:53
lifelessin fact, its on the base, just needs gc :)18:53
benji:)18:53
=== leonardr-afk is now known as leonardr
lifelessok thats all; the structure looks fine. I can see a few places where I might have done it different, but none that matter in any significant way18:55
lifelessI'm going to mention one of them18:55
lifelesswhich is that I probably would have delegated the 'can handle' check rather than exposing a predicate regex18:55
lifelessanyhow, I'll change my vote now because the critical stuff is already done18:56
benjilifeless: thanks.  A small note on the exposed regex (sounds like something you'd go see a doctor for), I did it that way because I wanted to use the regex in the info page (which seemed sane only because it is developers and losas who will be reading it).  Perhaps that should have just been non-executable words decribing the structure of the scopes along with code for "can handle" as you suggest.  But, as you say, it's done and the 19:04
lifelessyour text cut off19:05
lifelessat19:05
lifeless'done and the'19:05
benji"it's done and the way it is now won't kill any kittens."19:08
lifelessright19:08
* benji applies -q to himself.19:08
flacostelifeless, benji: updating a LEP once something is implemented is a waste of time in my IMHO19:09
flacostedesign documents are historical19:09
flacostenot live documentation19:09
flacostethe code is the ultimate source19:09
benjiflacoste: I agree.  The maintenance overhead is pretty high and, historically speaking, unlikely to keep pace with the code.  I wish I knew how to really do architechural documentation, but I don't.19:15
sinzui deryck, regarding the ajax retarget project bug. does the callback update the new project's milestones and check permission that I can change status and importance?19:29
lifelessflacoste: LEPs are not implementaiton docs19:30
derycksinzui, I'm sure it checkes perms.  Not sure about updating milestones.19:31
lifelessflacoste: they document constraints and goals19:31
lifelessflacoste: keeping those up to date is valuable IMO19:31
flacostelifeless: they also serve as design documents19:31
flacosteas more artefacts are added to it19:31
flacostelike mock-ups19:31
flacosteand other stuff19:31
lifelessflacoste: so, we could delete all that stuff easily when the thing is done, and be left with the core19:32
flacostei agree that keeping constratins and goals up to date is valuable19:32
thumperleonardr: morning19:35
leonardrthumper, hi19:35
leonardrhttps://code.launchpad.net/~leonardr/launchpad/fix-xhtml-encoding/+merge/4755119:35
leonardrthat's in ec2 now19:35
thumperleonardr: exactly the question I was going to ask :)19:35
lifelessflacoste: so it sounds like delete-the-redundant-stuff-after-impl and keep live, will make us both happy?19:44
flacostelifeless: it would, i'd be interested in what jml thinks, care to ask the list and him for feedback, we could make that the last step of the approval process?19:45
lifelesssure thing19:45
thumperleonardr: any idea why I can't run all the lazr.restful tests?19:49
leonardrthumper: i think i only said this in email, but your patch doesn't solve the problem for the default field renderer19:50
leonardrso it might be causing failures there. can you paste me the failures?19:50
thumperleonardr: I get exactly the same errors running on trunk19:50
thumperleonardr: http://pastebin.ubuntu.com/558680/19:51
bigjoolslifeless: check this out and tell me what you think https://code.launchpad.net/~julian-edwards/launchpad/debversion-denormalise/+merge/4757819:51
leonardrthumper: yeah, that's something different. let me just try a sanity check19:52
thumperleonardr: ok19:52
lifelessbigjools: did you intend to drop the bz2 stuff?19:53
bigjoolslifeless: que?19:55
lifelessbigjools: read the diff19:55
lifeless+COMMENT ON COLUMN NameBlacklist.admin IS 'The person who can override the blacklisted name.';19:55
lifelessetc19:55
bigjoolslifeless: the diff is crack19:55
lifelessMULTIPROC=0j 419:55
bigjoolscompletel crack, wtf19:55
bigjoolsoh shit19:55
bigjoolswrong merge target19:56
lifelessbigjools: ok, so a few thoughts19:57
leonardrthumper: the trunk tests pass for me, so it may be a problem with your setup19:57
lifelessbigjools: I'd consider leaving the old index in place19:57
bigjoolslifeless: wait up :)19:57
thumperleonardr: probably...19:57
leonardrdid you by any chance help jcsackett with his problem yesterday? he had a problem pertaining to error views19:57
lifelessbigjools: and making the new one live after the deploy19:57
thumperleonardr: points to some missing dependencies or something19:57
thumperleonardr: no, I didn't talk to jcsackett yesterday19:58
lifelessbigjools: that would reduce the time to do the db patch19:58
bigjoolslifeless: why's that? - I can probably guess why but...19:58
leonardrlet me think more deeply about the errors19:58
jcsackettleonardr: you solved the only issue i was having yesterday.19:58
leonardreither FakeRequest is not being considered a request, or the default registration for IClientErrorView is not taking effect19:58
bigjoolslifeless: on dogfood it was pretty quick - about 5 mins.  Production will be significantly quicker19:59
bigjoolslifeless: new one https://code.launchpad.net/~julian-edwards/launchpad/debversion-denormalise/+merge/4758019:59
lifelessbigjools: 5 minutes is -slow- :)19:59
bigjoolslifeless: dogfod is S L O W20:00
bigjoolsprod is typically an order of magnitiude quicker20:00
lifelessits going to be running python20:00
abentleythumper, I can has review? https://code.launchpad.net/~abentley/launchpad/build-mail2/+merge/4756320:00
bigjoolslifeless: que?20:01
lifelessbigjools: debversion_sort_key is plpython isn't it ?20:02
bigjoolslifeless: no20:02
bigjoolsummm maybe20:02
lifelessby which you mean yes?20:03
wgrantHave we considered using postgresql-8.4-debversion?20:03
lifelessthere are 5million rows in the table20:03
bigjoolshow do I find out20:03
bigjoolslifeless: like I said, it will not be that slow on production hardware20:04
leonardrthumper: not sure what this means, but i can get your first three errors by removing the final stanza from src/lazr/restful/configure.zcml20:04
bigjoolslets consider only changing it if we go over budget20:04
thumper?!?20:04
leonardrthumper: can you check your zope eggs for local changes?20:05
lifelesswgrant: I don't think we have, no.20:05
wgrantbigjools, lifeless: There is an index on debversion_sort_key(version) already... I don't see the point of denormalising.20:05
thumperleonardr: I was running from a fresh branch of lp:lazr.restful20:05
thumperleonardr: so it isn't in an egg20:05
thumperleonardr: it did that real slow buildout process20:05
bigjoolswgrant: it's not about the index20:05
bigjoolsit's about the speed of calling that function20:06
lifelessbigjools: LANGUAGE plpythonu IMMUTABLE RETURNS NULL ON NULL INPUT AS20:06
bigjoolswhich is shitty slow20:06
leonardrthumper: incidentally, i remembered how to stop the slow buildout process20:06
wgrantTo do what?20:06
lifelessbigjools: its plpython20:06
wgrantIt is mostly used for sorting.20:06
bigjoolslifeless: ok20:06
thumperleonardr: I'd love to know20:06
wgrantSorting should be handled by the index.20:06
lifelessbigjools: doing an re.compile on *every call*20:06
lifelessarggggggggggggggggggggggggggg20:06
leonardrthumper: you need a ~/.buildout/default.cfg20:06
leonardrmine looks like this20:06
bigjoolslifeless: nice!20:06
leonardr[buildout]20:06
leonardreggs-directory=/home/leonardr/.buildout/eggs20:06
leonardrdownload-cache=/home/leonardr/.buildout/download-cache20:06
leonardrexcept without all that whitespace20:06
lifelessbigjools: hand me a spork, I must remove mine eyes20:06
bigjoolswgrant: it doesn't use it when the sort is across columns on different tables20:07
lifelessbigjools: for your pleasure: database/schema/trusted.sql20:07
leonardrcreate those directories and the eggs will be cached20:07
lifelesswgrant: see my perf tuesday mail from wednesday20:07
bigjoolslifeless: huh.... had no idea it was in there!20:08
lifelessbigjools: anyhoe, 5M rows, 0.5ms per row, 2500seconds20:08
bigjoolswgrant: I made the column on DF and it reduced a query from 350ms to 200 by using it instead of the  func20:08
lifelessbigjools: thats for binarypackagerelease only20:08
thumperleonardr: ah... cool20:08
bigjoolslifeless: where did you get that stat from?20:09
wgrantAh, I see.20:09
lifelessbigjools: the time it takes to add the column into the intermediary table in the OOPS we see20:10
lifelessbigjools: 55K rows takes 10 seconds20:10
bigjoolsnow, if we had name as a string on the SPR/BPR tables ...20:10
bigjoolshmmm that sounds dodgy20:10
lifelessbigjools: right, we could index name, version, id desc20:10
bigjoolslifeless: I'm kinda tempted to do that but it's a major change20:11
lifelessbigjools: indeed; I want to talk to stub about a cross table function20:11
lifelessbigjools: resulting in a per-table index20:11
lifelessI dunno if its possible20:11
bigjoolsI'm interested20:11
lifelesshes on leave for a bit20:11
bigjoolsjtv is back tomorrow, he'd know20:12
lifelessbasically I'm wondering if we can put an index on the history table or the packageversion table20:12
lifelessindex foo on FUNCTION()20:12
lifelesserm20:12
lifelessFUNCTION(id)20:12
lifelessand have the function grab stuff from related tables and return a tuple20:13
bigjoolsyou can do that, see binarypackagerelease_version_sort20:13
wgrantThat would be really useful, but I've never seen it done before.20:13
bigjoolsalthough not sure how you'd access related tables, there must be a way20:13
leonardrthumper: here's my advice for getting to the bottom of this. put a breakpoint in AbsoluteURL.__str__ or getMultiAdapter, so that you get a breakpoint when there's an exception20:14
leonardrand then look at the registered adapters20:14
lifelessbigjools: right, I know you can build on a function20:14
lifelessbigjools: the question is if you can build on a function *that accesses other tables*20:14
bigjoolslifeless: anyway are you ok with the general direction of that patch?20:14
thumperleonardr: ok, I'll look at it later. Got other things that have bubbled to the top of the todo list20:14
wgrantsinzui: How is the translations export issue?20:14
lifelessanyhow, if you can you'd return (name, debversion_sort_key)20:15
leonardrthumper: you can call getGlobalSiteManager().registered_adapters() to get an iterator over the registered adapters20:15
lifelessbigjools: 700K souce package releases20:15
leonardrsee why the appropriate adapter isn't registered20:15
lifelessso 6M total calls we need to make20:15
leonardrbut, i'm pretty sure it's a problem with your setup (although it could easily be a problem with my setup, since i'm the main person who runs the lazr.restful tests. but, i changed computers recently)20:15
sinzuiwgrant: I have not looked beyond the bug since I have been chasing mailman issues20:15
bigjoolscreating the index is fast after the column is added, on DF it was seconds20:15
sinzuiwgrant: I did intend to work on it today20:16
wgrantsinzui: I'll do it shortly.20:16
lifelessbigjools: sure am, the extra column is totally fine given our state of the art20:16
lifelessbigjools: let me do a quick test20:16
jcsackettsinzui, wgrant: i had machine issues, so i have not looked at it either.20:16
* bigjools waits20:16
wgrantsinzui: Ooh, squad assignment. I like it.20:17
lifelessbigjools: the only concern I have is whether to do it all at once or just add the facility, populate & use in a couple of steps20:17
sinzuibigjools: wgrant, lifeless, I reported a bug about 18 months ago that the db's debversion is not the same as launchpads. Many pages use Lp because is behaves better. I think we should have one trusted way to sort by version20:17
bigjoolswe should look at installing the PG package20:18
wgrantWe should. It is C, so should be faster.20:18
bigjoolsexactly20:18
bigjoolsre.compile on every invocation..... aieeee20:18
wgrantYeah, taking that into account, it should be a LOT faster.20:18
bigjoolsand, it's a package, so it, errr, gets bugfixes20:18
lifelesssinzui: we'll need two versions20:18
sinzuibigjools: blackname list is compiles once ons startup, why isn't debversion20:18
lifelesssinzui: but they should be identical, and the current function isn't up to scratch20:19
bigjoolssinzui: see database/schema/trusted.sql20:19
lifelessbigjools: select debversion_sort_key(version) from sourcepackagerelease;20:19
lifelessTime: 71177.609 ms20:20
lifelessbigjools: so ~ 5 minutes for all20:20
bigjoolslifeless: so let's install this package and deprecate our plpython20:20
wgrantHmm. How quickly can we get that installed on mawson to test? :)20:20
lifelessbigjools: its a new datatype20:20
bigjoolslifeless: on which system?20:20
lifelessbigjools: we need to significantly more than just install it; I agree its a great thing to do though.20:20
lifelessbigjools: sourcherry20:20
bigjoolsnew datatype?20:20
sinzuibigjools: okay. blackname list does multiple compiles to cover the two paths we might take through the method (admin vs approved tesm)20:20
sinzuimaybe I can help make a faster version20:21
lifelessbigjools: the postgreslq-8.4-debversion package adds a custom datatype to postgresql20:21
bigjoolsthat which the function returns?20:21
wgrantSo you don't use a function; you can just use normal operators on the column.20:21
lifelessThis package20:21
lifeless implements a "debversion" type to represent Debian version numbers20:21
lifeless within the PostgreSQL database.20:21
bigjoolsyeah, we don't give a rats ass about the type really20:21
thumperabentley: this is just a refactoring branch?20:21
lifelesswe'll need to do data & code migration20:21
lifelessbigjools: well, we might if it works well20:22
abentleythumper, correct.  I'm building the mail changes on top of it now.20:22
bigjoolslifeless: no we won't - we can just use it to populate a new column that we sort on20:22
thumperabentley: ok20:22
lifelessbigjools: thats data migratoin and code migration :)20:22
bigjoolslifeless: it's trivial20:22
lifelesssure20:22
lifelessjust needs to be done20:22
bigjoolsI'll do it then20:22
lifelessin a bunch of places, and we need to make sure we don't regress anything20:23
lifelessI'm pro doing it20:23
bigjoolsnot in a bunch of places actually :)20:23
lifelessjust refusing to underestimate ;)20:23
bigjoolsjust where it's inserted20:23
bigjoolswe never read it directly20:23
lifelesswe never read BinarhyPackageRelease.version ?20:24
bigjoolsthat's a separate column20:24
bigjoolsI am talking about adding a new column that we initially only sort on20:25
bigjoolsthen we can take our time migrating from the old version to the new one20:25
lifelessI imagined that the point of the custom data type is to have that *as* the version column, eventually.20:25
bigjoolsyes, eventually20:25
lifelessbigjools: right, and thats the cost I'm referring to :)20:25
bigjoolspffff20:25
lifelessanyhow, FWIW, +1 from me.20:25
bigjoolsit's still trivial :)20:25
lifelessI'm very interested to hear how it behaves on mawson20:26
bigjoolslifeless: so, the first thing to ask is that does that package give a debversion_sort_key in C instead of plpython20:26
* bigjools looks20:26
lifelessbigjools: AIUI no20:26
lifelessbigjools: it gives a new datatype; you might be able to cast into that datatype from TEXT20:26
bigjoolsah ok, makes sense20:27
lifelessit has direct glue such that an index ON column-of-that-datatype results in something sane20:28
bigjoolsright - so it's roughly equivalent of my patch, except it's not text, it's the new type20:28
lifelessso you could do on $casted-text to replicate the brittle situation we have today20:29
lifelessbigjools: yes20:29
bigjoolsok this makes me happy - I'll go with this patch for now and then it's super easy to change later20:29
lifelessyeah20:29
bigjoolsmy eyes are still bleeding from that plpython....20:30
lifelessI suspect the re.compile is ~most of the time.20:30
wgrantI wonder if it's changed since 2004.20:31
lifelessblame20:31
wgrantAh, it was only written in 2006.20:34
bigjoolswgrant: sanity check: SPRs are created in gina and distroseries.createUploadedSourcePackageRelease only, right?20:35
wgrantbigjools: I hope so.20:36
wgrantBut maybe you should use triggers?20:36
bigjoolswash your mouth out young man20:36
wgrantThe test suite and factory and blah blah blah will all create them.20:37
bigjoolsah factory was one more place20:37
wgrantA trigger is easy.20:37
wgrantAnd makes more sense.20:37
bigjoolsit's also shit ugly and hard to change20:37
lifelesswgrant: triggers are problematic20:37
wgrantSo is this whole idea :)20:37
wgrantlifeless: Sure. But even in this case?20:38
bigjoolstriggers are a bit like regexes20:38
=== salgado is now known as salgado-afk
bigjoolsif you use them to solve a problem, you now have 2 problems20:38
lifelessheh20:38
lifelesstheres a time and a place20:38
lifelessI don't particularly care either way here, because we're unlikely to read-back the field *in this iteration*20:39
wgrantleonardr: Is your EntryFieldResource fix in ec2?20:39
bigjoolswell, yes we are by the time I'm done :)20:39
wgrantOh.20:39
wgrantIt's in PQM, even20:39
lifelessbigjools: right, later iterations will be a problem20:39
bigjoolsyes20:40
bigjoolsand I don't want to be left in a situation where we find a crappy bug and can't fix it until the next downtime20:40
lifelessindeed20:41
huwshimiMorning.20:58
rambohuwshimi: morning to you too20:59
StevenKsinzui: Hi -- I'm fixing person/team merges to delete recipes, but I can't see any tests for this sort of thing -- I am missing something?21:08
sinzuiStevenK: yes, one moment21:10
sinzuiStevenK: /lib/lp/registry/tests/test_person.py TestPersonSetMerge is where you want to add your test21:14
StevenKI did, it broke :-)21:15
sinzuiStevenK: the historical test is a a doctest called doc/person-merge.txt, but I weep when I read it21:15
StevenKHaha21:16
sinzuiStevenK: was the break because there were references left in the db?21:16
wgrantStevenK: Merges deleting recipes? Shouldn't only delete-merges delete recipes?21:16
poolie<poolie> did wontfix go away?21:17
poolie or is there an acl on setting it?21:17
poolieit seems odd i can mark 676766 invalid but not wontfix21:17
leonardri need some advice from someone who knows about soyuz21:17
pooliehello leonardr!21:18
bigjoolso/21:18
james_wpoolie, there's an ACL IIRC21:18
StevenKleonardr: O hai21:18
wgrantpoolie: Only the bug supervisor can set Won't Fix.21:18
wgrantHi leonardr.21:18
bigjoolshi leonardr :)21:18
poolieok21:18
leonardri did not expect such an outpouring of support21:18
bigjoolswe are passionate people21:18
pooliemuch better than expecting enthusiasm and not getting it :-)21:19
leonardrgeneral question: are there any objects in soyuz that are published on the web service but not on the website?21:19
StevenKYes, packagesets21:19
wgrantArchivePermissions21:19
lifelessany reason they are not published on the website?21:19
wgrantBPRDCs21:19
lifelesse.g. time ?21:19
wgrantThey are published, but they have no views.21:19
bigjoolsbecause they need a complicated UI design21:19
StevenKwgrant: Currently, if the from_person has recipes, they are left untouched, and then can't be gotten at.21:19
wgrantRight, it's not obviously waht the UI is.21:19
bigjoolsand it wasn't needed at the time21:20
wgrantStevenK: Right. We should probably move them to the target person, unless it's a delete-merge, in which case we could delete them.21:20
StevenKPlatform are perfectly happy fiddling with packagesets over the API, FWIW.21:20
bigjoolsyeah but a visual rep at some point would be nice21:20
wgrantThen there are things like BPPH and SPPH which have no browser index, but do have some fragment views.21:22
leonardrthe reason i ask is that web service objects are about to get a 'web_link' attribute and i need to know when to suppress that link21:22
wgrantHmm.21:23
leonardrso far i have "hwdb stuff", ICountry, IArchivePermission, and the various IPackageSet classes21:23
wgrantIs it worth suppressing them?21:23
leonardri was getting a lot of test failures in soyuz and the urls generated didn't look like real launchpad website urls, so i thought i'd ask21:23
leonardri don't think it's worth going on a witch hunt, but given that the existing tests are failing, i'd rather fix the failure by suppressing the link than fix it by changing the test to look for a useless link21:24
bigjoolsmaybe we need a property on the object somewhere to say that it has no UI21:24
wgrantAre you generating good URLs for things like branches and MPs, that only exist on code.lp.net?21:24
lifelesswe should fix that21:24
wgrantI mean, could you just check to see if there is a +*index view?21:25
bigjoolsor you can examine the zcml to see if a template is defined21:25
abentleythumper, changing around with which transactions get committed worries me.21:25
lifelessjml would like one domain for everything (except librarian)21:25
wgrantlifeless: +121:25
leonardrsince this is not launchpad code, i can't really make that kind of deep introspection21:25
bigjoolsurgh21:25
bigjoolsblacklisting is kinda nasty21:25
wgrantI'd just create a web_url for everything.21:25
leonardrwgrant: code.lp.net works there are a couple problematic cases, where the vhost should be lp.net but it's actually api.lp.net. i intend to look at those separately21:25
wgrantIf people access it and it 404s, that's their problem.21:26
lifelessleonardr: OTOH this code was written to support LP; can you think of anyway (relayering perhaps?) to make this work better21:26
lifelessor as wgrant says, just include it21:26
leonardri don't think it's someone else's problem if we publish a link that doesn't work21:26
lifelessand note in the docs that this is a probable url, things not published won't be usable, things on whacky domains may not be usable21:26
bigjoolsI agree21:27
lifelessI'd hate the overhead of this to dominate api requests :)21:27
thumperabentley: feel free to land what you have and it can be refactored later21:27
leonardras i understand it, determining whether there's a web view for a given url requires traversing the url. is that right?21:28
bigjoolswgrant: have we got anything that generates the same crap as debian_sort_key anywhere in the code?21:28
bigjoolsdebversion_sort_key even21:28
wgrantbigjools: I hope not.21:28
lifelessbigjools: god no21:28
wgrantleonardr: Can't you just look up the adapter for the object?21:28
bigjoolsI didn't think so21:28
wgrantleonardr: Since you presumably have the object.21:29
bigjoolsso how TF do I populate it :/21:29
leonardrwgrant: adapt it to what? i do have the object21:29
lifelessbigjools: there are no tests for it21:29
wgrantbigjools: Triggers.21:29
StevenKlifeless: So, why do you think my MP will involve recipes only being built every 2 days?21:29
wgrantleonardr: Views are adapters.21:29
bigjoolswgrant: blah blah  blah! :)21:29
wgrantleonardr: You need a browser request, an object, and a view name.21:29
lifelessStevenK: its a boundary problem21:30
* bigjools weeps21:30
lifelessStevenK: 24 hour check frequency + lag to build + 24 hour window21:30
StevenKIt's date_created!!21:30
StevenKWhen the build is *CREATED*, not when it started or finished21:30
lifelessStevenK: ok, so it will still need a little slack21:30
lifelesse.g. 10 minutes21:31
StevenKlifeless: Okay, so I change it to 23 hours and 50 minutes21:31
lifelessStevenK: I think that would address that concern. The one that really worries me is the doing to much work thing.21:31
lifelessStevenK: why does it even examine recipes that are too fresh ?21:31
StevenKBecause it was designed to run once a day21:32
StevenKI'll look at changing the call to see if the db can do the lifting for us.21:32
lifelessStevenK: I have a suggestion; you may like (or hate). Move it into the garbo as a tunableloop.21:32
lifelessthat runs every hour21:32
lifelessand will deal with overload gracefully etc21:32
StevenKI'd prefer it ran more often21:32
lifelesswe can do that too, quite easily if we want to. Why ?21:33
leonardrwgrant: i can create a new marker interface IWebsiteView. i can register a general adapter to WebsiteView such that getMultiAdapter((object, request)), IWebsiteView) is the same as getMultiAdapter((object, request), name='+index')21:33
leonardris that the kind of thing you're thinking of?21:33
leonardrthe interface would be defined in lazr.restful and the adapter would be defined in launchpad21:33
wgrantleonardr: Sort of. Except that rootsites screw everything up.21:33
leonardrwgrant: how so? the adaptation for a code.lp.net object won't succeed if the request is a lp.net request?21:34
wgrantleonardr: There will be no +index; just a +code-index.21:37
wgrantI believe.21:37
bigjoolslifeless: did you see my suggestion about soyuz on staging?21:38
lifelessbigjools: yes thanks; its in my todo queue21:38
wgrantbigjools: FWIW, that email looked OK to me.21:38
bigjoolslifeless: ok, I'll wait around before filing RTs21:38
wgrantBut I think we will have to regularly move the archives away.21:38
bigjoolsyes21:38
wgrantSince running the publisher on a forked archive is going to BOOM.21:38
bigjoolsyes21:39
leonardrwgrant: is there any way to determine by looking at an object whether the named adapter is +index, +code-index, or what?21:39
lifelessjam: did I answer your question in the perf thread?21:39
wgrantleonardr: I believe it's specified through the defaultView directive. But I don't know its mechanics.21:41
wgrantAlso, layers.21:41
wgrantIBranch has +index, but it's on CodeLayer.21:41
jamlifeless: I think part of it was "this is interesting,but I'm not sure I understand what you're saying", so I tried to piece it out and compose a mail as I went21:41
StevenKBwaqhaha21:42
jambut yes, I think you've covered my interest21:42
StevenKs/q//21:42
wgrantleonardr: So, good luck with that!21:42
StevenKwgrant: The merge code has an XXX from cprov that states "We only allow one PPA per user"21:42
lifelessjam: making sql fast is tricky ;)21:42
wgrantStevenK: Yeah...21:42
StevenKwgrant: I can't see anything in the merge code for 'delete-merge'21:43
wgrantStevenK: I don't know where the codepaths diverge.21:44
wgrantBut one is taken when you press 'Delete team'.21:44
wgrantIt deletes stuff, and merges into ~registry.21:44
StevenKPerhaps sinzui knows21:45
bigjoolspostgresql-8.4-debversion seems to be uninstallable21:46
wgrantbigjools: Oh?21:46
wgrantWorks here.21:46
bigjools postgresql-8.4-debversion : Depends: libapt-pkg-libc6.10-6-4.821:46
wgrantThis is a boring old maverick i386 machine, though.21:46
bigjoolsI am amd64 maverick21:47
lifelesswhat does rmadison claim vis-a-vis lucid21:47
bigjools"libapt-pkg-libc6.10-6-4.8" exists in the package database, but it is not a21:47
bigjoolsreal package and no package provides it.21:47
bigjoolsgrrr21:47
sinzuiStevenK: delete team == merge team into ~registry. it is just a special case where we know the target and we do some extra cleanup before we start the merge21:48
sinzuiStevenK: that happen in a view. I reported a bug that the merge rules are wrong for delete because ~registry should not be given subscriptions or  assignments,21:49
bigjoolswgrant: when did you install it?21:51
wgrantbigjools: About 5 minutes ago.21:51
leonardrwgrant: i'm interpreting what you're saying as that 'finding the ones we're not using and suppressing their links' is not such a bad idea in practice21:51
bigjoolswgrant: wtf is solving that dependency for you?21:51
wgrantleonardr: Not such a bad idea in theory, but difficult in practise.21:51
wgrantAnd probably not terribly useful.21:52
jcsackettsinzui: i have had a total computer crash. may not be up and running again come 5:30.21:52
wgrantIt would be *nice*, but it's hard.21:52
wgrantbigjools: Checking...21:52
bigjoolssome weird crap going on here21:52
leonardrwgrant: we may be talking about different solutions. i'm not talking about the adapter-based solution21:52
sinzuijcsackett: understood21:53
wgrantbigjools: Yes.21:53
leonardri'm talking about the one where we add publish_web_link=False to selected export_as_webservice_entry() calls21:53
leonardrthat already works, and if we overlook a couple it's not a disaster and it's easy to fix21:53
wgrantAhh.21:53
bigjoolswgrant: libapt-pkg-libc6.10-6-4.8 is needed by the superseded version....21:53
wgrantleonardr: That sounds good.21:53
wgrantleonardr: As long as missing one doesn't break anything.21:53
leonardrthe worst that will happen is someone will follow that link, get a 404, and we'll fix it21:54
wgrantbigjools: postgresql-8.4-debversion here wants libapt-pkg4.10, which apt provides.21:54
* bigjools scratches head21:54
wgrantbigjools: My natty amd64 box also wants libapt-pkg4.10.21:54
bigjoolsyes that's what LP is telling me21:54
bigjoolsit wants to install 1.0.3-1 instead of 1.0.3-1build121:55
wgrantsinzui: You're running Newnity, right?21:55
sinzuiI am21:56
sinzuiIt is stable today21:56
wgrantsinzui: I upgraded my desktop to xorg-edgers and dropped fglrx yesterday, and it now runs OK.21:56
wgrantBut the thing that appears when I click on the Ubuntu button in the top right is a bit odd.21:56
wgrantIt takes up like 1/4 of the screen and doesn't do much.21:57
wgrantAnd is all corrupt.21:57
wgrantIs yours any better?21:57
bigjoolswgrant: WTF - something's corrupted my sources.list to use lucid....!21:58
sinzuiwgrant: oh good. I gave up and removed that ppa. I will try it again on my other computer. The menu is busted21:58
sinzuiwgrant: desktop is missing zietgiest goodness I think. That was the origin of my broken desktop 12 days ago21:59
wgrantbigjools: Ahaha.21:59
bigjools"Need to get 166MB of archives."21:59
bigjoolssigh21:59
wgrantsinzui: I'm on a newish Radeon, so the new Gallium3D drivers are all that work. I presume older and more Intel cards don't need xorg-edgers at all.22:00
lifelesswell22:00
lifelesson natty xorg-edgers is landing in main atm22:00
lifelessaka boom22:00
wgrantIt is, yeah.22:01
wgrantI am pretty impressed with r600g, though.22:01
wgrantbigjools: How much of your sources.list was Lucidified? All of it?22:02
bigjoolsyes22:02
wgrantHuh.22:02
bigjoolsquite22:02
bigjoolsI have NFI what did that to me22:02
sinzuiwgrant: I do have an older radeon. I was using edgers last year, but gave it up with maverick. Unity dependencies are easier to achieve with compiz. But as I wrote, desktop is missing bits that work on a netbook config22:02
lifelesssinzui: did you run the ppa removal tool ?22:03
lifelesssinzui: there was/is stuff in edgers that never hit the primary archive and has a higher version number22:03
lifelessif you don't run the removal tool, Things Will Break22:03
sinzuilifeless: no, I may have used the desktop's source panel.22:04
lifelessppa-purge22:04
sinzuilifeless: I will keep that in mind22:05
wgrantIs qastaging broken?22:18
wgrantMost things seem to time out.22:19
wgrantAnd the DB never seems to reset.22:19
StevenKI noticed lots of timeouts while QAing in the airport lounge at Dallas.22:23
lifelessusually cold cache effects22:24
wgrantI finally got a page to load after about 20 retries.22:24
wgrantAnd the DB is still three months old :/22:24
StevenKI'm concerned about that -- I didn't think it would be *that* old22:25
wgrantIt's from just before Natty was initialised.22:26
henningewgrant: which one? staging or qastaging?22:26
wgranthenninge: qastaging22:26
wgrantstaging seems to be OK.22:27
sinzuiqastaging is ancient and awkward22:27
henningeyes, staging was restored on the 23rd22:27
sinzuiI have been using staging for testing that needscurrent data22:27
sinzuiwgrant: mumble?22:33
wgrantsinzui: Sure.22:33
wgrantArgh, Unity is breaking things.22:34
wgrantI can here you.22:35
wgrant*hear, argh.22:35
StevenKlifeless: So, isn't qastaging's database supposed to be done at the same time as staging's?22:36
james_wlifeless, would you explain what you mean by "conflicting UI requirements"?22:36
james_wthere's no discussion in the bug or references to any22:37
cjohnstonWhats up with the horribly long wait time for downloading translations?22:43
cjohnstonSorry.. Should have asked in #launchpad22:44
wgrantcjohnston: I'm fixing that right now.22:45
wgrantcjohnston: The exporter is broken at the moment.22:45
cjohnstonGotcha22:45
cjohnstonthanks wgrant.22:45
cjohnstonWill it take 3 days to catch up?22:45
wgrantI don't know enough to say, sorry.22:45
cjohnstonNot a problem22:46
wgrantHmm. I want a decorator that wraps a context manager.22:50
bigjoolslifeless (or anyone), to use the debversion type we need to run a .sql file that comes with the package to load it into the database.  Is there a "right" way of doing that or shall I mangle it in with trusted.sql?22:58
wgrantHm, that's a bit sad.22:59
bigjoolsyes :/22:59
wgrantI'd hack it into the Makefile, I think.22:59
bigjoolsyeah that's what I meant23:01
bigjoolsit's in schema/upgrade.py as well23:01
bigjoolsI need a dba23:01
wgrantGaaaaah.23:01
wgrantCan't do that.23:02
wgrantTry running it a second time :(23:02
bigjoolsok so it'll need to be run manually23:02
wgrantpostgres appears to not do CREATE OR REPLACE OPERATOR23:03
bigjoolsbut the Makefile needs it for .dev23:03
lifelessflacoste: ping23:05
lifelessjames_w: on the one hand claim is *meant* to stpo notifying other folk; on the other hand you want it to *keep* notifying other folk23:06
lifelessbigjools: put it in a patch script23:06
lifelessthose are run once.23:06
bigjoolslifeless: urgh23:06
wgrantDoes anybody know if I can somehow curse a store such that attempts to access it will explode?23:09
wgrantIn particular, I want to be able to test that the librarian client's addFile method doesn't touch the slave store, even in SlaveDatabasePolicy.23:10
james_wlifeless, I said an acceptable solution for me was to notify saying "this review has been claimed"23:10
lifelessjames_w: I missed that23:10
james_wI just don't want a dead end in my email client, as I can't distinguish between "unclaimed" and "claimed" without a GET23:10
lifelesswgrant: monkey patch23:10
wgrantlifeless: I was hoping for something less bad.23:11
wgrantBut OK.23:11
wgrantI guess I'll look around and see what the policy tests do.23:11
thumperhmm...23:11
bigjoolsHermione Granger is less bad, and has the ability to curse stuff23:11
thumperleonardr: don't suppose you are still around?23:11
wgrantthumper: Is it still broken?23:12
thumperwgrant: no, this is something else23:13
wgrantOh, good.23:13
wgrantAs long as it's not a blocker.23:13
thumperhttps://bugs.launchpad.dev/api/devel/evolution/+bug/12/importance?ws.accept=text/json23:13
_mup_Bug #12: "Next 10 messages" changes Display Settings <lp-translations> <Launchpad itself:Fix Released by daf> < https://launchpad.net/bugs/12 >23:13
thumperI'd expect "Medium"23:13
thumperI get: [{"token": "UNKNOWN", "title": "Unknown"}, {"token": "CRITICAL", "title": "Critical"}, {"token": "HIGH", "title": "High"}, {"token": "MEDIUM", "selected": true, "title": "Medium"}, {"token": "LOW", "title": "Low"}, {"token": "WISHLIST", "title": "Wishlist"}, {"token": "UNDECIDED", "title": "Undecided"}]23:14
thumperhttps://bugs.launchpad.dev/api/devel/evolution/+bug/12?ws.accept=text/json23:14
_mup_Bug #12: "Next 10 messages" changes Display Settings <lp-translations> <Launchpad itself:Fix Released by daf> < https://launchpad.net/bugs/12 >23:14
thumpergives me a json dict23:14
thumperwhich has 'importance': 'Medium'23:14
thumperso I find the other request confusing23:14
wgrantthumper: It does at least have "selected": true.23:15
wgrantSo it's not entiiiiirely useless.23:15
thumpernot sure what to do about it though23:15
thumperwgrant: it does...23:15
thumperbut my "refactoring" is broken because of this23:15
* thumper will revert a small change23:15
thumperand refactor something else until I've chatted with leonardr about it23:15
james_wdoes it perhaps list them all so you know what the current user can select?23:15
thumperjames_w: it does, I expect, but the behaviour is not consistent23:16
thumperthat is the problem23:16
james_wah, consistent with the full representation23:16
thumperjames_w: I'd expect the json representation of the field to be consistent whether I ask for the entry or the field23:16
thumperI can guess why it was written that way23:17
thumperwe may need to tweak :)23:17
thumperyay lazr.restful23:17
* thumper goes to lunch23:17
lifelesssinzui: hi23:18
lifelesssinzui: branch deletion api23:18
sinzuiyes23:18
lifelesssinzui: I've seen reference to some prior decision not to delete related assests23:18
sinzuiyes. we make the user do it and the mode object raise an exception23:18
lifelessis there some where I can read up on that? It seems like we're just shuffling things around at the moment23:18
sinzuiI do not think we ever document things like this in dev.lp.net23:19
lifelesssinzui: is there any reason we can't do that over the api ?23:19
lifelesssinzui: or just let the api delete succeeed ?23:19
lifelesssinzui: my concern is that this makes programmatic management of branches like the package import ones break down23:19
sinzuilifeless: I am current with the discussion I think the way to allow users to shoot themselves in the foot is to 1. add a method that does the extra work and 2. provide a delete_dependents=False arg to the delete method. Let the users be expclite23:21
lifelesssinzui: AIUI destructors may not accept arguments23:21
lifelessleonardr: ^ is this true ?23:21
sinzuilifeless:  less capable users are writing scripts that check for releases, milestones, packaging links, and delete them before deleting the master object23:22
lifelesssinzui: and merge proposals ?23:23
sinzuilifeless, this is also how some projects differ bugs to a new series/release23:23
lifelesssinzui: I believe you have you bypass ownership to do this23:23
sinzuiThat does not surprise me. that is what the other deletes do23:23
sinzuiI can delete a series and your private bugtask goes, you have no control over it23:24
lifelesssinzui: which is why I'm saying that manually looking for and removing relations is not a good design or iddiom23:24
sinzuiThe owner of the master object wins, but that is why we let the users know the consequences in the UI23:24
lifelesssinzui: we don't do this on series though ... we just delete it as you say.23:25
wgrant'delete'23:26
lifelessanyhow, what I want to achieve is the following:23:26
lifeless - I want james_w's script to cleanup ubuntu package imports to work23:26
lifelessmaxb: around?23:27
wgrantsinzui: What is the status of your mailman QA?23:29
sinzuilifeless: I do understand. we need to move th pre-delete rules into the model, and let the user choose to use them. What would be nice is a way to automatically deduce dependencies. Deleting the s-m-r-f chain took a lot of landing to fix rare cases like private and conjoined bugs23:29
sinzuiwgrant: I do not have syncage: https://qastaging.launchpad.net/~test-list-sync23:30
* sinzui made up a word23:30
wgrant:(23:30
lifelesssinzui: could you do me a huge favour? file a (low|high) bug about making this work, with your info, and mention its number in the one about delete oopsing.23:30
sinzuiI I am landing the config fix now23:31
wgrantOtherwise we should be unblocked for deployment in a few hours.23:31
sinzuilifeless: okay23:31
lifelesssinzui: thank you!23:31
bigjoolssample data I freaking hate you23:32
wgrantbigjools: :(23:32
bigjoolsthe fact that it gets loaded after all the patches are run is awkward23:33
bigjoolsit means that I have to change it23:33
wgrantAh.23:33
wgrantThere are instructions for this :)23:33
bigjoolssince I have an evil plan to make version in the model class point at debversion in the db23:33
leonardrlifeless: right, it's either destroyed or not destroyed23:39
poolieleonardr, i'd love to talk to you about how wadl should be used by wrested some time23:42
wgrantCould someone please review https://code.launchpad.net/~wgrant/launchpad/bug-707741-addFile-master/+merge/47606?23:46
wgrantIt fixes the rosetta-export-queue.py failure.23:46
StevenKwgrant: That looks good -- I think you should also check you can get the file out of the librarian, if you feel it's needed.23:49
wgrantslony please go away :(23:51
wgrantStevenK: Done.23:54

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