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

leonardryeah, one little change got rid of most of the errors00:02
jmlg'night all00:22
lifelessjml: ciao00:36
lifeless=== Top 10 Time Out Counts by Page ID ===02:08
lifeless    Hard / Soft  Page ID02:08
lifeless     283 / 2484  Distribution:EntryResource:searchTasks02:08
lifeless     103 /  242  BugTask:+index02:08
lifeless      94 /  209  Distribution:+bugs02:08
lifeless      52 / 4427  Archive:+index02:08
lifeless      38 /   85  Branch:+index02:08
lifeless      23 /    3  ProjectGroup:+milestones02:08
lifeless      15 /  258  Question:+index02:08
lifeless      11 /    1  Distribution:+builds02:09
lifeless      10 /    1  DistributionSourcePackage:+filebug02:09
lifeless       8 /    2  Person:+bugs02:09
LPCIBotProject db-devel build (318): FAILURE in 4 hr 54 min: https://hudson.wedontsleep.org/job/db-devel/318/03:06
LPCIBotLaunchpad Patch Queue Manager: [rs=buildbot-poller] automatic merge from stable. Revisions: 12231,03:06
LPCIBot12232 included.03:06
Ursinhalifeless, have a minute for a review?04:21
Ursinhahttps://code.launchpad.net/~ursinha/qa-tagger/681099-consider-untestable-bugs/+merge/4687004:21
=== Ursinha is now known as Ursinha-afk
lifelessUrsinha-afk: done04:26
=== Ursinha-afk is now known as Ursinha
Ursinhathanks lifeless05:01
lifelessde nada05:03
Ursinha:)05:05
LPCIBotYippie, build fixed!08:22
LPCIBotProject db-devel build (319): FIXED in 5 hr 15 min: https://hudson.wedontsleep.org/job/db-devel/319/08:22
LPCIBotLaunchpad Patch Queue Manager: [rs=buildbot-poller] automatic merge from stable. Revisions: 12233,08:22
LPCIBot12234 included.08:22
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
lifeless\o/13:30
al-maisanhmm .. this channel used to be livelier13:46
lifelessits < 8am where everyone in the team is13:46
lifelesssprint time :)13:47
al-maisanah, I see :)13:47
=== al-maisan is now known as almaisan-away
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== almaisan-away is now known as al-maisan
lifelessjml: are you going to show testr/tribunal?15:27
jmllifeless: yes15:28
jmllifeless: testr, tribunal, subunit, fixtures, testdoc, etc.15:29
lifeless\o/15:30
=== beuno is now known as beuno-lunch
Ursinhaleonardr, is bug https://bugs.edge.launchpad.net/launchpad/+bug/486974 actually fix released?16:20
_mup_Bug #486974: no API documentation of Person <bugjam2010> <lp-foundations> <qa-ok> <Launchpad itself:Fix Released by leonardr> < https://launchpad.net/bugs/486974 >16:20
Ursinhait was marked as fix released so the qa-tagger is ignoring it16:21
Ursinhaleonardr, it's not actually released yet, as production doesn't have it, right? can I change it back to Fix Committed?16:31
leonardrursinha: yeah, sure16:40
leonardrsorry16:40
Ursinhaleonardr, no problem, really16:40
Ursinhajcsackett, is the partial fix of bug 618400 ok to be deployed?16:42
_mup_Bug #618400: Distribution:+archivemirrors timing out in 1% of requests <lp-registry> <mirror> <pg83> <timeout> <Launchpad itself:In Progress by jcsackett> < https://launchpad.net/bugs/618400 >16:42
Ursinhaas in it doesn't need qa or it won't break anything16:42
jcsackettursinha: yeah, i took a look at the affected pages last night--all seems groovy.16:43
Ursinhajcsackett, cool. I'll mark it as qa-ok :)16:43
Ursinhathanks!16:43
jcsackettnp.16:43
jcsackettwith luck, full fix will land today.16:43
thumperhuwshimi: please can I talk to you at the start of squad time?17:13
=== beuno-lunch is now known as beuno
=== al-maisan is now known as almaisan-away
huwshimithumper: Will it take long. I need to have a meeting with someone else and have that scheduled straight up17:31
thumperhuwshimi: I just want to point to some styling bugs in LP17:31
thumperhuwshimi: should just be 1 or 2 minutes17:32
huwshimithumper: ok no problems then17:32
vanguardis this the right address if I fail to build a source package?17:39
thumpervanguard: it is good enough, what's up?17:42
vanguardI just fell for the - and _ in the orig.tar.gz name17:43
jmlhuwshimi: we might have to reschedule. I wasn't expecting this talk.17:43
vanguardnow I got another problem, I have  Depends: default-jre (>= 1.6) in my control file17:43
vanguardwhen I run debuild, it tells me that (>= 1.6 is no valid version17:43
thumperwgrant: can you help?17:44
vanguardwhere did that ) go?17:44
thumperor bigjools17:44
wgrantvanguard: Please pastebin your control file.17:44
vanguardsure17:45
vanguardhttp://pastebin.ubuntu.com/556236/17:46
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
james_w`vanguard, you need a comma before default-jdk on the Build-Depends line17:49
thumperhuwshimi: bug 70554817:50
_mup_Bug #705548: Multiline editor needs CSS tweaks <css> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/705548 >17:50
huwshimithumper: Thanks for that17:51
thumpernp17:51
vanguardjames_w`: okay, there is .deb now. I have to check it out17:52
vanguardthe package is opened by gdebi, but in the file list is nothing of my project. How do I tell debuild to pack the .jar file into the .deb?17:53
vanguardsry, g2t17:54
vanguardg2g17:54
jmlmpt:18:05
jmlmpt: http://people.canonical.com/~jml/convergence/18:05
vanguardI build a source package, but after "debuild", I have a package that only contains the changelog and stuff, but not my actual .jar file. How do I add it?18:42
bigjoolsvanguard: try #ubuntu-motu for packaging questions18:45
LPCIBotProject db-devel build (321): FAILURE in 5 hr 10 min: https://hudson.wedontsleep.org/job/db-devel/321/18:46
LPCIBotLaunchpad Patch Queue Manager: [rs=buildbot-poller] automatic merge from stable. Revisions: 12239,18:46
LPCIBot12240, 12241 included.18:46
pcjc2hi, lifeless - rather than just fix the cve case, I've started a search for all dubious SQL which employs a sub-select18:56
pcjc2my search is based on grep and manual checking so far, but if I come up with a list, I'll file a meta-bug for the issue18:57
pcjc2bugtask.py is looking like a strong culprit18:57
pcjc2Any chance you could paste me some sanitized stats on where I might most usefully look to fix first?18:58
pcjc2In case it is of interest to anyone, my commit hook robot code:19:07
pcjc2(WIP)19:07
pcjc2http://pastebin.com/8m2cWXZ319:07
pcjc2and the git part: http://pastebin.com/ahF1U3RX19:08
pcjc2It is a two-part hook / update process, the hook uses git shell commands to populate a sqlite DB19:08
pcjc2The update process pulls work items out of the sqlite DB and uses launchpadlib to make updates to bugs19:08
pcjc2The only snag so far is that it can't handle private bugs, for the project as it is not subscribed to them. I could add the robot to our developers team, but I can't handle the extra email it would generate - the robot's email address forwards to me19:09
pcjc2So far I've found 11 candidates in the code-base for SQL improvement19:22
pcjc2(And that is with the very crude search assuming the appropriate statements are on the same line)19:23
pcjc2http://pastebin.com/3Ln9z4qg19:24
=== Ursinha is now known as Ursinha-afk
pcjc2https://bugs.launchpad.net/launchpad/+bug/70558219:35
_mup_Bug #705582: Metabug: Inefficient sub-select SQL in LP causes performance issues <Launchpad itself:New> < https://launchpad.net/bugs/705582 >19:35
pcjc2Not much chat in here at the moment - wrong time-zone, or is there a conference or something19:36
maxbThe canonical folks are all still at their sprint, IIRC19:38
pcjc2ah, that would explain their absence19:40
pcjc2I just found this: http://www.markshuttleworth.com/archives/23919:52
pcjc2That video mockup is pretty amazing - is that the shape of things to come?19:52
pcjc2(I realise the post is old)19:52
spivpcjc2: adding nice ajax-y stuff to improve usability?  Yes20:00
lifelesspcjc2: hi :) want to see more crazy sql ?20:01
=== Ursinha-afk is now known as Ursinha
vanguardis a subselect something that performs another select based on every single result from the first query?20:11
lifelessthats a correlated subquery20:12
lifelessa subselect is a form of subquery20:12
lifelesswhether its correlated or not depends on whether it depends on any variables in the containing query20:13
pcjc2hi lifeless - fire away with the SQL20:30
pcjc2I'm not promising I'll fix them all - just felt bad for not filing the bugs after I discovered those other cases20:30
pcjc2I'm thumb-twiddling whilst I wait for our project's "maintainer" / founder to get on and test my LP update robot scripts no his server.20:31
pcjc2Absentee landlord is no fun - and he's the only one with root / admin access on that server20:31
* pcjc2 is like a child with ADHD demanding constant attention - likes feedback soon, does not like waiting 2 or more days to test the code he's just finished writing20:33
lifelesspcjc2: :)20:34
pcjc2The video here.. http://www.markshuttleworth.com/archives/23920:35
lifelessbug 705224 was entertaininy20:35
_mup_Bug #705224: Distribution:EntryResource:searchTasks timeout <dba> <regression> <timeout> <Launchpad itself:Triaged by lifeless> < https://launchpad.net/bugs/705224 >20:35
pcjc2was that a "live" mockup witih real AJAX, or heavily edited?20:35
pcjc2was the regression in bug 705224  related to my recent change to fix the timeout searching for -* tags?20:36
_mup_Bug #705224: Distribution:EntryResource:searchTasks timeout <timeout> <Launchpad itself:Triaged by lifeless> < https://launchpad.net/bugs/705224 >20:36
lifelessI think it was a manual mockup20:36
lifelesscertainly we don't have that yet20:36
lifelesspcjc2: it was related yes, thats why I mention it to you :)20:37
pcjc2I'll take a look20:38
lifelesspcjc2: the relation is that the UNIONs before used to be a single query over the tags20:38
lifelesspcjc2: oh, its fixed.20:38
lifelesspcjc2: but sure, have a look at the fix if you're interested20:38
pcjc2I did wonder if we ought to be combining the multiple tag queries inside the WHERE clause20:38
allenaprvb: me!20:45
rvballnap: same name on lp?20:46
pcjc2lifeless - are tags gauranteed unique?20:51
pcjc2if so, "might" be able to optimise the all tags case too, abusing count20:52
pcjc2(SELECT COUNT(*) FROM (SELECT TRUE FROM BugTag WHERE BugTag.bug = Bug.id AND BugTag.tag IN ('foo', 'bar', 'baz')) = 3)20:53
pcjc2assuming the input tags are all distinct (could write some python to ensure that if necessary), the query should return an equal number of rows to the number of tags we asked for IFF all those tags exist20:54
pcjc2question is... would this "hack" / creative use of SQL give any useful speed-up for any real-world queries being seen?20:55
pcjc2I presume that if this was a regression - the DB engine was doing a better job of merging the uncorrelated UNION subqueries21:00
rvballenap: I'm browsing through trivial bugs. Many of them look like they've been fixed already ... can you check this one https://bugs.launchpad.net/launchpad/+bug/298288 to make sure I'm not completely wrong about this?21:06
_mup_Bug #298288: Feature Request: PPA file display should allow sort by header <lp-soyuz> <ppa> <trivial> <Launchpad itself:Triaged> < https://launchpad.net/bugs/298288 >21:06
allenaprvb: Yeah. Do you want to mark it Invalid?21:07
rvballenap: I'll do it21:09
rvballenap: and to a few others bugs as well21:10
allenaprvb: Cool :)21:11
pcjc2http://people.canonical.com/~jkakar/storm/storm.sqlobject.SQLObjectBase.html#selectOne21:11
pcjc2Undocumented21:11
pcjc2What kind of SQL fragment does selectOne expect? (Or what kind of query would it expand to?) *** (checks storm sources)21:11
wgrantpcjc2: You should ideally not use selectOne, since that's part of the legacy SQLObject compat layer.21:12
wgrantgrep around for '.one()'21:12
wgrantThat's the new Storm Way®21:12
pcjc2not new code - I was just looking to see if I could identify an SQL optimisation21:12
bigjoolsdepends on what type of result set he's got21:12
bigjoolsconsistency FTW21:13
pcjc2       job = CodeImportJob.selectOne(21:13
pcjc2            """id IN (SELECT id FROM CodeImportJob21:13
pcjc2               WHERE date_due <= %s AND state = %s21:13
pcjc2               ORDER BY requesting_user IS NULL, date_due21:13
pcjc2               LIMIT 1)"""21:13
wgrantbigjools: .selectOne is a method on a SQLObject class.21:13
wgrantNot a resultset.21:13
* bigjools needs more coffee21:14
pcjc2The question in theory - is whether that expands to something which gets correlated against for lots of rows21:14
wgrant.... huh?21:14
wgrantDoes that make any sense?21:14
wgrantid IN (SELECT id ...)21:14
pcjc2given that line of code... does it produce a horribly inefficient query, as was the cause for bug 50194521:15
wgrantI'd use this:21:15
pcjc2I wasn't convinced it would do anything other than return TRUE or FALSE21:15
pcjc2which seemed like an odd kind of thing to pass to a method which allegedly selects one result21:15
pcjc2lp/code/model/codeimportjob.py line 13421:16
pcjc2It happened to be the first on my list of suspicious SQL things I found and noted in Bug #70558221:16
wgrantjob = IStore(CodeImportJob).find(CodeImportJob.date_due <= whatever, CodeImportJob.state == whatever).order_by(Desc(CodeImportJob.requesting_user), CodeImportJob.date_due).first()21:16
_mup_Bug #705582: Metabug: Inefficient sub-select SQL in LP causes performance issues <Launchpad itself:Invalid> < https://launchpad.net/bugs/705582 >21:16
pcjc2I'm going to file bugs for all cases where I can determine some better SQL, but without being able to link these to real issues people are seeing, change for the sake of change seems like regression potential21:17
pcjc2IStore is part of storm?21:18
lifelesspcjc2: perhaps; we're not seeing timeouts on the 'all' case atm21:18
lifelesspcjc2: we have -very- good feedback on slow queries, so I'm kindof inclined to change broken things only.21:18
pcjc2sounds fair enough21:19
lifelessthat siad, CIJ had some issues21:19
pcjc2Any matchup between the ones I noted and the hit-list of bad SQL?21:19
lifelessand that select seems a workaround for separation between clause and results21:20
pcjc2That code-import fragment I posted has me confused to what it even does21:20
pcjc2id IN (...) should evaluate to TRUE or FALSE, right?21:21
lifelessit acts as a where clause that sqlobject will use reasonably21:21
lifelessyes21:21
lifelesspcjc2: or NULL perhaps, I'd need to check.21:21
pcjc2job = CodeImportJob.selectOne(<something which evaluates to TRUE or FALSE>) seems like an odd bit of code to run21:21
wgrantpcjc2: It selects the single row that matches the condition.21:22
lifelessyeah, its odd because of an old layer we're migrating from21:22
pcjc2so it is a WHERE clause gragment?21:22
pcjc2fragment, sorry21:22
lifelessits a where clause21:23
pcjc2SELECT ... WHERE id IN (...)21:23
lifelesssqlobject is magic and special21:23
pcjc2so it could be "CodeImportJob.id = id AND date_due <= %s AND state = %s ORDER BY requesting_user IS NULL, due_date LIMIT 1"21:25
lifeless no21:25
lifelessnot with sqlobject21:25
lifelessneeds to be stormified21:25
pcjc2is sqlobject pretending to execute SQL on something which is not in the DB?21:25
lifelessno, its pretending not to execute sql21:27
lifelessits a complex story21:27
lifelessbest thing is to move to Store.find(CIJ, ....) instead21:27
lifelesswith .one()21:27
pcjc2I doubt I can do anything truly useful here, but I will file a bug for someone with area-knowledge to triage21:28
pcjc2I don't think code-import is something I'll be able to test very easily locally21:28
lifelessso that doesn't look like a bug21:29
lifelessits oddly written21:29
lifelessbut should be fast21:29
lifelesswhy do you think its a bug?21:29
wgrantlifeless: It's actually .first(), not .one(), I think. But it's spelt as a selectOne with a subquery that only matches the first.21:29
lifelessmeh, yes.21:30
StevenKlifeless: Like pcjc2 is saying, he is following a pattern that a badly-written subselect was causing timeouts, so maybe others do the same.21:35
pcjc2all depends on row count really - bugtags is probably a very high count table, at about 700k rows21:36
lifelessStevenK: thanks; I meant why does he think *this* one is a problem.21:36
huwshimideryck: Available when you're ready21:36
StevenKI suspect it just happens to be the first one on the list.21:36
lifelesspcjc2: this query is already constrained though: note that the query is looking for next thing due21:36
lifelessits answerable from index.21:36
deryckhuwshimi, ah, cool.  give me 5 minutes to wrap and we can.21:36
deryckhuwshimi, shall I come to you or you to me?21:37
pcjc2yes, just first on list - it seemed odd, and I still can't quite map what SQL it ends up executing21:37
pcjc2you are right though - work from known timeouts, rather than poking at supposed problems21:37
huwshimideryck: Great. I can come to you. Everyone is working quietly here so lets not disturb them :)21:38
pcjc2IStore, etc.. is Storm?21:38
deryckhuwshimi, ok, first room on left going down left-side hallway.21:38
huwshimideryck: ok see you soon21:38
pcjc2Hmm - example from storm docs:21:41
pcjc2store.find(Person, Person.name == u"Joe") and store.find(Person, name=u"Joe")21:41
pcjc2Seems like unholy magic to me21:42
pcjc2'Person.name == u"Joe"' is somehow passed as argument, not evaluated immediately to give True / False?21:42
StevenKIt is passed as an argument and Storm intreprets it21:46
leonardrthumper, the javascript side of things is in lib/canonical/launchpad/icing/build/bugs/bugtask_index.js and it's pretty hairy21:47
jelmerlifeless: resubmitted.21:48
huwshimideryck: Just held up here for a bit, will be over soon21:50
pcjc2StevenK, I need to go read up more on Python... the fact it is somehow an argument and not evaluated before the call is magical to me21:51
deryckhuwshimi, no worries21:51
pcjc2does it have anything to do with lazy evaluation?21:51
mwhudsonpcjc2: the implementation of the == operator doesn't have to return true or false...21:53
pcjc2ah - so it IS evil magic going on ;)21:53
pcjc2And presumably the "Person" object in the example is typed such that the == operator has a specific implementation?21:53
StevenKIt's likely done via SQLObject *and* Storm so that both implement __eq__21:57
pcjc2I'm reading the code, and I'm still non the wiser how it works21:57
* StevenK is fairly ignorant of Storm internals21:58
pcjc2NM though.. it will keep me entertained trying to learn how.. Evil evil magic is still my best guess21:58
pcjc2Is it a design choice to go more ORM style, and less explicit SQL queries?21:58
lifelessjelmer: thanks21:59
lifelesspcjc2: operator overloading21:59
lifelesspcjc2: yes, its evil22:00
pcjc2It seems pretty evil22:00
lifelessORM is a bit of a mistake; late evaluation leads to death-by-single-row-retrieval22:00
pcjc2I'm sure someone more knowledgeable than I has decided it is a good idea though22:00
lifelesslong term goal is a mapping layer that answers service-point entire answers22:00
pcjc2service-point is for example, http://lp.net/project/+bugs  ?22:01
lifelessa search page, sure22:01
pcjc2launchpadlib API is a "sort" of ORM type affair?22:02
pcjc2I found that very intuitive to work with22:02
lifelesssort of yes22:03
lifelessits why its so slow ;P22:03
pcjc2can't have everything I guess22:04
pcjc2When people are not so busy sprinting, I'd love to have a chat about various ideas22:04
pcjc2Mostly feature-request stuff, but the kind most usefully bounced of other people before just filing a bug titled "wouldn't this be nice..."22:05
lifelesssure22:05
lifelessanytime is good22:05
pcjc2I was thinking that LP might usefully grow a "person" type object for automatons / robots22:05
pcjc2(I've been writing one recently, so it is in my mind)22:06
pcjc2They would be owned by a person or team, but delegate contact via that team - not requiring their own Email address or OpenID login / whatever22:06
pcjc2IE.. a way to auth against LP for API use which doesn't require setting up a pretend person to do it22:07
allenapjtv: From the API, a list of Bugzilla trackers can be obtained with: [bt for bt in root.bug_trackers if bt.bug_tracker_type == 'Bugzilla']22:08
pcjc2Have also been thinking about controls to navigate collections of bug search results from within the bug page. UI still going through my head though22:08
dobeypjdc: you could call the object IRobot22:08
pcjc2might be a TM on that one22:09
lifelessso, in page refresh is definitely already desired22:10
dobeywhat would be awesome is a way to use the API with basaic auth22:10
dobeybasic even22:10
dobeyor digest anyway22:10
lifelessI have extremely mixed feelings about that22:10
pcjc2https://launchpad.net/~gpleda-launchpad-robot22:10
pcjc2The fact that the robot is a person doesn't map well to our usage22:11
pcjc2It needs to get subscribed to security bugs so it can close them22:11
pcjc2but I _dont_ want it to get bugmail22:11
dobeyi don't want *me* to get bugmail22:11
pcjc2that too ;)22:11
lifelessok22:12
pcjc2I understand that is a WIP regarding bugmail granularity though22:12
lifelessso we have an answer for this already22:12
lifelessyeah22:12
lifelessits well advance22:12
lifelessif you ask gary_poster nicely you may be able to be in the alpha22:12
pcjc2ok, will do22:12
dobeylifeless: what reservations re: basic/digest auth?22:13
lifelessdobey: well, we use ssl so on that front its fine22:13
lifelesshandshaking with canonical-identity-provider / other openid environments is darn tricky.22:13
pcjc2In page refresh would be awesome - I was thinking about remembering the "view" or "search query" / whatever, you were doing when you clicked on the bug, and giving "Next" "Prev" controls22:14
lifelessin terms of standards... there are none22:14
lifelesspcjc2: that would be awesome too22:14
pcjc2In page update when people comment (reverse AJAX push) would be amazing, but perhaps a corner case22:14
dobeyyeah i know, which is why doing oauth is so horribly painful22:14
dobeyi guess that launchpad isn't exactly the openid provider any more though, so basic/digest auth is trickier now22:15
pcjc2OpenID seems like a nice proposition22:16
dobeyopenid/oauth are solutions looking for a problem22:17
pcjc2if it were my server / wiki, I would re-write the auth for our project's wiki to link to user's LP OpenIDs22:17
pcjc2We could tie the permissions to team membership on LP22:17
mwhudsonteams in openid are some launchpad specific extension though aren't they?22:17
mwhudsonwhich is a bit of a shame22:17
pcjc2I'll admit I don't fully understand OpenID,22:18
pcjc2I looked at oauth, and it seemed a vaguely sensible way for an API to authenticate22:18
dobeyi just don't want to have to authenticate my browser twice22:19
leonardrdobey: can you be more specific about "authenticate my browser twice"?22:20
pcjc2I assume dobey is talking about having to login to the SSO / login.launchpad.net, and then auth launchpad.net to those credentials22:21
lifelessdobey: right, we no longer maintain an authentication db22:21
dobeyleonardr: i want to make an extension for my browser that uses lp api to do certain things when viewing certain launchpad pages, and having to authenticate that separately is weird22:21
pcjc2weird, but IMO necessary22:22
dobeyi don't think it's necessary22:22
dobeyit is however, cumbersome and painful22:22
leonardrdobey: if you're in the browser, you can use the same-domain version of the web service that the ajax application uses, which will carry over the browser's authentication22:22
leonardrbut it depends on how close your code is to the browser22:23
dobeyleonardr: if i'm in the browser, or "if i'm in the JS" ?22:23
leonardrdobey: if you have access to the Cookie header being sent by the browser22:23
dobeyby "extension" i mean "c, python, similar"22:23
dobeyleonardr: so i can just re-use the sessionid cookie to talk to the api?22:24
leonardrdobey: that's what the web browser does22:24
dobeyleonardr: so i can pass that cookie through launchpadlib?22:25
leonardrno22:25
dobey:(22:25
leonardrbut that's what allows the browser to make these requests22:26
leonardrwe could add that functionality but it would immediately be abused by everyone who's not writing a browser extension22:26
leonardrand it would have all sorts of bad edge cases surrounding logout22:27
dobeyi really do not want to reimplement launchpadlib :(22:27
leonardrdobey: does it make you feel better to know that in natty, all desktop-wide apps will use the same oauth authorization?22:28
dobeyno22:28
leonardrdobey: do you understand my position?22:29
pcjc2How will they share that auth token? DBus or something?22:29
pcjc2gnome-keyring-manager?22:29
leonardrpcjc2: keyring-manager by default22:29
dobeyubuntu-sso-client22:30
dobeywhich is per-app, not per-target22:30
dobeybut anyway22:30
dobeyleonardr: i understand what you're saying, but i don't think it's a particularly strong argument for doing it the way it's currently done. it wouldn't really take much more effort to abuse the browser stuff as it is, it seems. although it's tedious enough that i might not bother with it myself22:32
dobeybrb22:32
leonardrdobey: "tedious enough that i might not bother with it myself" is the only hurdle i need to clear22:33
mrevellhuwshimi, with reference to bug 263652, you rock22:34
_mup_Bug #263652: {i} and other icon codes no longer work on help wiki <Launchpad Help Wiki Moin theme:Fix Committed> < https://launchpad.net/bugs/263652 >22:34
dobeyleonardr: yes, but everyone isn't an old bitter and jaded developer like me :)22:36
leonardrdobey: i just need to stop this code from getting into supported ubuntu packages22:36
leonardrdobey: i think you can implement Cookie: passing pretty easily by overriding some methods in Launchpad22:37
leonardrand implementing your own Http subclass22:37
dobeyleonardr: i don't want to touch javascript22:38
leonardri mean the Launchpad class of launchpadlib22:38
dobeyah ok22:38
leonardrif this is code for yourself then that's fine, but if you want to put it into ubuntu we will have to reach some other compromise22:39
dobeyi'm writing a browser, and would like to keep everything contained within it22:43
leonardrdobey: if you're writing the whole browser, you should be able to intercept launchpadlib's webbrowser.open call and open that page in your already-authenticated browser, avoiding the second authentication22:46
leonardrdoes that make any sense?22:47
dobeyslightly22:48
leonardrdobey: i have absolutely no problem helping you with this, if this is the way you want to go22:49
dobeyi'm a long way from that point still, but it will require a lot more thought22:50
huwshimimrevell: Yeah no problems. Still needs to be pushed live at some stage22:51
leonardrdobey: ok, ping me. i think we can get a solution that makes us both happy22:52
dobeyok22:53
dobeycheers for now22:53
bigjoolslifeless: allenap just did an experiment with TAL to see if that macro re-evaluation was true, and it doesn't seem to re-eval if it's an int at least.  Maybe it's only for complex objects.23:32

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