/srv/irclogs.ubuntu.com/2010/03/26/#launchpad-dev.txt

mwhudsoni guess i should file a bug00:00
thumperplease00:00
wgrantThat test probably also deserves a bug.00:00
wgrantAlthough it will be less important with the new zope.testing, I guess.00:00
mwhudsonwgrant: yeah, i guess so00:01
mwhudsoni'm surprised and a bit scared if "browser.open('http://launchpad/dev')" commits to the db though00:01
thumpermwhudson: bonus points for making a glob function that provides a launchpadlib object00:02
thumpermwhudson: and if there is no user passed in, make one00:02
=== Ursinha-busy is now known as Ursinha
mwhudsonthumper: that sounds a little bit difficult because you have to create an oauth token00:03
thumpermwhudson: there is a function for that00:03
* thumper looks for it00:03
wgrantmwhudson: It will at least commit to update the session time.00:04
wgrantAlthough I guess that's on a different DB.00:04
wgrantAnd maybe it doesn't go through the real session machinery anyway.00:04
mwhudsonwgrant: if it's that sort of thing then i'm going to be even more angry i guess00:04
thumpermwhudson:  webservice_for_person has most of what you need00:06
* thumper remembers writing that00:07
mwhudsonah00:07
mwhudsona not-surprising coincidence00:07
wgrantmwhudson: What was the diff you used to get the pagetests to fail?00:07
mwhudsonwgrant: i think i pasted the diff didn't it?00:09
mwhudsoni'd have to read my logs to find it now...00:09
wgrantOh, just a browser.open?00:09
mwhudsonyep00:10
thumperoh FFS00:11
thumpermake fails00:11
thumperImportError: No module named collection00:11
thumperI have updated everything and did a make clean00:11
thumperany ideas?00:11
wgrantcollection isn't in 2.5!00:11
mwhudsonwgrant: yes it is?00:12
wgrantWho's trying to import it?00:12
thumper/lib/lp/bugs/configure.zcml", line 935.400:12
wgrantOh, right, collections.00:12
mwhudsonoh00:13
mwhudson"collection" sounds wrong00:13
wgrantmwhudson: So, yeah, that browser.open() commits a couple of times across each database.00:13
mwhudsonwgrant: AWESOME00:13
wgrantSo that is indeed the problem.00:13
wgrantIf that test commits at all, the second testTearDown attempts to destroy the non-existent DB.00:13
mwhudsonthumper:    <class class="lp.bugs.model.bugheat.CalculateBugHeatJob"> ?00:14
thumperi'm looking00:14
mwhudsonwgrant: do you want to follow up to my mail saying as much00:14
thumpercan't find the import yet00:14
wgrantmwhudson: Will do.00:15
thumperhahah00:15
thumperpebkac00:15
thumper'twas me00:18
thumperfrom collection import defaultdict00:18
mwhudsonah good00:18
wgrant(I think I was probably thinking of collections.defaultdict, which wasn't in *2.4*.)00:22
thumperwgrant: correct00:26
thumpermwhudson: want to review a branch that renames thumper -> dumper?00:45
thumpermwhudson: I'm sick of not having make-lp-user work for me00:46
mwhudsonthumper: :-)00:46
mwhudsonthumper: ok00:46
* thumper waits for the scanner00:48
=== matsubara is now known as matsubara-afk
* mwhudson lunches00:58
james_wok, there is now https://code.edge.launchpad.net/~james-w/launchpad/new-code-import-method-on-branchtarget/+merge/2219001:19
james_wand https://code.edge.launchpad.net/~james-w/launchpad/code-imports-for-source-packages/+merge/2219101:19
thumpermwhudson: can you go 'make run_codehosting' and push a branch to lp://dev/ using devel?02:14
thumpermwhudson: I can't02:14
thumperbzr: ERROR: Connection error: while sending POST /bazaar/: [Errno 111] Connection refused02:14
mwhudsonthumper: err, usually yes02:15
mwhudsoni usually use the key in the sample data, so i may not have done it in a while02:15
mwhudsonthumper: is the app server actually running?02:15
thumpermwhudson: as far as I can tell02:18
thumperah, I bet I need to make install and apache isn't working02:18
* thumper looks a bit02:18
thumperI've not tried it in lucid yet02:19
mwhudsonthat might do it, i guess02:20
wgrantHow's the EC2 run looking?02:20
thumperyep, sudo make install fixed it02:21
mwhudsonwgrant: lib/lp/registry/tests/../stories/product/xx-product-add.txt failed02:25
mwhudsonthat's it so far though02:25
wgrantOK.02:25
thumperah fuck02:31
thumperI thought I had broken something02:31
thumperbut it is just the make-dummy-branches02:32
thumperif you have pushed code, and restart codehosting, it blows away your pushed branches02:32
thumperbut of a fubar there02:32
wgrantthumper: Oh, I thought that was a feature.02:38
thumperwgrant: nope02:38
wgrantIt pisses me off immensely when testing recipe builds.02:38
spmargh. ok. who broke pygpgme. <== grumpy losa venting and hence ignorable02:38
wgrantspm: Lucid?02:39
spmlooks like a branch upgrade actually02:39
mwhudsonspm: or jelmer02:39
* spm hunts for the bug we raised on jelmer hisself ;-)02:39
thumpermwhudson: do you remember what to import in scripts to get around the circurlar import madness?02:42
mwhudsonthumper: uh, i think there's more than once source of the madness02:43
thumperit is mildly insane, but import canonical.launchpad.interfaces before anything else makes it run :(02:43
thumperis there a way I can just reapply database/schema/security.cfg without make schema?02:45
wgrantdatabase/schema/security.py02:46
wgrantWill apply to launchpad_dev by default.02:46
thumperta02:48
* mwhudson gives some consideration to warsaw's law02:52
spm:-)02:52
wgrantThe second law?02:54
mwhudsonthe one about fridays02:55
wgrantYeah, the second.02:55
mwhudsonyes, then02:56
* thumper is having a WTF moment02:58
* thumper is confused03:06
* thumper uses pdb03:06
thumperhuh?!?!?03:07
* thumper can only guess at stale pyc files03:07
thumperdoesn't make clean clear pyc files?03:07
thumperARGH!!!!03:09
thumperPEBKAC again!03:09
thumperit must be friday03:09
* sidnei hands some band-aid over for thumper's forehead03:09
thumpermust be time for a cocktail03:10
thumperwhy isn't the email being delivered I wonder...03:10
thumperah crap03:15
spmthumper: time for a cocktail? it's after 9am over there eh?03:15
thumpersomewhere there is a setting saying that scripts don't send email03:15
thumperspm: it has been one of those days (or weeks) where things take longer than expected, and you don't get as much done as you expect03:15
spmthumper: ahhh! so you've become a losa eh? sweet!03:16
wgrantthumper: Zopeless emails do not go anywhere in devmode. config.zopeless.send_email03:17
thumperwgrant: so how am I supposed to test this damn script eh?03:17
thumperarse03:17
thumperalso, why don't they go anywhere?03:17
wgrantthumper: Because there's no mail utility, so it uses raw SMTP.03:18
thumperthey should go the same place that the app server emails go03:18
wgrantWhich is very dangerous, since it can send email to ANYWHERE IN THE WORLD.03:18
thumperwgrant: there is a mail utility in the scripts03:18
thumperhas been for ages03:18
wgrantAlthough it could just override the destination address to root@localhost anyway, i guess.03:18
wgrantNot the full Zope queued delivery mail utility.03:18
thumperwgrant: yes, the same as the app server03:18
thumperwell, that is a problem for another day03:19
* thumper tries something03:22
thumperwgrant: http://pastebin.ubuntu.com/401551/ works03:27
thumperwgrant: sends email to root@localhost03:27
thumperwgrant: please excuse the commenting out :)03:27
thumperwgrant: actually this is easier to read http://pastebin.ubuntu.com/401552/03:28
wgrantthumper: So raw_sendmail obeys the destination override?03:29
thumperyes03:30
* thumper commits that into his branch03:30
wgrantConvenient.03:30
thumperbzr commit -m "Zopeless is no longer really zopeless, and to test the local email sending, we want this.  Scripts now send email in the dev environment to root@localhost just like the app server" lib/lp/services/mail/sendmail.py03:30
thumperthat's what it says03:30
mwhudsonwgrant: yay that was the only failure03:46
wgrantmwhudson: Excellent!03:47
thumpermwhudson, wgrant: how long does canonical.testing.layers.ZopelessAppServerLayer take to start up for you?03:49
thumperit seems to be taking ages for me03:49
thumperperhaps blocking completely03:49
thumperbin/test.py -vvt TestCodeHandler03:49
wgrantTook 12 seconds here.03:50
thumperhmm. not starting here03:51
mwhudson~same here03:51
thumperI noticed that my make run didn't kie03:51
thumperdie03:51
thumperkilled it03:51
thumpertrying again03:51
thumperha ha 11 seconds03:52
thumpergoing now03:52
thumperthanks anyway03:52
mwhudsonthumper: still here?04:06
thumpermwhudson: just04:06
thumperwhazzup?04:07
mwhudsonthumper: https://code.edge.launchpad.net/~mwhudson/launchpad/aiee-everything-is-broken/+merge/22185 will update in a couple of ticks, can you take a look?04:07
thumperyep04:07
* thumper waits for the diff04:10
mwhudsongrr still not updated04:10
lifelessperhaps its broken04:10
lifeless:P04:10
mwhudsonthumper: http://pastebin.ubuntu.com/401568/04:10
mwhudsonor someone's prosed merge mysql 5 into mysql 6 or something04:11
thumpermwhudson: done04:13
thumpermwhudson: I'm heading out now04:13
* thumper EODs04:13
mwhudsonthumper: thanks04:13
* mwhudson shoves the branch in the direction of ec204:16
NCommanderWHat's the correct way to get the db username and password when working with Storm to access LP's database?04:53
* NCommander wants to start work on the converter04:53
wgrantNCommander: You don't do that manually. You should probably use the normal script infrastructure which sets Zope and Storm up for you.04:56
NCommanderwgrant: oh, which script is good for an example?04:56
wgrantNCommander: utilities/soyuz-sampledata-setup.py is one I know well.04:57
wgrant    execute_zcml_for_scripts()04:57
wgrant    txn = initZopeless(dbuser='launchpad')04:57
wgrantThose are the critical lines.04:57
wgrantYou can then use the IStoreSelector utility to get your store.04:58
NCommanderwgrant: cool, thanks. I'm probably going to have a ton more questions in the future04:58
wgrants/questions/sleep/04:58
maxbeww. A javascript alert box on ajax-changing ubuntu bug status?!07:29
wgrantYes :(07:29
wgrantFor anybody who is not a bug supervisor or owner.07:29
wgrantIt is crack.07:29
wgrantBoth because of the rules and because it's AN ALERT()!07:29
maxbeww07:30
maxbThat needs an opt-out07:30
maxbOr I shall have to learn greasemonkey07:31
wgrantIt does.07:31
* maxb wonders who signed off a UI review on an alert() :-)07:31
wgrantThe excuse was that there wasn't time.07:32
wgrantThe excuse for that was also that there wasn't enough time.07:32
wgrantnoodles775: Is there any timeline for the work to extract application information from PPA builds?08:48
noodles775wgrant: I'm not sure what you mean by "extract application information"?08:50
wgrantnoodles775: soyuz is meant to eventually extract .desktop files and icons, and publish them for Software Centre to use.08:51
wgrantIt seems like it would make the PPA binary listing a lot less problematic.08:51
noodles775wgrant: yeah, totally (long-term goal). No, I'm not certain what the timeline is for doing that, but I expect we'll find out at UDS.08:52
BjornTgmb, allenap: if you have some time, i think it would be a good exercise rewriting TestBugWatchScheduler not do do any commits. also, why is LaunchpadFunctionalLayer used?09:04
stubwgrant, NCommander: IStore(Account), IMasterStore(Account) or ISlaveStore(Account) is the preferred spelling now over using IStoreSelector directly. This will give you the store where the Account objects are stored, and will keep working if things get moved around (probably YAGNI, but the spelling is nicer anyway).09:08
wgrantstub: I keep forgetting about that, since it's used in so few places.09:09
wgrantBut it is much nicer.09:09
gmbBjornT: Sure, we'll do that if we get time; LPFL is a copy-paste error, so we'll fix that too.09:10
stubSo launchpad-dependencies no longer installs for me. It seems to want python2.5-apt and I can't find that. Any clues?09:11
BjornTgmb: cool. another question. in what way does this fit into the "Database garbage collector"? it doesn't seem to collect any garbage?09:11
wgrantstub: the PPA needs updating.09:11
wgrantstub: Force the installation of python-apt IFORGETTHISBITubuntu2launchpad109:12
gmbBjornT: It doesn't. However, basic advice in the past has been to include things like this (and BugHeatUpdater, which doesn't garbage collect either) as part of garbo because we get the benefits of some built in testing (with test_garbo.py). Also, managing DB permissions is slightly less troublesome.09:12
BjornTgmb: it sounds a bit dangerous, unless we redefine what garbo is supposed to do. in the past garbo has been broken, and not been running for a while. this is acceptable for garbage collection, but is it acceptable for bug watch updating?09:14
gmbBjornT: Hmm. Good point. No, it isn't; if it breaks then bug watches stop getting updated.09:14
gmbBjornT: I'll prepare a branch to put the scheduler in a separate cronscript.09:14
stubI thought I fixed garbo so if one task fails it keeps going?09:14
gmbOh.09:15
stubEven has timeouts so if one task takes too long it is aborted and the others allowed to continue.09:15
mrevellMorning09:16
gmbstub, BjornT: Ah. So in that case I'd say it *is* an acceptible place to put it, though it doesn't fit under the garbage-collecting umbrella.09:16
BjornTstub: could be, i don't know. it still seems a bit dangerous to do a bunch of important things in one script. especially from a scalability point of view.09:16
stubIts more than garbage.09:17
stubThe goal with garbo was to stop the proliferation of all those little cronscripts.09:17
stubI personally would rather see scalability type fixes made if/when they become a problem than worry about the deployment issues09:20
BjornTstub: i wonder, could this somehow be combined with the job system? they seem quite similar.09:20
stub(more cron emails to monitor, more crontab entries, more script monitoring, more database users + permissions)09:21
stubBjornT: You could replace garbo-daily.py and garbo-hourly.py with garbo.py which runs regularly, pulling scheduled jobs.09:21
allenapstub, BjornT: But then we'd need a garbo job to put jobs into the job system to be run.09:22
stubAt the moment, that is probably overkill. We also don't have to deal with long running nightly jobs blocking hourly jobs.09:22
stuballenap: And some turtles for it to stand on09:23
allenap:)09:23
BjornTstub: ok. we'll see what we'll do. you've just volunteered to document what garbo does and is supposed to be used for, since you might be the only one that knows enough about it :) (more on that later)09:26
stubThe other gain we get with garbo is jobs are serialized. We end up with unnecessary load spikes whenever hourly or nightly jobs fire off at the same time - with -hourly and -daily we get a very primative scheduler, which so far has been 'good enough'09:26
stubBjornT: Stick it on my kanban board if you want :)09:26
wgrantbigjools: Did that firewall fix end up happening?09:51
bigjoolswgrant: yes, gonna test it RSN09:57
wgrantbigjools: Excellent.09:57
wgrantWe might finally get it done... 2 months after the plan.09:57
bigjoolswell the UI work is still in progress09:58
bigjoolsthat's the last piece of the puzzle09:58
gmbDoes anyone know where mwh got to with his branch to combat the test-suite horrorshow?09:58
wgrantgmb: The one where 7000 tests dropped off the face of the earth?09:58
wgrantIt was shoved into EC2 around 5 hours ago.09:59
wgrantWith the known failures fixed.09:59
wgrantEr, nearly 6 hours ago, now.09:59
gmbwgrant: Ah. Just long enough for me to start to worry that it's failed...09:59
wgrantYes...09:59
wgrantAlthough it had just one failure when it was run a couple of hours earlier, and that failure is fixed.10:00
gmbHrm.10:00
maxb<stub> So launchpad-dependencies no longer installs for me. It seems to want python2.5-apt and I can't find that. Any clues?10:00
maxbI uploaded the new source 10 hours ago, the amd64 build is still pending, "Start in 8 hours"10:01
maxbA buildd admin could make it jump the queue O:-)10:01
wgrantmaxb: Better than the 30 hour queue yesterday..10:01
maxbI wonder if it's worth someone liasing with the owners of the hugest daily build PPAs to get them to skip a few days when the buildfarm is borrowed10:03
wgrantThe problem should go away once builder pools appear.10:04
wgrantWhich is probably RSN.10:04
maxbhow is that going to help the current problem, which is just a shortage of builders across all architectures?10:10
wgrantmaxb: Not architecture pooling Daily builds will be restricted to a set of dedicated builders.10:10
maxbah10:11
bigjoolsI'm working on designing builder pools right now :)10:18
bigjoolswill put it out for comment in due course10:18
bigjoolswgrant: 2010-03-26 10:34:38 DEBUG   hello: (source) NEW10:35
bigjools\o/10:35
wgrantbigjools: Nice!10:36
bigjoolswgrant: one bug is that the builds were created with a score of 010:36
wgrantbigjools: 'Builds' being the SPRBs?10:36
bigjoolsbuildqueue to be more specific10:37
bigjoolsbut yes10:37
wgrantRight, scoring is not yet implemented for SPRBs10:37
bigjoolshttps://dogfood.launchpad.net/builders/ferraz10:37
wgrantAlso, the version on that recipe is screwed. I should really fix that.10:37
bigjoolsit's even building the source now10:37
wgrantExcellent.10:37
wgrantSo it does actually work.10:38
* bigjools does a little dance10:38
wgrantIf you fix the recipe, the binary builds should work, too.10:39
wgrant(I threw a $ in front of the variable in the version, where it didn't want one)10:40
wgrantbigjools: Wouldn't it be nice if we had complete integration tests for all build types?10:41
bigjoolswgrant: there's a shedload of nice things that could be done :/10:43
wgrantIndeed, indeed.10:43
gmbHow would I go about switching DB user when I'm in the DatabaseFunctionalLayer? switchDbUser is on LaunchpadZopelessLayer and refers speficially to Zopeless stuff.11:55
=== matsubara-afk is now known as matsubara
gmbIgnore previous question. I have since hit myself with the clue-bat.12:11
Ursinhabigjools: hey, are you still getting emails?12:26
bigjoolsUrsinha: no12:27
bigjoolsdoes that make it your fault? :)12:27
Ursinhaoh ffs12:31
Ursinhabigjools: yeah, it seems :/ weird thing is that the script seems to be doing what it should, I'll have to dig deeper12:32
bigjoolsUrsinha: also, how can we make that script not do anything to the bug if I so desire?12:35
bigjools(as per my email to you earlier)12:35
Ursinhabigjools: I haven't seen it yet12:35
Ursinhaa moment12:35
Ursinhabigjools: did you send it directly to me or through some list?12:37
bigjoolsto you12:37
bigjoolsUrsinha: subject "Fwd: [Bug 392887] Re: Cannot delete a PPA"12:37
mupBug #392887: Cannot delete a PPA <feature> <oem-services> <ppa> <Soyuz:In Progress by cody-somerville> <https://launchpad.net/bugs/392887>12:37
bigjoolssod off mup12:37
Ursinhahm12:37
Ursinhalol12:37
Ursinhabigjools: checking12:38
Ursinhaslow... internet......zzzzzzzz......12:39
Ursinhabigjools: what do you mean? what exactly you don't want to happen with the bug? to be targetted? assigned? marked fix commit?12:42
bigjoolsUrsinha: no action at all12:43
bigjoolsin this case it marked it fixed, but there's still loads of outstanding branches12:43
Ursinhabigjools: so the problem would be the mark as fix committed/tagging12:43
Ursinha?12:43
bigjoolsUrsinha: yes, but preferably I want it to do nothing at all12:44
Ursinhabigjools: we need to keep track of branches being landed to fix that12:44
bigjoolstargeting and assigning are potentially wrong as well12:44
Ursinhaso at least a comment pointing that would be nice to have12:44
bigjoolsyeah you could do that12:45
Ursinhabigjools: problem is that fits most use cases12:45
bigjoolsbut the branch linked on the page shows that too, LP could do that itself12:45
Ursinhapeople forget do assign/target their bugs12:45
Ursinhaand that ruins how we use the tagging schema12:45
Ursinha*forget to12:45
bigjoolsthose people should be slapped :)12:46
Ursinhabigjools: how hard is to you to unmark it as fix committed? :)12:49
bigjoolsUrsinha: that's not the point - on a popular bug it generates a lot of email spam12:49
Ursinhabigjools: what do you suggest?12:50
bigjoolsUrsinha: first thing I guess is to not do anything to the bug if it has multiple branches listed12:51
Ursinhaanything I don't agree :)12:51
Ursinhaat least a bug comment12:51
bigjoolsUrsinha: that should not be done by your bot12:51
bigjoolsit should be done by LP12:52
Ursinhabigjools: is there a bug for that?12:52
bigjoolsUrsinha: since we're only just talking about it, I guess not :)12:52
Ursinhabigjools: I don't know if all projects would like to have comments added to their bugs, but that's not up to me to decide :)12:53
Ursinhabigjools: could you open a bug for that, please?12:53
Ursinhabigjools: script works now basically with how lp works today, if lp adds new features maybe we could add changes to the current qa tagging process12:54
bigjoolsUrsinha: what triggers the script?12:56
Ursinhabigjools: cron12:57
Ursinha:P12:57
Ursinhabigjools: it checks all the new commits since last run, and if they're on edge or staging12:57
bigjoolsUrsinha: what triggers the changes to bugs I mean12:57
jpdshttp://pastebin.ubuntu.com/401769/ - anyone know why that's happening?12:57
bigjoolsUrsinha: brb12:57
Ursinhabigjools: if the commit is already on edge or staging, then the script does his dance with the bug13:00
Ursinha*its13:00
bigjoolsUrsinha: how does it know which bug?  does it use the bug= in the commit msg?13:04
bigjoolsor does it inspect the --fixes bzr stuff?13:04
Ursinhabigjools: not just that, if the bug# is in the commit message13:07
Ursinhabigjools: again, not all people use to remember adding the bug= tag :)13:07
bigjoolsUrsinha: ok13:08
Ursinhawith ec2 that changed because ec2test/1213:08
Ursinhaargh13:08
bigjoolsUrsinha: so I can avoid it by not mentioning the bug number13:08
Ursinhawait13:08
bigjoolsUrsinha: however, the codehosting code can do something like I suggested earlier and add a comment to the bug if it sees a linked branch merged13:09
Ursinhaargh13:13
=== danilo_ is now known as danilos
=== mrevell is now known as mrevell-lunch
sinzuiEdwinGrubbs: bac: stand up in two minutes13:39
deryckadeuring, if you have time, could you look at the OOPS for Bug #548575?  more ShortListTooBigErrors.13:39
adeuringderyck: sure13:39
deryckadeuring, thanks!13:39
mupBug #548575: Not able to unsubscribe from a bug <Launchpad Bugs:New> <https://launchpad.net/bugs/548575>13:40
adeuringderyck: did we really CP the fix?13:43
EdwinGrubbssinzui: standup?13:44
deryckadeuring, I thought we did.  Maybe we didn't.  Did you submit it to production-devel?13:44
adeuringderyck: can't remember...13:44
adeuringlet me check...13:44
sinzuiEdwinGrubbs: https://code.launchpad.net/~bac/launchpad/bug-524302/+merge/2218013:51
deryckadeuring, I assume we didn't CP that fix then?14:15
adeuringderyck: no, we didn't cherrypick that branch. Sorry, needed some time to figure out which branch fixed the bug...14:16
deryckadeuring, no worries.  Can you mark the bug a dupe of the bug that does fix this, please?14:18
adeuringsure14:18
=== mrevell-lunch is now known as mrevell
james_wgary_poster: here's what I was talking about yesterday: https://code.edge.launchpad.net/~james-w/lazr.restful/object-unmarshal/+merge/2218215:27
* gary_poster looks15:28
gary_posterjames_w: do you want a review?15:29
gary_posterrephrase:15:29
gary_posterdo you want me to review15:29
james_wyes please15:29
gary_posterok15:30
james_wI'd like leonard to look as well15:30
james_wI'm not entirely convinced by the approach as it isn't a great example of elegance, and prevents you doing some odd but legal things.15:30
james_wbut I can't find a better way15:30
gary_posterjames_w: leonard will not be able to before this release (not around today).  I agree that he should review.  Because he is not around today, this won't make it into the cycle unless we push it as release-critical.  My gut feeling so far is that this is more important for developing (that is, future work) that for production (that is, this release).  Do you agree?15:32
gary_poster(IOW, the fact that this will not make the release does not seem like a release-critical problem; but we should get it into the devel branch asap)15:33
james_wgary_poster: yes, sinzui landed the branch that fixes the problems yesterday, this is to stop any more from creeping in.15:33
gary_posterjames_w: cool.  I'll look now to see if I have anything to add, and make sure that reviewing this branch is in leonardr's to-do list.15:34
james_wthanks15:34
james_wthere's a long line in the doctest that I don't know how to wrap15:35
gary_posterjames_w: you can use #doctest: +ELLIPSIS and elide the text with an ellipsis. #doctest: +NORMALIZE_WHITESPACE might let you wrap the line, but IME sometimes tracebacks are "exceptions" to the rule.  A-ha-ha.  But you could try that first.15:37
gary_posterjames_w: >>> reference_marshaller.unmarshall(None, cookbook) # doctest: +NORMALIZE_WHITESPACE15:37
james_wthat goes on the test line, or on the response line?15:37
james_wah, thanks15:38
gary_posteror15:38
gary_poster>>> reference_marshaller.unmarshall(None, cookbook)15:38
gary_poster... # doctest: +NORMALIZE_WHITESPACE15:38
james_wfixed, thanks15:40
gary_postercool, np15:40
=== matsubara is now known as matsubara-lunch
=== salgado is now known as salgado-lunch
gary_posterjames_w: yeah, that15:57
gary_poster's not fun.  Can you tell me where the adapter is that you mention in the cover notes?15:57
gary_posterThat uses an Object marshaller for a Choice?15:58
gary_poster(with the certain kind of vocab)15:58
james_wsome webservice zcml15:58
james_wlib/canonical/launchpad/zcml/webservice.zcml15:58
gary_posterack thanks15:58
james_wI thought the most elegant way to solve it would be for tales.py to just add _link if it would just an ObjectMarshaller for that field, but there's already a comment there saying it can't do that15:59
gary_posterjames_w: My thought would have been that using an ObjectMarshaller is an abuse.  We should write our own marshaller for this case that does the right thing.16:00
gary_posterDoes the tales comment (which I have not yet looked up) contradict that?  Going to hunt down tales comment...16:01
james_wsearch for Marshaller in src/lazr/restful/tales.py16:01
james_wI'm not sure what "the right thing" for the new marshaller to do would be16:02
james_wso, the root cause is that there are two different things, using two different criteria, deciding what the field name should be in the API. When they disagree you get problems.16:04
gary_posterjames_w: a minimal "right thing" would be to puke, as you are doing here.  Puking where you have it now (in lazr.restful) doesn't make sense because, looking at the code, why would an ObjectMarshaller ever be called with anything other than an IObject?  It shouldn't.16:05
james_wA secondary concern is that we want exported objects to be serialised to links, and when that is done for the field name to have _link appended.16:05
gary_posterroot cause: that sounds valid, but it's been too long since I looked at the code for me to have an informed opinion without staring for awhile more.16:05
james_wgary_poster: right, it never is. The issue is when that Marshaller isn't bound to an "object" field type, the name is already wrong in the wadl.16:06
james_wso I'm fixing the wrong end in effect, as the problem is already past, but this barfs at you and tells you something is wrong at least, rather than silently doing the wrong thing.16:06
james_wI couldn't see how to fix it at the "other end", which would be the field declaration and tales.py, as we need the developer to indicate whether it is a field that references another exported object or not.16:07
james_wwhich they do by using ReferenceChoice instead of Choice16:07
james_wperhaps the right thing to do is change the adapter declaration so that it only affects IReferenceChoices?16:09
gary_posterjames_w: right, which is why I called it an abuse.  We can't protect ourselves from all abuses in lazr.restful.  Here's my proposal for your current motivations.  Since I have this alternative, I would not approve your approach.  Leonard may have an even better answer.16:09
gary_poster- we make our own adapter for16:10
gary_poster       for="zope.schema.interfaces.IChoice16:10
gary_poster            zope.publisher.interfaces.http.IHTTPRequest16:10
gary_poster            canonical.launchpad.webapp.vocabulary.SQLObjectVocabularyBase"16:10
gary_posterthat says "this is broken!" or some other pukage16:11
gary_poster- we change the current registration to16:12
gary_poster       for="lazr.restful.interfaces.IReferenceChoice16:12
gary_poster            zope.publisher.interfaces.http.IHTTPRequest16:12
gary_poster            canonical.launchpad.webapp.vocabulary.SQLObjectVocabularyBase"16:12
gary_posterDone.16:12
gary_posterActually, the first step could be to return None16:12
james_wand zope knows to pick the more specific adapter?16:12
=== deryck is now known as deryck[lunch]
gary_posterbut then we could provide a helpful error ("Use IReferenceChoice, silly person!")16:13
gary_posterI mean, couldn't16:13
gary_posteryes16:13
james_wright, that makes sense16:13
gary_posterjames_w: I'll copy some edited version of this over to the MP for leonardr, and move on.  s'ok?16:14
james_wyep16:14
gary_postercool.  thank you for doing this.16:14
james_wI'll work on that after lunch16:14
gary_postergreat16:14
james_wI think that Leonard may still want to consider a change to lazr.restful, as the discrepancy could still bite people using it.16:15
james_wbut this is the right fix for LP as the bad registration is what is causing the problem.16:15
gary_posterlazr.restful change: OK.  I argue against it because of the "can't stop every abuse" argument, but if you convince me I'll go placidly along. :-)16:16
gary_posterI mean, convince him16:16
james_wsure, it's not so much about abuse. I wasn't the one that put the comment identifying the issue in tales.py after all :-)16:17
gary_poster:-)16:21
=== matsubara-lunch is now known as matsubara
=== gary_poster is now known as gary-lunch
=== Ursinha is now known as Ursinha-nom
=== salgado-lunch is now known as salgado
=== gary-lunch is now known as gary_poster
mrevellNight all18:01
elmowgrant: around?18:33
gary_posterjames_w: fwiw, I echo Leonard's question to you in https://bugs.edge.launchpad.net/launchpad-foundations/+bug/54721618:42
mupBug #547216: WADL file doesn't work in NetBeans <Launchpad Foundations:Triaged> <https://launchpad.net/bugs/547216>18:42
james_wgary_poster: replied18:44
gary_posterthanks james_w18:44
james_wgary_poster: and https://code.edge.launchpad.net/~james-w/launchpad/export-code-import/+merge/22251 is done18:46
james_wjust generating the diff18:46
gary_posterjames_w: ack, claimed the review.18:47
james_wthanks18:47
james_wit's there now18:47
gary_posteryup, got it18:47
james_wthe main concern was what to call the class and what file to put it in18:47
gary_posterlol, ack18:47
=== Ursinha-nom is now known as Ursinha
=== EdwinGrubbs is now known as Edwin-lunch
=== gary_poster is now known as gary-afk
=== gary-afk is now known as gary_poster
=== gary_poster is now known as gary-afk
=== gary-afk is now known as gary_poster
=== matsubara is now known as matsubara-afk
=== Edwin-lunch is now known as EdwinGrubbs
wgrantelmo: Hi.22:09
elmo18:39 < elmo> so https://bugs.launchpad.net/soyuz/+bug/549041 appears to be either massive lulzwtfomghfs or hilarious PEBKAC22:10
mupBug #549041: source <-> binary reference counting appears to be broken <Soyuz:New> <https://launchpad.net/bugs/549041>22:10
elmowgrant: ^-- was looking for a sanity check on that bug22:10
wgrantLet's see.22:11
wgrantEeeeep.22:12
elmoquite22:12
wgrantGrngh.22:13
wgrantStupid timeouts.22:13
wgrantelmo: So, LP says it is still there.22:14
wgrant(no "Removal requested" or "Removed from disk" on https://edge.launchpad.net/ubuntu/hardy/+source/linux/2.6.24-26.64)22:15
wgrantAre they not in the pre-split cocoplum archive?22:15
elmoaha22:16
elmogod damn it22:16
elmothis is going to be my fault22:16
wgrantYour script is dodgy?22:16
wgrantYeah.22:16
elmogack22:17
elmothey are indeed on cocoplum22:17
elmodamn it all22:17
elmowell, yay, I guess that makes it hilarious PEBKAC22:17
wgrantI've often wondered how you make the split cope with this.22:18
wgrantI guess you don't?22:18
elmoapparently not22:18
elmowe'll have to change the source syncing to just be unconditional and not based on indices22:18
wgrantYes...22:18
wgrantAlthough is there a good reason that we can't keep the old sources in the indices? dak does that a bit now, and most tools have been taught to deal with it.22:19
wgrantBut yes, syncing everything is a good quick (but large) fix.22:20
elmoI'm fine with keeping sources in indices, but the more I can lobotomize the magic mirror script the better22:20
wgrantI guess ports just does dumb matching of arch tags, so it isn't affected?22:23
elmothe magic mirror script runs on all 3 (archive, ports and old-releases), it can't do simple arch tag matching because we had different arches supported in different releases22:24
elmoso it has to do arch taggging based on Packages files22:25
wgrantOh, crap, yes.22:25
elmobut that's fine, I don't mind losing unreferenced binary files so much and we implement a local S-O-E22:25
elmoto minimize the pain22:25
elmoI just can't believe it took us (or anyone else) this long to notice22:25
wgrantIt's presumably been around... forever?22:25
elmo(it was, unsurprisingly, the gnewsense guys)22:25
wgrantHah.22:26
elmowgrant: not forever, basically since we first had an arch migrate off archive, I think22:26
elmountil then, it was just dumb rsync rules22:26
wgrantAh.22:28
elmohmm22:48
elmothis does make old-releases near impossible to get right in a non-GPL violating way22:48
elmomaybe I should re-open that bug as "please don't de-indices Source till it's got no binaries left"22:48
wgrantThat's easy to do.22:49
wgrantIt might just break older tools.22:49
elmoah, that's a bit sucky22:49
wgrantLike, say, gina.22:49
elmohaha22:49
elmofeature22:49
elmowhich would affect, e.g. dapper-updates22:50
elmoho hum22:50
wgrantYes.22:50
wgrantThat is my concern.22:50
elmodo you know how long Debian's been doing this?22:51
wgrantOnly a few months.22:51
elmoah, bother22:51
wgrantYes.22:51
elmoso this becomes less easy since I really want it to be "please don't de-indices source packages - in DS >> lucid - till it's got no published binaries left"22:52
elmooh well; GPL compliance, much like the tank in halo, beats everything.  I'll reopen the bug and leave it for someone else to figure out how/when/if to do it22:53
wgrantHeh.22:56
wgrantIf only we could sanely do the split in Soyuz.22:56
wgrantIt has all the knowledge.22:56
wgrantIt's just... hard.22:56
elmowhy?22:59
wgrantWell, we'd either have to maintain four separate archives and move publications between them, or give the publisher enough intelligence to work over multiple on-disk archives and filter its activities.23:02
elmoyeah, more the latter23:03
elmoI guess that is hard.  I was going more for messy and involved23:03
elmobut I'm probably a little too removed to accurately estimate23:03
wgrantThe latter is probably hard mostly because of the "when is this source unused in this filter set?" policy.23:04
elmoI wouldn't even bother trying23:04
elmofor source specifically23:04
wgrantHm.23:05
elmojust source reference count as before and de-index + de-publish when your last child binary is removed; across any filter set23:07
elmohmm23:07
wgrantelmo: That fails utterly for old-releases.23:07
elmoyes, I just realised23:08
elmoand so does what I said in the bug23:08
wgrantIt's actually not that hard, though.23:08
elmomock conkeys23:08
wgrantWe just need to filter the publications using the same queries we started with.23:08
wgrantSo it's doable.23:08
elmohmm?23:08
elmohow do you mean same queries23:08
wgrantWell, the unused source check performs a query to find any binaries for that source in the same archive.23:10
wgrantIt would just have to also have the same restriction applied that we used to find the source in the first place. So it's not as hard as I first thought.23:10
elmooh, right, binaries aren't floating23:10
elmowow23:10
wgrantHm?23:10
elmoI am *so* rusty at this stuff23:10
wgrant"floating"?23:11
elmoI had it in my head that we might have binaries not attached to DSes23:11
wgrantAh.23:11
wgrantNo, we're not dak.23:11
elmohaha23:11
elmo:-P23:11

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