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

rick_h_huwshimi: https://github.com/yui/yui3-gallery/tree/master/build/gallery-anim-morph woot!00:31
rick_h_https://github.com/yui/yui3-gallery/tree/master/src/gallery-anim-morph for the source with the api docs00:32
huwshimirick_h_: Fantastic!00:32
rick_h_so first gallery module done, working on a couple more, but good to get the ball rolling00:33
huwshimirick_h_: Yeah, feels like we're doing this properly now.00:38
StevenKwgrant: Clearly, AccessArtifactGrantSource.grant([artifact, subscriber]) is not the right way to call it, and I can't work out the right way from the code.04:28
wgrantStevenK: AccessArtifactGrantSource.grant([(artifact, grantee, grantor), ...]), IIRC, but let me check the interface04:29
wgrant    def grant(grants):04:29
wgrant        """Create `IAccessArtifactGrant`s.04:29
wgrant        :param grants: a collection of04:29
wgrant            (`IAccessArtifact`, grantee `IPerson`, grantor `IPerson`) triples04:29
wgrant            to grant.04:29
wgrant        """04:29
StevenKRight04:30
StevenKThat pesky subscribed_by thing04:30
wgrantgrantor04:30
=== almaisan-away is now known as al-maisan
* StevenK blinks.06:01
wgrantStevenK: Hmm hmm?06:02
StevenK        # Only include subscribers who can see the bug, if it's private.06:03
StevenK        print list(indirect_subscribers)06:03
StevenK        if self.private:06:03
StevenK            print list(indirect_subscribers)06:03
StevenK[<Person at 0xf29fdd0 product-subscriber (Product-subscriber)>]06:03
StevenK[]06:03
wgrantStevenK: It's probably a resultset06:03
wgrantOr some other sort of generator06:03
wgrantThat you're consuming with the first list()06:03
StevenKIt's a chain()06:03
wgrantRight, a generator06:03
StevenKSigh, so I can't print it06:04
StevenKBah, the query returns [], so it's fine, but product-subscriber is coming from somewhere.06:08
wgrantwallyworld: Did you consider precache_permission_for_objects?07:31
wgrantbranchlisting.py uses it07:31
wallyworldyes but decided against it07:32
wallyworldsince it's not the http caller needing to be cached07:32
wallyworldand it's exactly the same problem as for bug searching07:32
wgrantIsn't it?07:32
wallyworldah, it is, yes07:33
wgrantAh, you do it in BranchCollection, so this is a more general solution.07:33
wallyworldbut i wanted to stick to the bug search pattern07:33
wgrantBut you could equally do it in the view.07:33
wgrantRight.07:33
wallyworldi don't want to do it in the view07:33
wallyworldwrong place07:33
wgrantwallyworld: r=me, thanks07:35
wallyworldnp, thanks for reviewing :-)07:35
wallyworldi really wanted to get that one sorted asap07:35
wgrantYeah07:35
wgranthttps://code.launchpad.net/~wgrant/launchpad/more-branchnamespace/+merge/114563 is pretty simple if you have a few mins.07:36
wallyworldsure07:36
StevenKwgrant: That does USERDATA, not PROPRIETARY07:37
wallyworldwgrant: 30return False07:38
wallyworldshould be return None i think07:38
StevenKI guess it will migrate when everything else does07:38
wgrantwallyworld: Good point. Doesn't actually matter, but it's wrong :)07:40
wallyworldwgrant: i agree with StevenK. we can cater for Proprietary in the if statement and it will work later07:40
wallyworld42+ if (information_type == InformationType.USERDATA and07:40
wallyworld43+ getFeatureFlag('disclosure.display_userdata_as_private.enabled')):07:40
wallyworld44+ return 'Private'07:40
wallyworld45+ return information_type.title07:40
wallyworldcan add an == propprietary bit07:40
wgrantWhere?07:40
wgrantThat "return 'Private'" is just for the userdata_as_private07:41
wallyworldah yes, sorry. misread it07:41
wgrantStevenK: Do you refer to getDefaultInformationType?07:41
StevenKThat feature flag is getting used everywhere :-(07:41
StevenKwgrant: Yah07:41
wgrantStevenK: Well, the default information type is never proprietary yet07:42
wgrantSo making it sometimes proprietary when it's never proprietary would be sort of wrong :)07:42
wgrantStevenK: I'll be adding a new feature-flagged codepath tomorrow which will return proprietary if the enum is set to return proprietary07:42
StevenKAh07:43
StevenKwgrant: Yeah, you could use disclosure.proprietaryblahblah.disabled07:43
wgrantBut returning proprietary before anything should be proprietary would seem to be a Bad Idea™07:43
wgrantStevenK: No07:43
wgrantdisclosure.bvp_must_die or so07:43
StevenKHaha07:44
StevenKCurtis will be unhappy if you add another FF :-)07:44
wallyworldwe can use the existing ff07:44
StevenKNo, wgrant is right, we can't.07:44
wgrantWe can't07:44
wallyworlddisclosure.proprietary_information_type.disabled07:44
wgrantIt's entirely different.07:44
wgrantThis engages the BVP replacement07:45
wgrantWhich we'll want to do before we enable proprietary07:45
wallyworldif the branch is associated with a proprietary project, shouldn't new branches be propprietary?07:45
wgrantProprietary projects don't exist yet.07:45
wallyworldregardless / instead of bvp07:45
wgrantI suspect that a proprietary project has an enforced PROPRIETARY_ONLY branch config setting.07:46
wallyworldif a projject is has a current commercial subscription it can be07:46
wallyworldso i guess yes it may be too early07:46
wgrantCommercial subscriptions will enable the project owner to enable proprietary branches.07:46
wgrantThey don't enforce all branches to be private.07:47
wallyworldwgrant: r=me, looks great07:47
wgrantThanks07:48
wallyworldwelcom07:48
wgrantThe plan is to enable writable sharing RSN, then once that's out and working we can do the migration away from BVP to the new enumcol. The first stage of that work will still create User Data branches, like BVPs do now.07:49
wgrantOnce BVP is dead, we can sensibly turn on Proprietary07:49
wallyworldok07:49
StevenKwgrant: I guess we want IProject.default_propietary_branches07:49
wgrantAt which point the BVP replacement can start doing Proprietary instead07:49
wallyworldso close yet so far07:49
wgrantStevenK: It's a four-state enum, remember.07:49
wgrant‣ Public: Branches are public unless they contain sensitive security information.07:51
wgrant‣ Public, can be private: New branches are public, but can be made proprietary later.07:51
wgrant‣ Proprietary, can be public: New branches are proprietary, but can be made public later. Only people who can see the project's proprietary information can create new branches.07:51
wgrant‣ Proprietary: Branches are always proprietary. Only people who can see the project's proprietary information can create new branches.07:51
wgrantOr so07:51
StevenKwgrant: Ah yes. I'm distracted by ACB07:51
=== jelmer changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: jelmer | Firefighting: - | Critical bugs: 4.0*10^2
adeuringgood morning08:28
czajkowskimorning08:29
* cjwatson wonders if there's any chance of deploying up to r15608 today ...08:33
jelmerhi adeuring, czajkowski, cjwatson08:37
adeuringhi jelmer!08:37
wgrantcjwatson: We have no UK ops today, but jjo might be able to do it in a few hours if QA gets done08:38
cjwatsonYeah, I suppose I was hinting at those with pending QA :)08:43
wgrantStevenK, jcsackett ^^08:43
wgrantAh, I think jcsackett might have done his, but forgotten one of the bugs08:44
wgrantSo it's just StevenK, on something that doesn't really matter hugely at this point.08:44
cjwatson(That deployment would let me update all our documentation to refer to the API client and decommission the queue script, since the API is now feature-complete.)08:51
wgrantIt would seem wise to keep the queue script around for a couple of weeks, just in case...08:52
wgrantSince we have no other way out.08:52
cjwatsonYeah, perhaps08:53
cjwatsonI wonder if SRU handling is enough to stress-test things, or if we need a freeze period of quantal08:54
cjwatsonThe latter are a bit difficult to come by these days, since there's considerable top-down pressure not to freeze for alpha milestones08:54
wgrantI think routine SRU+security stuff is probably more likely to shake out issues than freezing a dev series.08:54
wgrantFreezes tend to often be handled through the web UI anyway, right?08:54
cjwatsonOnly because we felt we ought to and didn't have an API.08:55
wgrantRight, but they weren't traditionally done through queue08:56
cjwatsonThey've traditionally been a mix08:56
wgrantSo removing queue is less likely to impact them.08:56
wgrantTrue08:56
cjwatsonI'm not especially worried about routine NEW handling; the things I'm less sure about are timeouts on accepting uploads that close lots of bugs08:57
cjwatsonWhich are more likely in the development series, apart from kernel SRUs which happen through a PPA anyway so don't count08:57
wgrantHm, indeed08:58
wgrantPerhaps we can accidentally freeze before the next unity upload...08:58
cjwatsonI could certainly ask for an experimental freeze where we in fact just accept everything for a few days08:58
cjwatsonAnd I've tweaked my pending announcement mail to remind people that I need to actually hear about bugs rather than quietly working around them09:01
wgrant:)09:01
jtvHello jml!  Julian had an interesting suggestion: we found Launchpad's FakeMethod a tough thing to do without in MAAS, so maybe it would be an interesting thing to have in testtools?09:59
jmljtv: I've forgotten what FakeMethod does. Looking now.10:11
jmljtv: tbh, I think not. I think what you want is mfoord's mock: http://pypi.python.org/pypi/mock10:12
jtvjml: it's used for st/ubbing (mis-spelling to avoid bothering Stu) functions and methods.10:12
jtvYes, this is a lot more lightweight.10:12
jtv\10:12
jmljtv: what does that mean?10:12
jtvIt does a lot less.10:13
jtvIt does:10:13
jmljtv: and that's a good thing?10:13
jtvCan be, if you don't want to climb the learning curve.10:13
jtvThat was the problem with Mock when we first ran into it, I think: there was too much new stuff to take in, when all we really wanted is patch out some method to return a predetermined value, or raise a predetermined exception.10:14
jmlit's pretty easy10:14
jml@patch("foo.bar")10:15
jmldef f(mock_foo_bar):10:15
jml  mock_foo_bar.returnvalue = 4210:15
jtvStill:10:15
jtvself.patch(foo, "bar", FakeMethod(42))10:15
jmlI riposte:10:16
jmlself.patch(foo, 'bar', lambda *args: 42)10:16
jtvDon't forget the **kwargs.10:16
jmlmy test will fail if that matters :)10:17
jtvBut sometimes we find that afterwards you want to know about what calls have been made to your fake, and that's also built into FakeMethod.  (Mock has something nicer for that, but again FakeMethod keeps it very simple)10:17
jmljtv: ok10:17
jtvAnyway, not trying to force it on you.10:18
jmljtv: No worries. I'm not interested in putting it into testtools. I would strongly suggest using mock and then having less code to maintain. Alternatively, create a library for FakeMethod.10:18
jtvSeems a bit silly to have something so small stand alone as a library… I think that's one reason why Julian suggested it might have a place in testtools.10:19
jmljtv: perhaps it might have a place in mock10:20
jtvWhat we did for now is just copy it.  Doesn't really matter if it diverges or not.10:20
jmlwell, maintaining way too much code _is_ the Launchpad Way.10:20
jtv:)10:20
jmlno point in making your job too easy10:20
jmlsorry. I shouldn't snark :(10:21
jtvThat's okay… I can see the truth in it.10:21
jtvIn this case, it's stable enough that I don't see it mattering much.  It's not like we ever find bugs in it.10:21
jtvWe'd _like_ to have it in a shared place, of course, but it's not hugely important.  I think it'd probably fit poorly with Mock; maybe Mock has a good replacement for it.10:24
=== al-maisan is now known as almaisan-away
cjwatsonOK, zope is melting my brain and I need some advice.  What might I have forgotten in http://paste.ubuntu.com/1087847/ that would cause "KeyError: 'editchroot'"?12:09
cjwatsonIt looks like it's failing to look up overview_menu.12:10
cjwatsonBut I might be misguessing as it's kind of hard to keep my head straight in 20-odd stack frames.12:10
cjwatsonThe expression it's trying to evaluate at the time is Expression: <PathExpr standard:u'overview_menu/editchroot/fmt:icon'>12:12
cjwatsonAnd I think the menu is None.12:12
jam1hey jelmer, how's it going today?12:16
=== jam1 is now known as jam
cjwatsonhttp://paste.ubuntu.com/1087861/ is the full traceback I'm staring at.12:20
cjwatsonAh, maybe I have the NavigationMenu attached to the wrong interface12:28
rick_h_sorry cjwatson you're on my kryptonite12:30
rick_h_maybe adeuring knows a bit more12:30
adeuringcjwatson: right; without looking further I'd guess that overview_menu does not know about "editchroot"12:32
jelmerjam: hey12:32
jelmerjam: alright, reviewing and wrapped up the bzr upload to quantal12:33
jelmerjam: are you still working on the python2.7 transition?12:33
mgzwith a ribbon?12:33
=== almaisan-away is now known as al-maisan
rick_h_sinzui: do you know where YUI comes from? It's in lp-sourcedeps and symlinked into the app root, but I can't figure out where that lp-sourcedeps directory came from12:40
sinzuiI do not12:40
sinzuiStevenK, do you know ^12:40
wgrantrick_h_: buildout12:40
wgrantrick_h_: There's a yui tarball in download-cache12:40
wgrantA buildout rule extracts it into yui/12:41
rick_h_is there? I was checking out and missed it12:41
wgrantWhich is a symlink to lp-sourcedeps12:41
rick_h_ok, looking thanks12:41
wgrant$ ls download-cache/dist/yui-3.*12:41
wgrantdownload-cache/dist/yui-3.3.0.tar.gz  download-cache/dist/yui-3.3.tar.gz  download-cache/dist/yui-3.4.1.tar.gz  download-cache/dist/yui-3.5.0pr1.tar.gz12:41
rick_h_heh, lovely so just blind12:41
rick_h_oh heck, scrolling ftw thanks wgrant12:41
wgrantHeh12:44
cjwatsonadeuring: mm, well, I now have http://paste.ubuntu.com/1087894/ which I think is less incorrect (it now actually has a NavigationMenu with usedfor = IDistroArchSeries), but I'm still getting exactly the same failure :(12:46
cjwatsonqueryAdapter(<a DAS object>, INavigationMenu, 'overview') -> None12:46
wgrantcjwatson: Have you registered it?12:47
wgrantYou want the browser:menus ZCML directive12:47
cjwatsonAh, yes, I just got there by grepping for another case12:48
cjwatsonExcellent!  Now I have a different failure, but a comprehensible one.  Thanks12:49
rick_h_abentley: http://blog.singly.com/2012/07/09/from-itch-to-scratched-google-hangout-permalink/13:11
cjwatsonIs there a limit (practical or otherwise) to the size of file that can go in a multipart/form-data upload to LP?13:12
abentleyrick_h_: Cool.  Sounds like what smoser did.13:13
czajkowskisinzui: good day. do you happen to know if ther eis a way to automate via a terminal milestones for a project ?13:28
sinzuiczajkowski, do you mean create them, release them?13:28
czajkowskisinzui: https://answers.launchpad.net/launchpad/+question/20293713:29
czajkowskiis why I am asking13:29
sinzuiThere  many launchpadlib scripts that do that13:31
sinzuihttps://launchpad.net/+apidoc/devel.html13:31
sinzuiI have one that U use to release milestones, but nothing that creates the milestone, or adds a file to a project_release13:32
* sinzui looks for example13:32
sinzuiczajkowski, point the user to lp-project-upload in https://launchpad.net/ubuntu-dev-tools which will create a milestone, release it, then upload a file13:40
czajkowskisinzui: great, thank you/13:41
sinzuiczajkowski, , actually, I don't see that script anymore13:43
* sinzui looks for rename13:43
Laneyit's probably in lptools now13:44
sinzuiczajkowski, lp-project-upload moved to https://launchpad.net/lptools13:48
czajkowskisinzui: cheers13:48
=== jcsackett changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: jelmer, jcsackett | Firefighting: - | Critical bugs: 4.0*10^2
jamjelmer: yes, I'm still working on the python2.7 stuff. I'm getting a segfault now in the lucid container, which is being problematic to track down.13:59
mgza py2.7 specific segfault? because you had lucid vanilla working right?14:02
jelmerjam: do you have a gdb backtrace that's hinting at what might be happening?14:02
rick_h_jcsackett: ping, have a review for you if you get a sec. I *think* this is right and works locally but please sanity check me https://code.launchpad.net/~rharding/launchpad/lpyui-dep/+merge/11443014:02
jamjelmer: that's the best part, 'ulimit -c unlimited' and I can't find a core file14:03
jammgz: yes14:03
jamjelmer: It fails while bootstrapping 'bin/py' I can at least run 'py -vv' and see that it is failing during "import code_..." ?14:03
jamhowever, just importing that module isn't enough to get it to crash14:03
jamI'm guessing there is something that is breaking the import machinery, or something along those lines.14:04
jammgz, jelmer: I'm trying to do a fresh bootstrap (somehow, not sure if 'make clean' is actually clean enough)14:10
jamnow that is weird...14:10
jamI did 'make schema' and it crashes at bin/py, but the outer OS seems to think gnome-screensaver just died14:10
jelmerhmm14:11
jelmerpid reuse?14:11
jcsackettrick_h_: it looks alright to me, but my Make/buildout knowledge is bare bones. i believe gary_poster has some expertise there iirc. if he has time, might be worth having him take a look too.14:19
rick_h_jcsackett: ok, I tested it out locally and tried to make sure make check/tests run, turning on/off the combo loader FF works, and then setting and unsetting the yui verison14:20
jcsackettrick_h_: given all that and a second pair of eyes, i think it's probably fine. if it's not, ec2 will choke on it anyway. so, like i said, r=me.14:20
* jcsackett realizes he didn't actually say that.14:20
gary_posterjcsackett, hiya.  on calls. lemme know if you need me later14:21
jcsackettgary_poster: will do.14:22
jamjelmer: well this time it is crashing trying to import _ctypes which seems much more likely to be a problem.14:28
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== Ursinha` is now known as Ursinha
jamjelmer: so right now I'm trying to make sure it isn't re-using .pyc files or something along those lines, with the 2.6 install. But I accidentally nuked my download-cache and have to redownload it, etc.14:45
jelmerjam: fun :(14:52
jelmerjam: what did you have to do to get make to run, btw? for me it still fails (silently) during the mailman step14:52
jamjelmer: well right now 'make schema' is segfaulting, so I don't know that 'make' is working14:53
jelmerjam: have you tried "bzr grep python2.6" ?14:54
jelmerjam: I think one of the database scripts uses its own shebang line14:54
jamjelmer: bin/py was specifically segfaulting while running 'import site', so it is happening pretty early.14:55
jelmerah, ok14:55
mgzjam: what's your recipe roughly? just add the lucid py2.7 ppa to a normal lucid setup of launchpad?14:56
jammgz: and have a branch of launchpad that changes the PYTHON:= line in the makefile to not do crazy version checks, but just 'PYTHON:=python2.7'14:57
jamadd-apt-repository ppa:pythoneers/lts14:57
jamthen sudo apt-get install python2.714:57
mgzace. can probably repo here reasonably easily then, unless rocketfuel borks things too badly (then it's extra hacks in the branch)14:58
jammgz: note that on startup I'm getting: http://paste.ubuntu.com/1088093/14:59
jambut everything was working with python-2.6, so I thought that was just noise14:59
jamI did run out of disk space at one point, and had to expose more space for the VM. maybe something got horrbly borked and I should just restart from scratch15:01
mgzfun.15:05
czajkowskijelmer: can you investigate please. https://support.one.ubuntu.com//Ticket/Display.html?id=1932315:31
jelmerczajkowski: on it15:32
czajkowskijelmer: thanks15:33
=== salgado is now known as salgado-lunch
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== salgado-lunch is now known as salgado
abentleyjcsackett: Could you please review https://code.launchpad.net/~abentley/launchpad/mp-by-revision-id/+merge/114693 ?18:00
jcsackettabentley: r=me. looks good, and thanks--i've been wanting that to work. :-)18:28
abentleyjcsackett: Thanks.  It'll also require some bzr-side fixing before lp-find-proposal can do it.18:29
magciusev, ping18:37
sinzuijcsackett, wgrant, StevenK, wallyworld: http://people.canonical.com/~curtis/lp-milestone/report.html22:00
lifelesssinzui: did you do that yourself ?22:07
lifelesssinzui: or is it some stock tool we have hanging around ?22:07
sinzuiYes22:07
lifelessits nice22:07
sinzuiI wrote it. It thinks it is talking to Lp, it is actually using json I pulled and removed private data22:08
rick_h_lifeless: replied in -dev for the combo loader notes. Let me knwo if there's something else I need to do.22:08
sinzuiA lot could be reused in Lp or other tools22:08
lifelesssinzui: are the burn down charts totally LP sourced?22:09
sinzuiyes22:10
lifelesssinzui: perhaps lpkanban would be a good place for the chart logic to live22:10
sinzuiMost of the code is tested.22:10
sinzuiI was thinking of pulling data from kanban, but I need s break from this report22:10
lifelesssinzui: lpkanban shows LP bug data for a team as a kanban board22:11
lifelesssinzui: its not leankitkanban related22:11
lifelesssinzui: and sure, not trying to give you work, just speculating about structure :)22:11
=== jcsackett changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: 4.0*10^2
StevenKwgrant: http://pastebin.ubuntu.com/1088958/  test_add_comment_no_access fails since product-subscriber is in the list, but it should have no access to the bug, so WTF ...23:29
wgrantStevenK: That's pretty odd. Let me have a look23:32
wgrantStevenK: Oh23:39
wgrantStevenK: The return is a lie.23:39
wgrantgetBugNotificationRecipients doesn't actually use the return value. It uses the contents of BugNotificationRecipients.23:40
wgrantSo you need to filter what you add :(23:40
wgrantOr get BugNotificationRecipients to filter23:40
StevenKOh, bleh23:40
wgrantOr *possibly* filter in getBugNotificationRecipients23:40
StevenKLet's teach BugNotificationRecipients how to filter23:41
StevenKWhich looks ... fun23:43
wgrantStevenK: btw, qa?23:46
StevenKOh, bleh.23:47
rick_h_ccccccbgjgvclbkvdbvchdknlnkhgutbkgbcurerrjvb23:49
wgrantI didn't know rick_h_ had a cat.23:49
spmpossibly he's moving to Aus and this is the town he's moving to?23:52
wgrantTrue23:52
StevenKspm: That must be the short name.23:54

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