/srv/irclogs.ubuntu.com/2010/09/28/#launchpad-reviews.txt

wallyworldhttps://code.edge.launchpad.net/~wallyworld/launchpad/reassign-reviewer-cancel-option/+merge/3667100:26
wallyworldStevenK: ^^^^^^^^^^^^00:26
wallyworldthanks ;-)00:26
=== Ursinha-afk is now known as Ursinha
=== matsubara is now known as matsubara-afk
pooliecan someone review https://code.edge.launchpad.net/~jameinel/launchpad/lp-service/+merge/3587702:46
poolieit's a big performance improvement02:46
wallyworldStevenK: ping?03:28
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== jtv changed the topic of #launchpad-reviews to: On call: - || Reviewing: - || queue: [jtv] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
henningenoodles775: just one little thing: I don't think putting an all-caps CURRENT and ALWAYS in test names names is the right thing to do. I'd just keep the names low key ... ;)08:13
henninges/names names/method names/08:14
noodles775henninge: as in test_blacklist_options_initial_values_CURRENT ? Right - I initiall was reflecting the enum. I've sent that branch to land, but will updated it in the next.08:16
noodles775s/initiall/initially08:16
henningenoodles775: that's fine, it's not a big deal.08:16
=== StevenK changed the topic of #launchpad-reviews to: On call: - || Reviewing: - || queue: [jtv,StevenK] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== StevenK changed the topic of #launchpad-reviews to: On call: - || Reviewing: - || queue: [jtv] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: - || queue: [jtv] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: jtv || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: poolie || queue: [jtv] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
allenapgmb: Can I foist a trivial review onto you?11:09
bigjoolsand me please! *211:11
gmballenap, bigjools: Queue 'em up.11:11
=== allenap changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: poolie || queue: [jtv, allenap] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
allenapgmb: Danke.11:11
=== bigjools changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: poolie || queue: [jtv, allenap, bigjools*2] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
bigjoolsbuckets11:11
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: jtv || queue: [allenap, bigjools^2] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
jtvgmb: did you change your mind about my branch?11:26
gmbjtv: No, but I've had poolie's branch in my queue since Friday11:26
gmbSeemed a good idea to get it out of the way first.11:26
jtvgmb: ironically, he owes me one.11:26
jtvI traded reviews with him, but never got mine.11:26
gmbShocking behaviour.11:27
jtv(And at that time he couldn't have known how rough I'd be on his, heh heh)11:27
gmb:)11:27
gmbjtv: r=me11:32
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: allenap || queue: [bigjools^2] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
jtvgmb: thanks11:35
gmballenap: r=me11:38
allenapgmb: Cheers :)11:38
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: bigjools || queue: [bigjools] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
gmbbigjools: r=me * 111:52
bigjoolsgmb: thanks - the other one errored on the email MP proposal, I just did another by hand11:52
gmbbigjools: Yep, looking now. So is this one a correction of the stuff that we rammed in on rollout day?11:53
gmbOr am I confusing different 'enabled' fields11:53
bigjoolsgmb: not exactly but nearly - the rollout day change was just the db change11:53
gmbAh, yes. Of course.11:53
bigjoolsI need to tweak the code now11:53
gmbCool11:53
bigjoolsif you need help understanding the test let me know11:53
gmbk11:54
bigjoolsyou need to know how arch-all publishing works to appreciate it :)11:54
gmbbigjools: The test makes sense to an extent but for the sake of completeness... how does arch-all publishing work ? :)11:55
bigjoolsgmb: although the binary is only built in one architecture, it has to be published everywhere11:56
bigjoolsthe code I tweaked calculates the other archtectures for publishing11:57
gmbRight.11:58
gmbbigjools: Pretty much as I thought, then.11:58
bigjoolsok cool11:58
gmbbigjools: r=me; looks good11:58
bigjoolsthanks gmb11:58
gmbnp11:58
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: - || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
bigjoolsah wgrant is stalking me again12:00
wgrantbigjools: Yeah, sorry.12:00
wgrantI didn't see it was being discussed in here.12:01
bigjoolswgrant: I'll fix copying separately12:01
wgrantHmmm.12:01
wgrantI suppose.12:01
bigjoolsit could do with refactoring12:02
wgrantI'm also slightly worried about letting new binaries through the publisher unchecked. But I guess that's not a huge problem.12:02
bigjoolsanyway the urgent case is the upload one12:02
bigjoolsunchecked?12:02
wgrantI think I'd prefer it if the publisher whinged if it tried to publish binaries in a disabled arch.12:03
wgrantThis is messy :(12:03
bigjoolswhat about the case where you want to delete?12:04
wgrantHm?12:04
bigjoolsactually, hmmm, getPendingPublications doesn't look for that12:05
bigjoolsit could whinge but it's not necessary - preventing creating publications is the important bit12:05
wgrantI guess we can fix any screwup there later.12:06
wgrantIt's the indices that are the important bit.12:06
wgrantSince they can never change after release.12:06
bigjoolsyes12:06
wgrantBut copies need to be fixed soon, since there'll be SRUs possibly even before release.12:07
wgrantHrrrrrm.12:11
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: vittles || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== mrevell is now known as mrevell-lunch
=== matsubara-afk is now known as matsubara
=== mrevell-lunch is now known as mrevell
=== gmb changed the topic of #launchpad-reviews to: On call: gmb || Reviewing: - || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== vednis is now known as mars
=== leonardr changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: - || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
bigjoolsgmb: can you please review the extra revision I added to the second branch you did for me earlier?15:30
bigjoolsit adds another check - yay for duplicated code logic. (bug filed BTW)15:31
gmbbigjools: Sure.15:31
gmbbigjools: What's the MP URL again?15:31
bigjoolsgmb: https://code.edge.launchpad.net/~julian-edwards/launchpad/no-disabled-arch-publications-bug-648715/+merge/3683815:32
bigjoolscheers15:32
bigjoolswhoever in the Code team added the partial diff attachment processing, you're totally awesome15:33
gmb+1. That's the first time I've seen that.15:34
bigjoolsit's been there for a while15:34
gmbbigjools: Yeah, but no-one ever does any work round here.15:34
bigjoolsLancaster?15:34
bigjools:)15:34
gmbTouche.15:35
gmbbigjools: r=me on the changes.15:35
bigjoolsgmb: thanks muchly15:36
gmbnp15:36
abentleygmb, leonardr: Could you please review https://code.edge.launchpad.net/~abentley/launchpad/incremental-diffs/+merge/36875 ?15:52
=== abentley changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: - || queue: [abentley] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
leonardrabentley, sure15:55
abentleyleonardr: thanks.15:55
=== leonardr changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: abentley || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== matsubara is now known as matsubara-lunch
jcsackettgmb or leonardr: time for a review?16:22
leonardrjcsackett, put it in the queue16:22
=== jcsackett changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: abentley || queue: [jcsackett] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
jcsackettleonardr: you got it. MP is https://code.edge.launchpad.net/~jcsackett/launchpad/bad-state-transition-641266/+merge/3672616:23
leonardrjcsackett: and give me the mp url16:23
jcsackettone step ahead of you. :-P16:24
leonardrabentley, all the fields in IIncrementalDiff are exported, but you don't call export_as_webservice_entry(). do you want these objects to be published through the web service?16:36
abentleyleonardr: I guess so.16:37
abentleygmb, leonardr: Could you please review https://code.edge.launchpad.net/~abentley/launchpad/incremental-diff-job/+merge/36881 ?16:38
leonardrabentley: try running the webservice tests with your branch as-is and see if you get any failures. i'm curious.16:38
gmbabentley: I'll take a look at that branch for you.16:39
abentleyleonardr: How do I do that?16:39
abentleygmb: thanks.16:39
gmb... after I've looked at jcsackett's. Argh; spent too much time looking at tests and am now all turned about.16:39
=== gmb changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: jcsackett, abentley || queue: [abentley] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== abentley changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: abentley || queue: [jcsackett, abentley] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
=== abentley changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: jcsackett, abentley || queue: [abentley] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
leonardrabentley: bin/test -vvt webservice16:45
leonardrabentley: even if the existing webservice tests pass, i suspect your branch will break as soon as someone does something to retrieve a diff from the web service, and the diff they get happens to be an incremental diff16:50
abentleyleonardr: No, I don't think so.  Incremental diffs aren't diffs, and don't have any URL at all.16:50
leonardrabentley: in that case, i don't think you need to call exported() on their fields16:51
abentleyleonardr: So either I should go all the way and export incremental diffs over the API, or I should drop the export calls?16:53
leonardrabentley: exactly. export() is you telling lazr.restful which parts of the incremental diffs should be visible16:53
abentleyleonardr: Fair enough.  I'll probably export them, just because sooner or later, we'll get bug reports if I don't.16:54
leonardrabentley: bug reports saying "export these pls"?16:55
abentleyleonardr: yeah.16:55
leonardrabentley: ok, i think you should do that in a separate branch16:55
leonardrsince you'd also have to give an incremental diff a url16:55
abentleyleonardr: okay.16:56
leonardrabentley, is an incremental diff really a 'thing' with an independent existence? it seems more like the product of an algorithm. that doesn't preclude giving it a url, but it might make the work more complicated16:57
abentleyleonardr: You could look at it as merely cached data.16:58
abentleyleonardr: Same for any diff, I guess.16:58
leonardrabentley: at this point we're beyond a review of this branch, but if you get into this, maybe we can talk about how existing diffs are published in launchpad-dev?16:59
abentleyleonardr: sure.17:01
=== gmb changed the topic of #launchpad-reviews to: On call: gmb, leonardr || Reviewing: abentley, abentley || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
leonardrabentley: can you explain this line? IMasterStore(IncrementalDiff).add(incremental_diff)17:02
leonardrare you caching the diff in the database for later?17:02
leonardrand what's the difference between IMasterStore.of() and Store.of()? it looks like one takes a class and the other an instance?17:04
abentleyleonardr: I am storing the value in the database.  We cannot generate incremental diffs on demand.  We will generate them in a cron job17:04
abentleyleonardr: IMasterStore(class) returns the writable store that is meant to be used for that class.  Store.of(instance) returns the store the the instance was retrieved from.17:05
leonardrabentley: ok, that does give the incremental diff an independent existence17:05
abentleyleonardr: export removed, diff is updated.17:11
abentleyleonardr: s/export/expose17:12
=== jcsackett is now known as jcsackett|afk
leonardrabentley, line 292, i think the end quotes need to be on their own line17:19
abentleyleonardr: done.17:21
leonardrgoing through tests now17:21
gmbabentley: r=me on the incremental diff job branch with a few small changes requested.17:25
=== gmb changed the topic of #launchpad-reviews to: On call: leonardr || Reviewing: abentley || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
leonardrabentley, i think in test_generateIncrementaldiff there are several multi-line loc you could combine and stay under the character limit17:25
=== sinzui changed the topic of #launchpad-reviews to: On call: leonardr || Reviewing: abentley || queue: [sinzui] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
abentleygmb: thanks.17:25
sinzuileonardr, I have a branch the refactors our rdf page.17:26
leonardrand i could really use some comments explaining what all these branches have to do with each other. it's tough to figure out just by looking17:26
leonardrsinzui: ok, send me the mp17:26
sinzuihttps://code.edge.launchpad.net/~sinzui/launchpad/rdf-links-1/+merge/3686517:26
leonardrabentley: or some more expressive commits--right now all the commits are nearly identical except for one or two single-character differences17:27
=== matsubara-lunch is now known as matsubara
leonardri think it would help a lot to have a comment explaining the original state of the precursor branch, the state of the prerequisite branch, and then the changes made by the new branch17:28
abentleyleonardr: I was only able fix one multi-line loc.17:28
leonardrabentley: ok, i must have misjudged. what do you think of the comment idea?17:28
abentleyleonardr: Sure, I can do that.17:29
leonardra way to make it simpler without comments would be to have a method that both creates a branch and does a commit17:29
abentleyleonardr: http://pastebin.ubuntu.com/502197/17:36
abentleyleonardr: half of those commits are merges, though.17:37
leonardrabentley: that makes it a lot clearer17:39
leonardri don't know if the method that creates branch and does commit would help much, but it might help distinguish between the branches as they were "before", and the branches that get changed "during" the test17:40
leonardrabentley: a couple nosy questions about difftacular, which i see you wrote yourself during july (?)17:42
leonardrhow hard would it be to make an egg of it? i get the impression we prefer eggs to sourcedeps17:42
leonardrgranted that you have tests in difftacular, but did you get someone to review that code?17:43
abentleyleonardr: impossible.  bzr plugins cannot be provided as eggs.17:43
leonardrok17:44
abentleyleonardr: I did not get someone to review that code.17:45
abentleyleonardr: I'm sorry, but I need to go now to meet someone for lunch.17:45
=== abentley is now known as abentley-lunch
leonardrabentley: no problem. i'll approve this mp with your changes, contigent on getting difftacular reviewed. i can probably review it today if it's not too complicated, since i need to leave some mps for a trainee who's ocr tomorrow17:48
=== leonardr changed the topic of #launchpad-reviews to: On call: leonardr || Reviewing: sinzui || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
leonardrsinzui, just out of curiosity, have people been complaining about the rdf and the owl?18:21
sinzuileonardr, none directly...they cannot find it. We have circuitous complaints that RDF is not documented18:22
sinzuioh, Google knows about it18:23
sinzuibots don't complain though, they just 40418:23
leonardrsinzui, obvious typo: "it's" in line 20418:40
* sinzui can fix that18:40
leonardrsinzui: it looks like there was a problem where both the rdf spec and the link to it were called "rdf". was that the actual source of the problem (like a conflict) or was it just something that looked confusing so you fixed it?18:43
EdwinGrubbsabentley-lunch: I didn't get the job runner cron script ready in time for your OCR day. Do you have time to review it now, or do you know someone else who is familiar enough to handle it?18:44
sinzuileonardr,  that was part of the problem. browser resource loses the mimetype. lazr folder fixes that18:44
=== benji is now known as benji-afk
sinzuileonardr, I think it was first broken because the director or zcml moved and the publisher could not find the dir.18:45
leonardrsinzui: i see18:45
leonardrok, r=me18:45
=== jcsackett|afk is now known as jcsackett
abentley-lunchEdwinGrubbs: I can look at it now.19:51
=== leonardr changed the topic of #launchpad-reviews to: On call: leonardr || Reviewing: - || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
leonardrabentley-lunch: when you have time, i've looked through the difftacular codebase and i have some questions at various granularities19:52
=== abentley-lunch is now known as abentley
abentleyleonardr: sure.19:54
leonardrabentley: my biggest problem is that i don't understand what ignore_heads does19:54
leonardrit looks like it takes one branch, and a bunch of other branches, and returns a bunch of revision ids in the first branch that can be ignored?19:55
abentleyleonardr: it's the changes introduced by those revisions that can must be ignored.19:57
leonardrabentley: how about iter_lca_revision? i don't know what an lca is, but i'm guessing this is what strips out the revisions to be ignored?19:58
abentleyleonardr: an LCA is a Least Common Ancestor.  It is an ancestor shared by both revisions that has no descendants that are also ancestors of the revisions.20:00
leonardrso the revisions included in the diff are the lcas of the original revision and all the revisions being ignored?20:01
abentleyleonardr: we don't really diff revisions.  We generate two trees and diff those.20:03
abentleyThe "new" tree is the tree for the "new_revision".20:03
abentleyThe "old" tree is generated by merging the changes from the ignore_branches that were merged into the new_revision into the old_revision as well.20:04
EdwinGrubbs abentley: thanks, here it is: https://code.edge.launchpad.net/~edwin-grubbs/launchpad/bug-615654-jobqueue-cron-script/+merge/3691020:04
leonardrok, that's similar to what i was trying to say20:04
leonardrlet me take another look at the tests now that i understand ignore_heads20:04
abentleyEdwinGrubbs: I am looking into it, but I am also multitasking pretty hard.20:05
EdwinGrubbsabentley: no problem, I need to get some lunch anyway.20:05
leonardrabentley: why does ignore_heads return an empty list in test_ignore_heads_already_merged? is it because the merge happened in rev2, not between rev2 and rev3?20:13
abentleyleonardr: it is because those branches haven't been merged into bar.20:18
leonardroh, they were merged into foo and you checked bar20:19
leonardrno, i'm confused again. 'repo' is foo.branch.repository20:19
leonardryou're generating a diff between foo rev2 and foo rev320:19
leonardrand you're ignoring bar20:19
leonardrbut bar was merged into foo during rev2, so it doesn't show up20:20
leonardrthat makes sense to me, but it's not what you're testing?20:20
abentleyleonardr: sorry, misread it.20:21
abentleyleonardr: yes, your original idea was right.20:21
leonardrok20:21
leonardrabentley: hopefully the final question before the suggestions20:22
leonardrwhat exactly is going on in the unignored merge scenario?20:23
leonardri suspect it's not unignored on its own, but that you use it in a way where bar.branch is not ignored where it would otherwise be ignored20:23
leonardror, you create a new branch, merge it into foo, and its changes are picked up while bar's changes are ignored20:25
abentleyleonardr: I don't understand what "unignored on its own" would mean.  Everything depends on how you invoke the diff generation.20:27
leonardrabentley: i don't think "unignored on its own" has any meaning, but "create_unignored_merge_scenario" implies that it does20:28
leonardri'm trying to figure out what is special about the scenarios where you call that functino. such that the "unignored" branch is not ignored20:29
abentleyleonardr: I think it means that the merge would not be ignored if you did a normal diff.20:30
leonardrabentley: in the two tests where you use it, the merge is *not* ignored. you ignore bar instead, and the "d" line shows up in the diff20:31
leonardrwhich makes sense, given the name. i'm just not sure whether that's what you're testing20:32
abentleyleonardr: I'm testing that when the branch isn't in the list of branches to ignore merges from, its merges aren't ignored.20:33
abentleyleonardr: unlike mainline_diff, which will ignore such merges.20:34
leonardrok, i get it now, but it's confusing that the tests are called "ignore_x" and you're checking that only *certain* x are ignored20:34
leonardrabentley: for lack of a better place to put these comments, i'm going to append them to my review of your launchpad branch20:38
abentleyleonardr: okay.20:39
leonardrabentley: i've approved your launchpad branch. let me know when you do a difftastic follow-up and i'll review that20:51
=== leonardr changed the topic of #launchpad-reviews to: On call: - || Reviewing: - || queue: [] || This channel is logged: http://irclogs.ubuntu.com/ || https://code.launchpad.net/launchpad/+activereviews
abentleyleonardr: the preview tree must be used as the input to the next merge.  Otherwise, you're not doing proper merges.20:57
leonardrabentley: ok, i missed that you were reassigning tree20:59
abentleyEdwinGrubbs: "for child in children: child.wait()": doesn't this mean that you can't re-run a job source until all job sources have terminated?21:08
abentleyEdwinGrubbs: I was thinking that we would exit after all the JobSources had been forked, not after they all completed.21:12
EdwinGrubbsabentley: I guess it does. The problem I was having is that if the parent process doesn't wait for the children to exit, when you run it manually, the child processes continue to spew output to the terminal. One solution to this problem would be to not have the parent process use a lockfile, since the child processes already have their own lockfiles.21:12
abentleyEdwinGrubbs: All the output should be redirected to logfiles anyhow.21:12
abentleyEdwinGrubbs: Waiting doesn't prevent the children from spewing output to the terminal, it just means they won't do it while you're using the terminal for something else.  Which isn't really a risk for cron scripts.21:15
EdwinGrubbsabentley: To prevent it from becoming more complicated to gather the output in the tests, I think I should add a command-line option so the tests can force it to wait, but I'll try running the tests without the waiting to see if that works at all.21:16
EdwinGrubbsI meant "spewing" to indicate that the output was coming at an annoying time. I actually wanted the children's output, but I just didn't want to be surprised by it.21:19
sinzuibac: those stories do not ready like a story. should we be concerned that foo bar is being called an owner in a story?21:20
* sinzui thinks stories need an owner/contributor browser and that is Sample Person21:20
bacsinzui: yes, it required more set up21:20
sinzuiwho owns applets?21:21
bacsinzui: i welcome ideas on how to make it looks less mechanical21:21
bacsinzui: either foobar or sample21:21
abentleyEdwinGrubbs: Why do you default runner_class to JobRunner when an unknown runner class is specified?21:21
sinzuiThe code team have been turning their mechanical tests into unittests that still use testbrowser21:21
bacsinzui: foobar owns applet21:22
* sinzui bangs head on a wall21:22
sinzuiThe whole test is using a god to manage an upstream project21:23
bacsinzui: i didn't intend for this to spiral.  i made requested UI changes and broke the world.  and then backfilled.21:23
* bac bad21:23
sinzuibac: right. I am thinking how do we stop hurting ourselves with this.21:23
abentleyEdwinGrubbs: What about phrasing it like this? http://pastebin.ubuntu.com/502299/21:24
sinzuibac: did you check for test duplication? maybe we can delete instead of add to make it pass21:24
EdwinGrubbsabentley: oh, that was left over from the old solution. It handled defaulting to JobRunner if it didn't exist, but getattr() wouldn't default to JobRunner if it was set to null. Although, it's unlikely that someone will specify the field without filling it in with something valid, so I could probably go back to just using getattr() and let it blow up later if the config is invalid.21:24
bacsinzui: no, i didn't look carefully for duplicates.  being unfamiliar with the code tests i'm thinking that would take a while21:25
* sinzui takes a quick look21:25
EdwinGrubbsabentley: that's a nice rewrite. I'll use that.21:25
abentleyEdwinGrubbs: I think it's better if it blows up the value is invalid.21:25
sinzuibac: code/browser/tests does not appear to intersect21:26
sinzuioh, the list is nice21:27
bacwhat list?21:27
bacsinzui: ^21:29
sinzuibac: I like the listification of the hosting options21:29
abentleyEdwinGrubbs: Do you need NoErrorOptionParser?  Can't you just blow up in ProcessJobSource.__init__?21:29
bacsinzui: yes, +1 to mrevell for the suggestion21:30
sinzuibac: I have been thinking about privacy too long. I keep seeing context/displayname and thinking that will raise a 40321:30
EdwinGrubbsabentley: the problem is if I want to pass "-v" into ProcessJobSource, the OptionParser in the __main__ section needs to ignore it.21:32
sinzuibac: you cleaned up a generator, but 'v' is does not conform to lp standards21:32
* sinzui argued for 1-char vars in comprehensions21:33
bacsinzui: i'll join you in that argument21:33
bacbut for now i'll fix it21:33
abentleyEdwinGrubbs: But if you do the argument parsing in ProcessJobSource.__init__, you'll have the real parser available to you.21:33
bacsinzui: and then have to split the line, resulting in it being more unreadable21:34
sinzui bac: branch-listing.pt may render faster if we used "sprite branch" instead to using an <img> element 75 times21:35
* sinzui was confused21:35
bacsinzui: IRC hide-n-seek?21:35
EdwinGrubbsabentley: yes, but I can't get the real parser until after I parse the JOB_SOURCE name out of the command line arguments, since that is necessary for looking in the configs to find out which runner class to pass to ProcessJobSource.__init__().21:35
sinzuimaverick has enabled tap on my magic mouse :(21:35
abentleyEdwinGrubbs: You mean which job source class to pass to ProcessJobSource.__init__() ?21:36
sinzuiBac: this paste looks good. I do not see what can be done about the tests. Given the age and value of the branch, I think it is ready to land.21:36
EdwinGrubbsabentley: sorry, I mean that ProcessJobSource.__init__() would be looking up the runner class, which it would be passing to JobCronScript.__init__()21:37
bacsinzui: i've made sprite change and the generator change.  thanks.21:37
abentleyEdwinGrubbs: So I think the simplest thing is to override runner_class after you've done JobCronScript.__init__()21:40
sinzuibac: you have my r for code.21:43
bacsinzui: and UI?21:43
sinzuiThat too, am I stepping on salgado though?21:44
bacsinzui: i'll send this off to ec2 for testing and wait for salgado to reply.21:45
sinzuibac: yes please21:45
mwhudsonsalgado is not working today, i think, if that's relevant21:45
EdwinGrubbsabentley: ok, it looks like I just have to override config_name and dbuser also, but init_zca doesn't get called in the __init__(), so I can get rid of the extra parser.21:46
bacmwhudson: will he be around tomorrow?21:46
mwhudsonbac: hopefully21:47
abentleyEdwinGrubbs: have you considered providing a list of crontab_groups in [process-job-source-groups] and then providing configuration for each group?21:48
abentleyEdwinGrubbs: I think then you wouldn't need all_job_sources or grouped_sources.21:49
EdwinGrubbsabentley: my main concern then is that a job class could become a member of multiple groups. Even if the cronscript would spit out an error when that happened, it would make the config file less convenient to use, and the config file will be edited a lot more than the cronscript's code.21:52
abentleyEdwinGrubbs: fair enough.21:53
abentleyEdwinGrubbs: could you please add documentation to your tests?  Each test is supposed to have at least one line.21:55
=== lifeless_ is now known as lifeless
abentleyEdwinGrubbs: is there a reason why test_setstatus_silent and test_setstatus_admin differ by more than the silent=True parameter?22:00
EdwinGrubbsabentley: ugh, another problem with not passing in the job_source to __init__() so that we can re-use its option parser is that the job_source is used to determine the config_name, and the config_name is passed to LaunchpadCronScript.__init__() as the name it uses for the cron control file, which determines whether the script runs at all.22:00
abentleyEdwinGrubbs: so my meta-suggestion is "if the way things fit together is getting in our way, let's fix it instead of routing around it or doing double handling".22:02
EdwinGrubbsabentley: I'll add some comments to the tests. setStatus(silent) can only be done by a Launchpad admin, so I made extra changes for that restriction after I had already finished test_setstatus_admin(), which just refers to the team admin.22:03
abentleyEdwinGrubbs: since you're doing admin = person_set.getByEmail('admin@canonical.com') you can use login_person instead of login, if you like.22:04
lifelessalso, if I can suggest22:05
lifelessfrom lp.testing.sampledata import ADMIN_EMAIL22:05
abentleyEdwinGrubbs: Have you tried using canonical.launchpad.scripts.tests.run_script?22:07
EdwinGrubbsabentley: no, I just copied the first test for a cronjob that I found.22:09
abentleyEdwinGrubbs: Perhaps I should have gone back and fixed all the tests to use that when I wrote it, but I was not very aggressive back then.22:10
EdwinGrubbsabentley: regarding your meta-suggestion, I think it will all work better if I move all the setup logic from __init__() to run() in all the parent classes. The only downside is that it will create the lockfile briefly before it exits if the cron crontrol file tells it not to run.22:11
EdwinGrubbsabentley: I'll switch to run_script.22:12
abentleyEdwinGrubbs: that sounds reasonable.22:14
abentleyEdwinGrubbs: (moving the setup logic to run) sounds reasonable.22:14
abentleyEdwinGrubbs: It's past EOD for me.  Can we pick this up tomorrow?22:16
EdwinGrubbsabentley: sure, talk to you later22:17
abentleyEdwinGrubbs: cool.22:17
=== salgado is now known as salgado-afk
=== matsubara is now known as matsubara-afk
=== Ursinha is now known as Ursinha-afk

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