/srv/irclogs.ubuntu.com/2010/12/07/#launchpad-dev.txt

pooliek00:00
poolieabentley: so the final gpg one: staging is oopsing too much to test it00:31
pooliei don't seem to have broken anything at least :/00:32
abentleypoolie: did you create that merge proposal, or did it already exist?00:35
abentleypoolie: I think you're hitting the bug where the staging librarian oopses instead of falling back to the production one.00:36
abentleypoolie: I bet you won't have that issue if you create a fresh merge proposal.00:36
poolieah, it already existed00:46
poolieok00:46
poolieabentley: everything is qa-ok now, i believe01:06
abentleypoolie: great.01:07
pooliecan you tell me the url where i can check the unreleased changes?01:08
thumperwhat is the name of the single signon project?01:23
wgrantcanonical-identity-provider01:23
thumperta01:25
lifelesspoolie: you might like the buffer bloat stuff thats getting airtime right now03:03
lifelesspoolie: vis-a-vis bzr network perf issues03:03
pooliewhere?03:03
lifelesshttp://gettys.wordpress.com/category/bufferbloat/03:04
poolieinteresting03:15
lifeless=== Top 10 Time Out Counts by Page ID ===03:18
lifeless    Hard / Soft  Page ID03:18
lifeless     286 / 6529  Archive:+index03:18
lifeless     110 /  328  BugTask:+index03:18
lifeless      36 /  268  Distribution:+bugs03:18
lifeless      21 /  143  ProjectGroupSet:CollectionResource:#project_groups03:18
lifeless      15 /   32  DistroSeries:+queue03:18
lifeless      14 /    0  BinaryPackageBuild:+retry03:18
lifeless      13 /   18  Archive:+copy-packages03:18
lifeless      10 /  264  Distribution:+bugtarget-portlet-bugfilters-stats03:18
lifeless      10 /   39  MailingListApplication:MailingListAPIView03:18
lifeless       9 /    7  Person:+bugs03:18
lifelessmwhudson: hey, how is vostok03:25
mwhudsonlifeless: resting03:26
lifelessah03:26
pooliethere are so many intranet hosts called portal.*.com, and so few of them actually let you play the game :-(03:28
spivpoolie: haha03:49
poolie:)03:50
pooliehow are you?03:50
pooliei'm doing one of max's reviews03:50
pooliei was looking into splunk earlier and it looks very good03:51
spivGood, about to flood the review queue slightly :)03:56
poolie:)03:57
* spiv shifts to #bzr03:57
pooliethumper: don't suppose you're still here?07:14
thumperpoolie: not really08:22
adeuringgood morning08:36
=== almaisan-away is now known as al-maisan
mrevellMorning09:10
bigjoolsmorning people09:13
wgrantMorning.09:18
jelmerhi mrevell, wgrant09:31
wgrantMorning jelmer.09:31
=== _mup__ is now known as _mup_
bigjoolswgrant: yo11:30
wgrantbigjools: Hi.11:31
bigjoolswgrant: so the zombie sources are all these I think: http://pastebin.ubuntu.com/540590/11:32
bigjoolsdoes that query look sane to you?11:32
wgrantIt does.11:32
bigjoolsit probably needs to ignore some more11:32
bigjoolsstuff that went superseded in the minutes before the query runs will get picked up11:32
bigjoolsmaybe I can ignore stuff newer than an hour old11:33
wgrantYeah. Filter for older datesuperseded.11:33
wgrantOr datecreated.11:33
bigjoolsI'm going to convert that to an UPDATE to set spph.datepublished11:33
wgrantEr.11:33
wgrantWhy?11:33
bigjoolsfail11:33
bigjoolsspph.scheduleddeletiondate11:33
bigjoolspaste pebkac11:33
wgrantThe "Why?" still stands.11:34
wgrantMark the binaries Deleted, and the sources will be condemned automatically.11:34
bigjoolsyes11:34
bigjoolsI guess so, was gonna do binaries separately11:35
wgrantThe minimal hacker is to set the status and datesuperseded of the binaries.11:35
wgrantEverything else will follow.11:35
wgrantAnd I like minimal production DB hackery :)11:35
bigjoolsyes ;)11:36
* bigjools cooks query to find associated binaries11:37
bigjoolswgrant: sane? http://pastebin.ubuntu.com/540597/11:58
bigjools5744 binaries!  (I forgot the time constraint)11:58
bigjoolshttp://pastebin.ubuntu.com/540605/ is better12:00
wgrantbigjools: You need to constrain bpph.archive, but otherwise it looks OK.12:07
bigjoolsyeah was just making that change12:07
bigjoolstrying to think whether I need to constrain on distroseries too12:07
wgrantAlso constrain the status.12:08
wgrantWe only care about published ones.12:08
bigjoolsyes12:08
wgrantThinking about the distroseries thing... it probably won't make a difference, but try it both with and without.12:08
bigjoolshmmm, zero rows12:09
bigjoolsremoving the archive constraint makes it 168412:10
bigjools158412:10
wgrantWhich archive constraint? bpph.archive = spph.archive?12:11
bigjoolsyeah12:13
wgrantThat has to be there.12:13
wgrantSo sounds like we've got something wrong.12:13
bigjoolswgrant: I think I know12:27
wgrantOh?12:27
bigjoolsthey are probably all copied12:27
bigjoolsbut that doesn't explain the lack of binaries causing domination to not set scheduleddeletiondate12:27
* bigjools looks at the code12:28
wgrantRight, they have to be in the same archive.12:28
bigjoolsso they should get comdemned :/12:29
wgrantWell, no. Our query is wrong.12:29
bigjoolsthat is the other obvious problem :)12:29
bigjoolshttp://pastebin.ubuntu.com/540608/12:30
bigjoolsthat's the current one12:30
=== Ursinha-afk is now known as Ursinha
wgrant        bpph.id = binarypackagerelease.id and12:30
wgrantWut?12:31
bigjoolssigh12:31
bigjools2237 rows.  hurray12:32
wgrantI love typesafety :)12:32
bigjoolsnow to restrict on series12:32
wgrantAnd status.12:32
wgrantStatus is far more pressing.12:32
bigjoolsheh12:32
bigjoolsdown to 14112:32
bigjoolswhich is odd, that's less than the number of source rows12:33
wgrantNot terribly odd.12:33
wgrantMore relevant is how the number of archives in those rows compares to the number processed each time.12:33
bigjools141 again restricting the series12:35
bigjoolsso that's pleasing12:35
wgrantExcellent.12:35
bigjoolstime to sweep up some cruft then12:35
wgrantI'd compare the list of archives first...12:35
bigjoolsmmm12:36
bigjools14 of them12:37
bigjoolswgrant: so there's actually 23 PPAs that come up on the query.  However 4 of them don't appear in the publisher log.12:56
wgrantbigjools: Are those archives disabled or unpublishable?12:57
bigjoolsah let me check12:57
bigjoolsyup that's it12:59
bigjoolsall deleted12:59
bigjoolsno harm in fixing those publications anyway13:00
wgrantHow many of the archives in the log does that leave unfixed?13:00
wgrantWe need to do a mass-fixup of deleted archives' publications anyway.13:00
bigjoolsI don't know, it's very hard to see what's genuine and what's not13:00
bigjoolsthe only way to tell is to see it repeated in the log each run13:00
wgrantRight.13:01
bigjoolswgrant: http://pastebin.ubuntu.com/540616/13:02
wgrantbigjools: Do not touch SPPH. Set BPPH.status = Deleted and BPPH.datesuperseded = NOW()13:03
bigjoolswgrant: gah13:03
bigjoolsright13:04
bigjoolsI clearly need more coffee13:04
bigjoolsif we set status=Deleted, I need to set the person who deleted it13:05
bigjoolsor the UI will go bong13:05
bigjoolswgrant: http://pastebin.ubuntu.com/540622/13:06
wgrantbigjools: I don't think the UI will go bang. But I guess it might.13:08
bigjoolsit's bad data either way13:08
wgrant        spph.datepublished is null and13:10
wgrantI'm pretty sure that is crack, but it will only restrict the set to something less than it should be.13:10
wgrantOtherwise it looks OK.13:10
=== Ursinha is now known as Ursinha-lunch
deryckgmb, I meant to ask you to look at bug 380362 if you could.14:25
_mup_Bug #380362: Launchpad couldn't import several bugs from Debian Bug tracker. <Launchpad Bugs:New> <https://launchpad.net/bugs/380362>14:25
deryckmay be an old one that is fixed, but the linked bug watches still have "can't find bug" or some such error.14:25
gmbAh, the neverending saga of debbugs watches.14:26
gmbderyck: It's on my list for today. I'll try to poke at it when the LOSAs are available (they're currently tied up with another issue).14:26
deryckgmb, ok, thanks.14:27
=== matsubara is now known as matsubara-lunch
flacostederyck, abentley: the revert is missing qa tags and isn't recognised by qa-tagger, you should probably manually tag the bug14:49
deryckflacoste, abentley did.  That was my fault sorry.14:50
* deryck should never take theraflu during work days14:50
abentleyflacoste: Because deryck did not use --rollback, I have tried to emulate it from the documentation, which says "The bug will be tagged as bad-commit-*, all the qa-* tags will be remove..."14:51
abentleyflacoste: I think there's some difference between documentation and implementation, but I'm not sure what's supposed to be done in this situation.  Maybe roll it back to "in progress"?14:52
=== Ursinha-lunch is now known as Ursinha
=== matsubara-lunch is now known as matsubara
=== flacoste changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.12 | Performance Tuesday | PQM in RC mode | firefighting: - | Get the code: https:/​/​dev.launchpad.net/​Getting
gary_postersinzui: A few questions about https://bugs.launchpad.net/launchpad-foundations/+bug/684668 : May I toss it to registry, since we have no knowledge of these bits?  If not, my impression is that this is not of high importantance: am I wrong?16:10
_mup_Bug #684668: Unable to delete messages from list archive <canonical-losa-lp> <Launchpad Foundations:New> <https://launchpad.net/bugs/684668>16:10
sinzuigary_poster, yes16:11
gary_posterthank you16:11
sinzuigary_poster, I am sure it is an ml-archive-sucks bug. We know the message was deleted, but the page generator/squid cache wont show it gone16:11
gary_posterah, gotcha16:12
=== beuno is now known as beuno-lunch
=== benji is now known as benji-lunch
=== deryck is now known as deryck[lunch]
=== beuno-lunch is now known as beuno
=== benji-lunch is now known as benji
=== al-maisan is now known as almaisan-away
jmlhello18:12
pittihello18:12
pittibenji, gary_poster: how are you? jml said you are the right persons to talk about this new keyring thing?18:13
gary_posterpitti: hi, yes.  did you see benji's reply on the pertinent bug18:13
pittiyes, I just replied18:13
gary_posteroh, lemme go look18:13
pittibut I wondered why we deliberately broke existing API, instead of creating a new login_keyring() thing for keyrings18:13
pittithat's not .. nice18:14
pittiit suddenly breaks each and every script and cron job we've written18:14
pittiand isn't noninteractive18:14
benjiyour cron jobs use login_with?18:15
pitti(and using a keyring by default is total overkill -- after all, you can just snatch the cookie from firefox)18:15
pittibenji: sure18:15
benjithat's unfortunate18:15
pittithat was _the_ primary function to get a Launchpad lib so far18:15
pittiand it's also what the documentation said18:16
pitti(e. g. https://help.launchpad.net/API/Examples)18:16
benjieven without the changes in the latest version, cron scripts using login_with are in a precarious sitution; if the credentials cache is ever removed or if the token is revoked on the server-side they will attempt to re-authenticate with a web browser18:19
benjinot to say that the situation isn't worth discussing, but one of the outcomes apparently needs to be some form of better advertising when the different APIs should be used18:21
pittibenji: not really18:22
pittibenji: first, it had a credentials_file argument, so that you can store them in a well-known placed18:22
pittiand second, if you run the cron job manually the first time, it showed the URL to you, you could open it locally, and then you were fine18:22
gary_posterbenji, pitti, I'm a big +1 on getting pitti's scripts happy, both as an important user and as a representative.  I'm happy to weigh in if needed, but mostly intend to get out of the way.  A few notes:18:23
gary_poster- the security implications of this have been looked at by many (including Kees, importantly), and I'd really prefer not to reopen them.18:23
gary_poster- as you might expect, we believed that we were doing the right thing; what benji described was our understanding of the usage, and our expected usage.  The examples you cite were part of the general difficulty we find ourselves in: we want to make the right thing happen by developers who don't want to worry about it, and who have not worried about it in the past.18:23
gary_poster- we changed the behavior of login_with because it meant users that we were interacting with would not have to make a change to get the uniform behavior.  uniformity on the desktop is very important for this effort.18:23
gary_poster- our docs obviously needed and need improvement in this regard in particular.18:23
gary_poster- leonardr, the person most connected with these changes, is not around this week, though benji and I should be able do a reasonable job.18:23
pittibenji: I opened https://bugs.launchpad.net/launchpadlib/+bug/686690 about this18:23
_mup_Bug #686690: 1.8.0 completely breaks login_with() API (and forces keyrings) <launchpadlib :New> <https://launchpad.net/bugs/686690>18:23
pittiI think we should probably discuss it there, to have a better paper trail18:23
gary_posterpitti, your "and second" is exactly the kind of thing benji was describing18:23
gary_posterpitti, the paper trail is the upside.  The decreased speed is the downside.18:24
gary_posterin this particular case, with leonardr not around, maybe the paper trail wins anyway18:25
pittiI understand that you might want a different API on "desktopish" programs18:25
gary_posterand we are dealing with an installed base18:26
gary_posterthat needs to be uniform18:26
pittibut as it happens, most of our use cases (QA scripts, apport, ubuntu-archive-scripts, sru report, and what not) are not desktop apps18:26
pittithe only non-"server"ish use case I know of is Ubuntu One18:26
gary_posternit: non-desktop apps are not a particular problem for this; cronscrpts are.18:27
gary_poster...a subclass...18:27
gary_posterGround Control18:27
gary_posterothers, I believe18:27
pittior in general, taking a well-established existing API and turning it into something entirely different18:27
pittieven for desktop apps18:28
pittiit now means that suddenly every desktop user needs to reauthenticate18:28
pittias their existing credentials files are ignored18:28
gary_posterpitti, I think you are stretching your description ("entirely different").  from our perspective, the API presented a black box.  the credentials files are generally not intended to be the domain of a launchpadlib-using script.  But I also think that this part of the conversation is counter-productive.18:31
gary_posterWe have a use case and approach that has been vetted by more people than us.  There is a reason that it is the way it is, and it has been discussed.  I believe you have a valid, concrete concern for cronscripts that we did not foresee.  We need to determine a way around this.18:31
gary_posterOne obvious approach is to change the scripts to use our expected approach.  That is admittedly unfriendly, so even though I think that's the longer-term desire, we should do better now.18:32
pitticouldn't we get a new API for using keyrings, and make keyrings optional?18:32
pittiat least for a transition period of a year or so18:32
pittiso that we have the new keyring API available for some time18:32
pittiand everyone has time to port their stuff18:33
benjiwe could; part of the motivation for the keyring integration is to support better desktop integration without the need for clients to change their API use.  It would be great if we can fulfill that goal while also addressing the cron script problem.18:36
gary_posterpitti, keyrings are "optional" right now in that, if there is not one available, the keyring library will do something else.  You know that already.  I *think* what is more important to you is that, if legacy credentials files exist, they are used.  Is that in fact sufficient, or am I missing a detail?18:36
pittigary_poster: how can I make them optional?18:36
pitti(and no, I don't know that already)18:36
gary_posteroh18:36
pittiif I run a script now, it creates a new keyring18:36
pittiasks me for a passworrd18:36
pitti(which can't be empty)18:36
pittiand then subsequently asks me for that password again18:36
pittiWaiting to hear from Launchpad about your decision...18:37
pittiPlease input your password for the keyring18:37
gary_posterthey are optional in the sense that, if there is not one around (e.g., not Gnome or KDE), it is not used.18:37
pittiPassword:18:37
pittithat's what I get18:37
benjiI'm fairly certain that's the prompt for the encrypted file storage used when no keyring is available.18:38
pittiwell, I have GNOME running18:38
pittiI didn't test it on a server with ssh yet18:39
gary_posterright, the keyring library does not require a keyring implementation.  It provides a backup.18:39
benjiapparently python-keyring can't communicate with the keyring for some reason18:39
gary_poster(my comment is pertinent to "I  didn't test it on a server with ssh yet")18:40
* gary_poster is going to be quiet about details because benji knows more than he about them18:41
pittibenji: note that we currently have a very old version of p-keyring in the archive; did you test this with 0.5? it might work better18:43
gary_posterso far it sounds to me like (1) python-keyring is not happy on pitti's machine, which is worrisome; and (2) I'm not sure yet whether, if the first problem didn't exist, my proposal ("if legacy credentials files exist, they are used") is a sufficient compromise for this backwards compatibility problem.18:43
pittigary_poster: if the credentials_file parameter and existing cred files could continue to work, that'd pretty much solve the API break, I think18:43
pittias for (1), I have no idea, I'm afraid18:44
pittias I pointed out in the MIR, we should update to the current 0.5 upstream version first18:44
gary_posterpitti, do you always use the credentials_file parameter in your scripts?18:44
pittiit drops its own gnome-keyring module and uses libgnome-keyring, which is the right thing18:45
benjipitti: yep, the latest launchpadlib is meant to be used with python-keyring 0.5, but I'm not sure if using an older version would work more pooly18:45
pittigary_poster: only for apport; for most scripts we just use the default in ~/.launchpadlib/18:45
gary_posterah18:45
pittibenji: ah, that could be it then18:45
pitti(see above)18:45
pittisorry, need to leave for today18:46
pittithanks for the discussion so far!18:47
gary_posterpitti, ack.  I was hoping to only accept existing cred files if credentials_file were passed, and then issue a deprecation warning18:47
gary_posterbut that still sounds not good enough18:47
gary_posterok thanks18:47
gary_posterbenji or I will summarize in the bug18:47
pittiah, thanks18:47
pittiI also sent a summary18:49
pittithanks, and good night!18:49
gary_posterexcellent, thanks18:49
gary_posternight18:49
=== matsubara is now known as matsubara-afk
=== abentley changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.12 | Performance Tuesday | PQM open for business | firefighting: - | Get the code: https:/​/​dev.launchpad.net/​Getting
=== salgado is now known as salgado-afk
bdmurrayHow come the apidoc lists getSpecification but it doesn't actually appear with a launchpadlib client?21:57
benjibdmurray: does the version of the docs you're looking at and verion of the API match?22:00
bdmurraybenji: yes I'm using devel for both22:00
benjihrm, might be a bug22:03
sinzuibenji, ping22:06
benjisinzui: hi22:06
sinzuibenji, I want to subclass a Choice field to guard conflicting transitions between values. I am not sure if I should redefine _constraint() or _validate()22:07
sinzuibenji, The crux of the issue is that while the value is valid, it cannot be accepted because it violates another relationship. (something like a invariant, but between a hierarchy of objects)22:12
bdmurraysalgado-afk: I'm having some troubles using ubuntu.getSpecifications() that should work on devel right?22:14
benjisinzui: I suspect using constraint() (no leading underscore) will be slightly easier.22:15
sinzuibenji, yes, sorry for the underscores22:15
benjisinzui: note the interface difference between the two: constraint() should return a boolean, validate() should raise an exception (or not)22:16
sinzuiah22:17
james_wbdmurray, it should yes22:17
sinzuibenji, so I think I may want to define both for their respecting uses.22:18
benjimakes sense22:18
james_wbdmurray, do other specifications things work? natty.valid_specifications worked for me on qastaging last week22:18
sinzuivalidate() could call constraint() and convert False to TeamSubscriptionPolicyError22:18
bdmurrayjames_w: no valid_specifications doesn't show up either but I'm production which seems to have the right revision22:19
james_wbdmurray, you get "AttributeError"?22:20
benjisinzui: the default implmentation (from Field) does something similar, validate() is responsible for calling constraint() and raising a ConstraintNotSatisfied error if a false value is returned22:21
bdmurrayjames_w: yeah22:21
james_wbdmurray, are you using it anonymously?22:21
bdmurrayjames_w: no, I've seen that bug report too22:22
benjisinzui: (ConstraintNotSatisfied is a subclass of ValidationError)22:22
james_wbdmurray, it's working for me using "edge"22:22
sinzuibenji, thanks. I will follow that pattern. I was thinking or returning a very specific class of error with a meaningful reason.22:23
benjiyep; the default "Constraint not satisfied" isn't real helpful.22:23
james_wbdmurray, works for me against production too. My guess would be cached wadl or it not actually using devel for some reason.22:30
bdmurrayjames_w: okay, thanks I'll poke at it some more22:31
james_wnp22:31
=== matsubara-afk is now known as matsubara
=== matsubara is now known as matsubara-afk

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