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

rick_h_wgrant: heh, ubikey00:00
rick_h_once in a while bump the dippy thing00:00
StevenKwgrant: Twitch.00:01
StevenK% grep -c 'pdb.set_trace' lib/lp/bugs/mail/bugnotificationrecipients.py00:01
StevenK100:01
wgrantStevenK: Bug #102414800:02
_mup_Bug #1024148: Branch.transitionToInformationType breaks when making a subscriberless branch private <disclosure> <regression> <sharing> <trivial> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1024148 >00:02
wgrantStevenK: Oh wow, that's nice.00:03
rick_h_StevenK: got a sec? I think I blew up buildbot, but my ec2 test run passed so wonder if you can help me figure out what the difference is and what I can do to fix00:27
rick_h_my understanding is that this runs a make check so if I make clean_buildout and make check locally and it works I should have been ok?00:29
StevenKrick_h_: make check will take ~ 5 hours00:39
StevenKrick_h_: Right, the buildbot slaves don't have convoy00:39
rick_h_StevenK: right but what I mean is that the buildbot fail is about convoy, but it's in the download cache00:39
rick_h_ah bah that's right...I forgot it's packaged00:40
StevenKAssuming convoy is available everywhere is a recipe for disaster00:40
rick_h_crap...ok...looking00:40
wgrant+jsbuild: $(PY) combobuild jsbuild_widget_css $(JS_OUT)00:41
wgrantjsbuild very deliberately didn't depend on combobuild before :)00:41
rick_h_right, but combo-rootdir drops the YUI code into the build dir now. Since it worked locally with make check I thought I was clear00:41
rick_h_I'll move the meta.js to make run and should fix it00:41
wgrantrick_h_: Why did you need to move combo-rootdir?00:42
StevenKrick_h_: So local has convoy, as does ec2. buildbot does not.00:42
rick_h_StevenK: right, gotcha.00:43
rick_h_wgrant: so with the policy of 'all things come from system packages or python packages' YUI is served from a python package now. I set the combo-rootdir to extract that out when it runs00:43
rick_h_and it needs to run before the launchpad.js generation now00:44
wgrantThat policy is not sensible for non-Python things like YUI00:44
rick_h_where before yui was put into place by buildout00:44
wgrantRight00:44
wgrantWhich is probably correct.00:44
wgrantlifeless: opinion pls00:44
lifelesshi00:44
lifeless'sup ?00:44
wgrantRepackaging yui tarballs as a launchpad-yui egg seems pretty insane.00:45
rick_h_my understanding in talking with sinzui deryck and company that this was the preferred path.00:45
wgrantThey might think they prefer it, but they don't.00:45
rick_h_that anything like the sourcedeps is to be deprecated and that all things much come from system or python packages00:45
rick_h_and since I need to be able to run multiple yui versions at once for testing, I setup a python package that dumps any contained YUI versions to the build dir00:46
lifelesssorry, whats the full story?00:46
wgrantDumping multiple versions of yui into a custom tarball just to make it an egg is entirely crazy.00:46
StevenKrick_h_: source*code* is deprecated, sourcedeps is not00:46
wgrantlifeless: Yesterday we had a custom buildout rule which took a normal upstream YUI tarball and turned it into something Launchpadish00:46
wgrantlifeless: Today we instead have a Launchpad-specific egg with two versions of YUI unpacked within it00:47
StevenKChange utilities/sourcecode.conf == bad, change versions.cfg ==okay00:47
wgrantI don't see this as an improvement.00:47
StevenKBah, I can't call BugNotificationRecipients.update() with a resultset. :-(00:47
rick_h_wgrant: the improvement is that this package has make commands to help auto extract only the build bits from the YUI download, etc00:47
rick_h_and then it dumps all versions it contains into the build dir without needing to update any list/config for them00:48
wgrantRight, a helper like that is sensible00:48
rick_h_and the only thing that matters is that build/js/yui is symlinked to the version in versions.cfg00:48
wgrantEmbedding the YUI codebase is is not00:48
rick_h_well based on conversations in pre-impl it was sort of based on the lazr.js model and some other 3rd party modules I found00:49
lifelessrick_h_: so, we want to reduce the number of dependency systems in use, that is correct.00:49
rick_h_http://pypi.python.org/pypi/launchpad_yui/0.100:49
wgrantThis doesn't reduce the number of dependency systems00:50
wgrantIt adds a new one: embedding large third-party codebases in a Launchpad-specific public egg00:50
lifelessrick_h_: however, with current deployment logic and packaging tech, that means we'll end up with a) debian package for firefox, rabbit, pgsql etc; b) buildout versions.cfg entries for python packages and anything else that buildout can deliver.00:50
wgrantIt happens to sit behind something like looks like one of our other dependency systems00:50
wgrantBut it isn't.00:50
rick_h_right, well because JS doens't have a good dependency system in LP, so I shoe-horned my way into an existing one00:51
StevenKWhich is terrible00:51
lifelessrick_h_: We've had some friction in the past using 'make YUI into an egg' approaches; can I ask what problem you were trying to solve ?00:51
wgrantWe already had it fairly cleanly shoehorned, didn't we?00:51
wgrantI don't understand what was wrong with the old way.00:51
lifelessStevenK: wgrant: Can you guys chillax a little so we can understand whats going on?00:51
rick_h_lifeless: so the problem was 'how to more easily maintain/manage multiple yui versions in LP'00:51
lifelessrick_h_: can you expand on that a little? what was giving you grief, what do you want to be able to do (and how does this do it)00:55
lifelessrick_h_: I realise you've probably discusse that with deryck & sinzui already, but I can't really give an opinion till I get a handle on all the friction :)00:55
rick_h_ok so it's a couple parts of me not getting it initially (I realize now) and wanting to make installing/testing newer versions of yui easier.00:56
rick_h_the idea was that we need to be able to drop several versions of YUI into the build/js dir and use the feature flag to switch which one you use00:56
rick_h_we kind of had that, there's some buildout stuff to install 3 versions that are in the download-cache of yui which I didn't quite get until today00:57
lifelesswe'll need that for production too00:57
lifelessotherwise race conditions galore happen.00:57
rick_h_and in discussions the 'idea' seems to be that things must either be a python package or a system package going forward00:57
rick_h_that seems to have been taking the idea too far from what I'm hearing now though. download-cache is still ok with non-python packages00:58
rick_h_so the yui zips in there would have been ok00:58
lifelessdownload-cache is just a holding place; the key thing is to get away from the 4! we have today.00:58
rick_h_so with the understanding that YUI has to come in via python package or system package, I thought a python package was easier to deliver multiple versions and setup http://pypi.python.org/pypi/launchpad_yui/0.100:59
lifelesswhile we use buildout, and buildout can do more than just eggs, we're fine with zips in download-cache, yes.00:59
rick_h_today I landed changes to extract YUI from that package vs the buildout download cache, I did that in the current combo-rootdir bin script, and that needed to run now before launchpad.js is built for non-combo loader users00:59
rick_h_so I moved around the make deps so that jsbuild required combo biuld, which required convoy and the buildbot slaves don't have that, so I broke buildbot01:00
lifelessThat pypi project is probably a great place for scripts to do things like download the latest zip and put it in download-cache, to live.01:00
lifelessrick_h_: thanks.01:01
lifelessso heres what I think: shovelling one package into another as a transport mechanism is necessary sometimes but usually at best somewhat unpleassant01:01
rick_h_so I'm trying to see 1) what to do to unfubar buildbot and 2) if I should be rethinking the changes all together.01:01
lifelessthat strategy tends to run into several classes of headache: versioning is tricky if you want it to match at all; authentication of the transported thing is often hard or at the very least nontrivial01:02
lifelessand lastly its usually surprising for everyone that encounters it.01:02
lifelessrick_h_: do you have any ideas about how we manage syncing and using the gallery widgets going forward ?01:03
lifeless(this may seem like a non sequitor, but its very related :))01:03
rick_h_so that's a seperate issue at the moment. This is only for the base YUI library. I've started conversations with others on the syncing, but there's not currently an acceptable answer yet01:03
rick_h_honestly, my pitch to deryck was to run our own gallery.yui.com but js.canonical.com that could be https and shared modules for all teams. Since modules are versioned, they could be kept and updated in a single place so all could follow dev/what's available.01:04
lifelessIt seems like the same problem to me: we have code in a different *space (language/name/dependency - everything), that we want to consume easily and reliably and upgrade from time to time, and possibly fork from time to time.01:04
rick_h_however, that's a BIG undertaking01:04
rick_h_since it required infrastructure and someone to shepard/manage things01:05
lifelessit also doesn't give any assistance towards offline development, offline testing and local forking01:05
rick_h_lifeless: you're right in that it is, but as I said, there's no 'great' answer yet so I admit that this python package setup was hackish, but kind of an the immediate means to the end01:05
lifelesssure, I'm not critiquing it [yet] :P :)01:06
rick_h_lifeless: well, the way the yui gallery works is that it's a single repo, anyone can checkout and serve01:06
rick_h_much as you checkout yui itself, and put it into a combo loader server01:06
lifelessby checkout, do you mean 'grab a tar' or 'git clone' ?01:07
rick_h_but yes, it's not perfectly worked through for sure. There's a balance on duplication of effort and visiblity of a central location vs the distribution of things to offline/individual running01:07
rick_h_git clone01:07
lifelessok01:07
rick_h_https://github.com/yui/yui3 you clone that and get it all01:07
rick_h_and updates are done by forking their repo, adding your new module, and requesting they merge it back01:07
lifelessso, with all that in mind01:07
lifelessdo you think we should handle widgets the same as base YUI ?01:08
rick_h_ideally, it would be nice01:09
lifelessare there any reasons to handle them differently ?01:09
rick_h_just beacuse the yui libary is not apt to change as often, and is a single part vs many modules01:10
rick_h_there's a manner of scale when you consider managing a couple of versions of one dep, vs couple of versions of many deps01:10
rick_h_and I don't have the same issues of making existing code visible to teams, updates sync'd, etc with YUI base as I do any modules01:10
lifelessI don't follow those issues; sorry to keep doing this - but can you expand on them please?01:11
rick_h_sure, so let's agree that everyone is using YUI and knows where it is. If they need JS, they know what to get and where to go get it01:12
rick_h_and it's a pull only use01:12
rick_h_if a new version comes out, they pull it down01:12
lifelessthe base YUI ?01:12
rick_h_right01:12
lifelesswhy is it pull only? Is it bug free?01:12
rick_h_well, sure there are bugs, and you go through their system, get them updated, pull the new release. I've not seen us keep a patch against YUI anywhere so far01:13
rick_h_not saying it's not possible, but not something experienced in work so far01:13
rick_h_so for the base YUI it's "usually" a pull only of maybe 2 or 3 versions (current running, next version to test with, keeping an eye on a future preview release)01:14
rick_h_while wigets/gallery code needs to be made visible to teams. "Is there a module for this?", they need to be able to update those, push changes without breaking backward compatiblity for other users, and there's many more as teams develop new JS modules01:15
lifelessI don't get the difference01:16
lifelesswhen you say visible to teams, is YUI base not visible to teams?01:16
rick_h_and then there's infrastructure, we don't test YUI downloads, but we'd have to test and document gallery items/etc01:16
rick_h_YUI base is because they all know where to look01:16
rick_h_how many canonical teams know of the various YUI modules other teams have written01:16
rick_h_?01:17
rick_h_this is the main reason I hope to one day get together a centralized area for YUI modules done like the kitchen code on the -tech mailing list recently01:17
rick_h_landscape mentioned a nice mock tool they use in testing, but I've got no idea that exists to be able to share/reuse that01:18
wgrantwallyworld: Could you find some time to review https://code.launchpad.net/~wgrant/launchpad/edit-stacked-information-type/+merge/114767?01:18
wallyworldsure01:18
lifelessrick_h_: I don't understand why modules we'd handle ourselves but base we'd handle by collaborating closely with upstream01:18
lifelessrick_h_: I'm sure there is a key thing I'm missing :(01:18
rick_h_I'd think it was purely that we're more hands on with modules, while 99% of the time hands off on YUI base01:19
rick_h_99% of the time YUI base is r/o while modules we dev are very write heavy with docs/tests/sharing01:19
lifelessso you're saying that we can block a project waiting for a fix to yui base, but we want to run a local fork for changes to a module (whether we created the module or not)01:20
rick_h_you'd use memcache all the time for very read heavy uses, but would you stick your writes in there? :)01:20
lifelessrick_h_: thats called 'redis' :P01:20
StevenKwgrant: Bah, I keep distracted by my QA01:20
rick_h_well, I think we'd look at a system to carry a temporarity patch or else build a module that patched it for us01:21
rick_h_gallery-patch-bug1234 and then use that until the next YUI version came out with the fix01:21
rick_h_and then all of our teams would gain access to that patch module while we worked with upstream01:21
wallyworldwgrant: can you add a screenshot to the mp?01:21
lifelessrick_h_: so while I accept that it may happen *more often*, that seems like a reason to run the same system as yui base to me: so that there is no surprise for dealing with the time when yui base is the thing that needs fixing.01:22
lifelessrick_h_: by run the same system I mean the dep/deploy/dev story around yui modules/yui base.01:23
rick_h_lifeless: right, and that's fine. However, from my conversations, the dream of a shared JS area is so far away, I'm working around that for the time being01:23
rick_h_and trying to work within the current dev environment to get LP caught up to the latest YUI, make it easier to test new versions, and keep the gallery modules we've subsumed where they are for the moment01:23
lifelesssure01:24
wgrantwallyworld: It looks like https://code.qastaging.launchpad.net/~canonical-launchpad-branches/lp-production-configs/lalala/+edit but with fewer information type choices01:24
lifelessnote that nothing you've said above speaks 'shared JS area' to me.01:24
rick_h_now, when we get to a good answer for the gallery code, I'm all for revisiting the YUI base story into that lifeless01:24
wgrantwallyworld: The UI hasn't changed. Just the set of choices01:24
lifelessso theres still at least some causal link you need to help me understand :)01:24
wgrantwallyworld: In general the only private stacked-on branches will be Proprietary in Proprietary projects, so there'll only ever be one choice.01:25
rick_h_lifeless: sure, so I don't see a good way to manage and expose modules built by different teams than having a shred JS setup of some sort. Right now I'm told we're to try to push stuff up to the YUI gallery, but as we can't use that to pull/download from at the moment, it's a push only setup01:25
wallyworldwgrant: ah right thanks. i had just read the covering letter and didn't quite grok the change01:25
lifelessrick_h_: why can't we use that to pull or download from ?01:25
rick_h_lifeless: well currently LP uses I think 2 gallery components, and we don't want to pull down all of hte gallery (size/complexity), and we need to be able to get whatever code into our download-cache, so it would be a pain to keep that up to date/in sync01:26
lifelesshow big is all of the gallery (size on disk, git clone time)01:27
rick_h_lifeless: we also only want the build files, not the src/docs/etc.01:27
wgrantwallyworld: It both reduces the amount of code we have for this unlikely case, and allows users to fix conflicts if they arise (eg. because the stacked-on branch changes type)01:27
rick_h_lifeless: the git clone is approx 64MB01:27
rick_h_lifeless: the build directory of only production files is 21M01:28
lifelessrick_h_: you proposed cloning it al for a shared area, but that will also require devs to have a full copy etc, so I don't understand why you'd say we *don't want to pull...*01:28
wallyworldwgrant: i think though we decided to disallow a stacked on branch changing type to private if a public branch was stacked on it?01:28
rick_h_lifeless: right, as I said, we've not come to a satisfactory answer yet on that front01:28
wgrantwallyworld: Ah, yes, so that particular case probably can't happen.01:29
rick_h_lifeless: and while a dev can take a download hit, doing it for every build/etc seems something to avoid01:29
lifelesssure, but why would we do it on every build/etc ?01:29
lifeless we don't bzr pull on every build/etc.01:29
rick_h_lifeless: but agreed, there's work to be done on that front which is why I'm putting it off :)01:29
lifelessI mean.01:29
rick_h_lifeless: true, I guess download-cache is updated, but not redownloaded01:29
lifelessYou'd have to *write code* to pull etc on every build.01:29
rick_h_lifeless: so we'd have to have something like that for the gallery/JS code01:30
wallyworldwgrant: with the hidden types code, will the order of the radio buttons be messed up ie the (un)embargoed security choices come at the end01:30
lifelesshere are the computed (vs root cause) constraints I know of that are imposed on us in this area:01:30
wallyworldwgrant: which would be inconsistent with elsewhere01:31
lifeless - be able to build and deploy LP without internet access01:31
lifeless - be able to do buildbot tests likewise01:31
lifeless - be able to inspect all changes happening to code that we execute in trusted zones - e.g. js that runs in our browser windows, python on the sever etc.01:31
wgrantwallyworld: getInformationTypesToShow returns a set of allowed. setUpWidgets then iterates through the vocab, picking out items that are in the allowed set. So order is retained.01:31
lifelessI think pretty much everything else is up for grabs01:32
wallyworldwgrant: cool, thanks. just wanted to double check as i couldn't recall the exact implementation detail01:32
rick_h_lifeless: ok01:32
wgrantThat implementation detail only landed three hours ago, so you're forgiven :)01:32
wallyworldwgrant: and the diff didn't really show the full picture01:33
wallyworldwgrant: are we missing a test?01:33
wgrantwallyworld: I think so. I couldn't find one for the checkbox override.01:34
wgrantec2 will tell me for sure01:34
wallyworldto check that security is allowed branches linked to security bugs01:34
wgrantOh01:34
wgrantThere's one for that01:34
* wgrant hunts01:34
lifelessrick_h_: how big is a tar of all of yui3 gallery (not base) ?01:34
wallyworldregardless of the stacked on type01:34
rick_h_lifeless: I'll pull together some notes on ideas and why don't we schedule a time to sit down and look it over.01:34
wgrant    def test_private_branch_with_security_bug(self):01:34
wgrant        # Branches on projects that allow private branches can use the01:34
wgrant        # Embargoed Security information type if they have a security01:34
wgrant        # bug linked.01:34
rick_h_lifeless: just the build or the whole thing?01:34
lifelessrick_h_: something suitable for devs to have, buildbot to have, and prod to have.01:35
wallyworldwgrant: ok, thanks. r=me01:35
wgrantwallyworld: Marvellous. Thanks.01:36
lifelessrick_h_: and is there a programmatic interface to do releases of individual yui modules? (are they separately versioned etc) ?01:36
rick_h_lifeless: yes, they use an ant based build system and do weekly releases that are served01:37
rick_h_so you can specify "load the gallery from date 2012-07-12"01:37
rick_h_in your yui config01:37
lifelessrick_h_: what granularity does that have ?01:38
rick_h_lifeless: only a weekly build01:38
lifelessnot frequency, granularity :)01:38
=== Ursinha` is now known as Ursinha
lifelessis it all of gallery, or per-module ?01:38
rick_h_lifeless: it's all the repo01:38
rick_h_lifeless: all the gallery01:38
rick_h_lifeless: I'm not sure if you can specify it per module, you might be able to but not tried it01:38
=== Ursinha is now known as Guest53271
lifelessok01:38
lifelessso, here are some questions we might want to answer01:39
lifelessrick_h_: oh, how big was that allofgallery thing ? Are you finding out ?01:39
lifeless - how big is allofgallery01:39
rick_h_lifeless: ah sorry, got distracted01:39
lifeless -> would e.g. daily snapshots into the download cache be a significant burden?01:40
lifelessrick_h_: you said something earlier that each module has multiple versions, is that right? so you can ask for a specific one that is known to work ?01:40
rick_h_lifeless: so build tar/gz is 3.4M01:41
rick_h_lifeless: yes, when you write a module you specify a version string, but we've not used it so far01:41
lifelessso the weekly snapshot includes an unversioned tip of the module + all the prior still supported releases?01:41
lifeless(that yui host)01:42
rick_h_lifeless: so the weekly snapshot builds the tip of all modules, and serves it via a new url specific to that build date. Each build is a new url.01:42
lifelessok, so you *can't* stick to an arbitrary old version trivially ?01:42
rick_h_I know and have used that to go back in time for the whole gallery, but not seen how to use that on a per-module basis01:42
lifelessrighto.01:43
rick_h_lifeless: I don't know, will look into it01:43
lifelessindeed thats a question too01:43
lifelessI mean, if you only get snapshots-of-tip granularity, a shared JS area for all of Canonical would likely be not an improvement over working directly upstream01:43
rick_h_lifeless: true01:44
lifelessbecause you'd still have folk sitting on a known-good, and then upgrading many bits at once and dealing with the fallout.01:44
lifelessunless we engineer something special using introspection etc; but at that point we could do that upstream and then work upstream with less friction.01:44
lifelessI don't think we have quite enough knowledge yet to progress this further01:45
lifelesswhat other questions should we queue up01:45
rick_h_lifeless: right01:45
lifeless - how do other YUI users deal with this?01:45
rick_h_well, the big questions are is this feasible? will teams work together and want to do so. How will it be managed, and how to get this setup for local dev.01:46
lifeless - how often would we really be updating the gallery cop(ies) we have - assume we update to a) get bugfixes b) to work with a new YUI and c) to have newer versions of modules we're contributing to.01:46
rick_h_lifeless: honestly I'm not sure. While I know teams using it, I've not seen places doing a lot of cross-team work like we're looking at01:46
lifelessrick_h_: I haven't seen any need for cross-team stuff yet, in all that you've discussed.01:46
lifelessrick_h_: I've seen you propose it :)01:46
lifelessrick_h_: cross team work is super hard01:47
rick_h_lifeless: well that's the point. Is that with all of this, we're worried about a single gallery build breaking a team using an older version that missed something that changed01:47
rick_h_which would mean another team submitted a fix/update for a module that caused it to change01:47
* rick_h_ is missing how this isn't cross team 01:48
lifelessrick_h_: I think you have a hidden assumption somewhere.01:48
lifeless:)01:48
rick_h_lifeless: more than likely01:48
lifelessuhm, its not cross team because you can (naive, may need tuning): drop yui-gallery-XYZ.zip into download cache, pull that out like we were yui base-XYZ.zip, drop in additional single-module zips for things we fork (so they are visible)01:49
lifelesssetup and document how to do it a way for folk like e.g. sinzui or wgrant or $anyone to do a new snapshot as needed.01:49
lifelessnone of that implies shared cross team stuff; the place for collaboration is yui gallery upstream.01:50
rick_h_lifeless: sorry, but I really need to wrap up. It's late here and I'm hoping to unblock buildbot before bed01:50
rick_h_lifeless: ok, I see01:50
lifelessOk, short term suggestion: revert it back to what it was before.01:50
StevenKA revert is the easiest.01:50
rick_h_lifeless: ok, I'm hoping to get the ok to push it with http://paste.mitechie.com/show/735/ as that moves the conflicting point out to where it really belongs01:51
StevenKrick_h_: I'm happy to revert your revision out if you want to crash.01:51
rick_h_StevenK: ok, if that's easiest will do then thanks. I'll revisit the buildout setup and adjust from there then and see if I can come up with a place for the helper code to assist in getting updates going01:52
rick_h_s/will do/to do01:52
rick_h_ugh01:52
lifelessrick_h_: From what I've heard so far the canonical specific shared area is entirely orthogonal to handling yui + gallery + odd forks of gallery modules effeciently for LP01:53
rick_h_thanks StevenK and wgrant for the help and lifeless for the discussion. I've got some tweaking to my long term vision to work on01:53
rick_h_lifeless: right, I'm just trying to start with the goal of updating YUI in LP and leaving the gallery/etc for a later date01:54
lifelessrick_h_: if LP can do it efficiently with a direct relationship with upstream, that provides a template for other Canonical projects to also work with it efficiently and collaborate with upstream01:54
rick_h_lifeless: agreed, and we've started that process. We have our first module inthe gallery yesterday, and I've been working to facilitate discussion with the PES team and their modules and upstream01:54
lifelessI think - I'm sure - that its easier to replicate a template of working with an established group that setting up a new group which would amongst other things have to broker with upstream.01:54
rick_h_lifeless: lifeless but as working with upstreeam doesn't help us at all in our deploy/serving area, I held out a vision of a single 'canonical-gallery' at some point in the future (loooong future)01:55
lifelessrick_h_: (discussion) - anytime. sorry I had to ask so many questions :)01:55
lifelessrick_h_: from the sounds of it though, a canonical gallery wouldn't help either.01:55
rick_h_lifeless: no it's good, it's going to focus me on thinking more of the tar/offline mode than I originally was01:56
lifelessrick_h_: also note that anything on a new domain name will make first-view loads for LP slower.01:56
rick_h_lifeless: right, it has weak spots as well01:56
lifelessrick_h_: about 3 seconds slower.01:56
lifelessrick_h_: (well, 3-10, but definitely 3).01:56
rick_h_ok, you know better than I on that front01:56
lifelessSSL :)01:57
StevenKrick_h_: Revert is landing.01:57
rick_h_3s for a SSL handshake to a second domain?01:57
lifelessrick_h_: you can test - add a 300ms latency to your outbound packets, see the world the way the non-Europe folk do :)01:57
rick_h_StevenK: ty much sir01:57
StevenKrick_h_: Easily.01:57
rick_h_ok, I'm spoiled from my network/location :)01:57
lifelessrick_h_: http://wiki.bazaar.canonical.com/SmartPushAnalysis1.4#Network_connection01:57
StevenKrick_h_: Move to Sydney/Melbourne/Christchurch and use LP.01:58
rick_h_ok, so as I said, I need to refocus the long term goal for sure, but it is a bit different from the current issue of 3.5 on LP and making sure we don't spend a year getting to 3.6 after it's out in a month/two01:58
lifelessyah01:58
lifelesstotally.01:58
StevenKBAH01:59
* StevenK stabs PQM, and adds [testfix]01:59
rick_h_StevenK: heh, I asked deryck if anyone's complained on the combo loader and we decided if the aussies didn't raise a fuss it must be working out ok :)01:59
lifelessFWIW I'd use the current approach which handled the 3.4->3.5 OK AIUI, and look at rearranging as part of doing the gallery.01:59
rick_h_lifeless: rgr01:59
lifelessrick_h_: I haven't looked up your mail about combo loader stuff yet either, I've been sick this week01:59
StevenKrick_h_: I think the combo-loader needs to actually cache the files01:59
lifelessam only just on deck now.01:59
rick_h_lifeless: not a problem, I figure with it being Friday for me tomorrow I'd not turn on a FF then until next week anyway02:00
lifelesscool, I'll look for it monday02:00
lifelessrick_h_: is the combo loader oops enabled, and do we get perf information out of it ?02:00
rick_h_StevenK: oh, I thought webops copied over the way the apache cache/etc is setup from U1/Landscape. Not peeked at it tbh02:00
StevenKrick_h_: Revert landed as r1561902:01
rick_h_StevenK: ty02:01
rick_h_lifeless: no, convoy isn't oops enabled currently. I'd assume any perf info would be normal apache request/logging/etc02:01
wgrantStevenK: It's pretty aggressively cached already, I believe02:01
wgrantYeah02:01
wgrantCache-Control: public,max-age=518400002:01
StevenKwgrant: Oh? I thought the caching was non-existant.02:01
rick_h_the only issue is that each deploy breaks the cache02:02
StevenKLike it should.02:02
rick_h_since the url changes for deploy purposes02:02
wgrantStevenK: It's probably done by the Apache config, as rick_h_ suggests02:02
rick_h_right, just saying that might make it seen less cached with frequent deploys going on02:02
rick_h_s/seen/seem02:02
lifelessbtw02:02
lifelessthis is a reason to have things like yui not part of lp's build area at all02:03
lifelessversion them entirely independently02:03
lifelessmay require some assembly.02:03
rick_h_lifeless: agree, but definitely some assembly02:03
rick_h_but again, perfect is the enemy of good02:04
rick_h_step by step02:04
StevenKwgrant: Join added. Now how to fix the other bug.02:04
lifelesstotally ;)02:04
rick_h_ok, night all, thanks again and sorry to fubar buildbot on you guys02:05
lifelessman, this is ripe: http://arstechnica.com/tech-policy/2012/07/verizon-net-neutrality-violates-our-free-speech-rights/02:05
lifeless"Broadband networks are the modern-day microphone by which their owners [e.g. Verizon] engage in First Amendment speech"02:05
* StevenK peers at buildbot02:06
lifelessuhm, nothing that my ISPs have *ever* said to me has been even slightly protected speech. Or would have been had I lived in the US.02:06
StevenKbzrlib.errors.InvalidHttpResponse: Invalid http response for https://xmlrpc.launchpad.net/bazaar/: Unable to handle http code 502: Bad Gateway02:06
StevenKHmmm, at least its not my fault.02:06
StevenKlifeless: At least it isn't RIPE.02:07
StevenKwgrant: I can't say Branch.id IS IN () without toys being depramed, so what was your thought there?02:12
lifelessBranch.id.is_in(...)02:12
StevenKlifeless: Obviously. You're missing some context.02:14
wgrantStevenK: Hm, possibly just exclude the branch query entirely in that case, then.02:33
StevenKwgrant: But wasn't the bug query written in such a way that it would deal with no bug ids being passed, or am I on crack?02:34
wgrantStevenK: Yes.02:35
wgrantStevenK: Because in the case that no bug IDs were passed, it was correct behaviour to just operate on every bug.02:35
wgrantBut that's not correct any more.02:35
wgrantSince you pass in a list of artifacts that you want to operate on.02:35
wgrantNot just a list of bugs.02:35
wgrantSo if I pass in only bugs, it should only work on those bugs.02:36
wgrantIf I pass in only branches, it should only work on those branches.02:36
wgrantIf I pass in a few of each, it should work on those bugs and those branches.02:36
wgrantIf I don't pass in a list of artifacts, it should work on all bugs and branches that satisfy the other filters.02:36
StevenKwgrant: But run() had if self.bug_ids <filter on bugs> else: every other filter02:39
wgrantStevenK: Yes. Is that odd?02:40
wgrantBecause it didn't support branches before this, the logic was:02:40
wgrantIf I pass in only bugs, it should only work on those bugs.02:41
wgrantIf I don't pass in a list of artifacts, it should work on all bugs that satisfy the other filters.02:41
wgrantfin02:41
StevenKwgrant: Then just the join is needed02:46
wgrantStevenK: Howso?02:46
wgrantStevenK: Currently if I pass in a list of bugs, it will work on those bugs and *every* branch.02:47
wgrantWon't it?02:47
StevenKwgrant: http://pastebin.ubuntu.com/1089151/ but it's a bit messy02:53
wgrantStevenK: I'd invert those flags, but something like that, yeah02:54
wgrantStevenK: Alternatively, start bug_filters and branch_filters off empty, rather than with the visibility filter02:54
wgrantStevenK: Keep the branch_ids/bug_ids/else code the same.02:55
wgrantStevenK: Then wrap the two queries at the end in an 'if bug_filters' and 'if branch_filters', and insert the visibility clause there02:55
StevenKwgrant: http://pastebin.ubuntu.com/1089155/02:58
wgrantStevenK: You should probably put *_invisible_filter inside the conditional blocks, and maybe even inline them if they fit nicely.02:59
StevenKwgrant: http://pastebin.ubuntu.com/1089206/04:12
wgrantStevenK: Looks reasonable. Does it work?04:13
StevenKThat's a seperate problem.04:15
wgrantHeh04:15
StevenKwgrant: Spot the glaring error in the branch query.04:17
wgrantStevenK: Hah04:17
wgrantIndeed04:17
wgrantfindspec is in the wrong place04:18
StevenKAnd no .using()04:18
wgrantYeah, but all the important bits are there :)04:18
wgrantJust not the syntax...04:18
StevenKwgrant: As an added bonus, http://pastebin.ubuntu.com/1089218/ passes tests.04:22
wgrantStevenK: Did you write new tests?04:22
wgrantTo catch the issues?04:23
StevenKNope04:23
StevenKWell, not yet.04:23
StevenKwgrant: A great deal of the tests just pass in bugs, so I'm not sure why they don't tickle what afflicted qas.04:24
wgrantStevenK: Because they don't check that the branch subscriptions survive04:25
wgrantBecause they only care about bugs.04:25
StevenKwgrant: But the query was running for *ages*04:25
StevenKSo why don't the bug tests show that ...04:26
wgrantStevenK: Because sampledata doesn't have hundreds of thousands of branches and millions of subscriptions04:27
wgrantSo the query will take milliseconds.04:27
StevenKOh. Right.04:27
StevenKwgrant: So we want to sprinkle in StormStatementRecorder or what do you want to do?04:28
wgrantStevenK: We want a test that tries to remove subscriptions from a set of bug IDs, and checks that those subscriptions are gone but other bug and branch subscriptions remain.04:29
wgrantAnd the same but for branch IDs.04:29
wgrantThere are probably existing tests to whichyou can add a couple of lines to do this.04:29
StevenKwgrant: Right, http://pastebin.ubuntu.com/1089239/04:40
StevenKwgrant: I get two failures if I shelve the changes in sharingjob04:40
wgrantGreat04:41
StevenKwgrant: Commit, push and force wallyworld to review it since we effectively wrote it together?04:41
wgrantPlus he's OCR04:42
StevenK% bzr log | head -n 8 | tail -n 204:43
StevenK  Fix RASJ to deal with branches correctly without spawning a query that will04:43
StevenK  take approximately three eons to complete.04:43
wgrant(and do the wrong thing)04:43
* StevenK stabs Firefox for crashing04:45
wgrantStevenK: Crashing, or the DnD hang that sprung up in the last major release?04:46
StevenKThat looked like a crash, the window disappeared followed by the process04:47
wgrantAh04:47
StevenKwallyworld: O HAI. https://code.launchpad.net/~stevenk/launchpad/fix-rasj-and-branches/+merge/11477905:00
StevenKwgrant: http://pastebin.ubuntu.com/1089253/ is that other thing I'm working on.05:08
wgrantAh, I;ve solved commercial subscription expiry too.05:20
StevenKwgrant: Do you think I'm missing something from my branch?05:35
wgrantStevenK: Which one?05:37
StevenKwgrant: [15:08] < StevenK> wgrant: http://pastebin.ubuntu.com/1089253/ is that other thing I'm working on.05:39
wgrantStevenK: Rather hard to say. Does it work?05:51
StevenKwgrant: test_bugnotification works at least05:51
wallyworldStevenK: hi, just got back from school pickup05:53
wallyworldbad traffic today in the rain :-(05:53
StevenKBright, sunny and 23degC here today05:53
wallyworldStevenK: we will conflict. i also have removed those unused imports, but yours will land first since i'm just completing the covering letter for mine05:55
wgrantDreary, dismal and 12degC or so :)05:55
StevenKwgrant: So normal Melbourne weather then.05:55
wgrantHey, from what I've heard SE QLD has been pretty similar for the last week...05:55
wgrantAlthough I guess warmer :)05:56
StevenKwgrant: Did the Victorian goverment write a stern letter asking for Melbourne's weather back?05:56
wgrantStevenK: No, that wouldn't involve building more jails or decomissioning educational institutions :)05:57
StevenKHaha05:57
StevenKMaybe your government needs to turn the educational institutions into jails.05:57
wgrantThat approximates their current policy.05:58
StevenKHaha05:58
wallyworldStevenK: looks nice, r=me05:58
StevenKwallyworld: At least you weren't sobbing saying "RBSJ looked nice until you touched it inappropiately and renamed it." :-P05:59
StevenKsteven@undermined:~% uptime06:00
StevenK 16:00:06 up 16:50,  4 users,  load average: 3.71, 3.23, 2.1506:00
StevenKSigh06:00
wallyworldStevenK: nah, all good. i started out with a generic job but at the time it was messy so just got bugs working.06:00
StevenKtest_sharingjob needs to good spring clean at some point06:01
wgrantEverything we've touched does :)06:01
wgrantA lot can be cleaned up once sharing is fully deployed06:01
wallyworldand some of the other sharing tests need XXXs removed and (likely) some branch tests added06:01
StevenKApparently, reading from USB is *hard* or something.06:01
* cjwatson celebrates his 100th LP branch landing06:59
wgrant:)06:59
wgrantPre-LP me has competition :(06:59
cjwatsonYeah.  Little bit of a way to go yet.07:00
nigelbdammit07:01
nigelbwait07:02
nigelbcjwatson gets on a different list.07:02
nigelbwgrant: nah, you don't.07:02
nigelbunless I boot up my vm and start contributing.07:02
wgrantHeh07:03
adeuringgood morning07:49
jmlcjwatson: congratulations!08:09
jmlcjwatson: how are you celebrating?08:10
cjwatsonjml: coffee08:23
cjwatsonand more branches :)08:23
jmlcjwatson: coffee is fantastic, wonderful and slightly bitter. What better way to celebrate landing a hundred Launchpad branches?08:24
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring | Firefighting: - | Critical bugs: 4.0*10^2
jamanyone have familiarity with buildout? I'm trying to do a bootstrap using python-2.7, and08:56
jam it is telling me 'could not install pyinotify-0.9.3' but there is no other error, and I can see the .tar.gz available08:56
mgz...the windows installers use it!08:56
jammgz: yes, and we are super happy about it there :)08:57
* mgz doesn't have familiarity of it either :)08:57
czajkowskiwgrant: have you ever seen an error message like this when a user tries to log in. https://answers.launchpad.net/launchpad/+question/20303209:29
wgrantczajkowski: I reassigned that to SSO a couple of minutes back. It usually means they refuse to accept cookies09:31
czajkowskibah that will teach me to open my work in tabs and come back to things09:31
czajkowskiwgrant: cheers09:31
=== almaisan-away is now known as al-maisan
Tribaalhi all10:41
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== bac changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring, bac | Firefighting: - | Critical bugs: 4.0*10^2
=== almaisan-away is now known as al-maisan
jamjelmer: ping13:43
jelmerjam: pong13:44
jamjelmer: sorry for the delay, otp, but I'd like to have you pick up some of the 'get launchpad running on python-2.7 on Lucid'13:54
jelmerjam: sure, which things in particular?13:55
jamright now python-2.7 is segfaulting, and we probably need to bring in barry13:56
jelmerjam: okay13:58
jamjelmer: I guess the other option is doku, but I think barry has done more on that particular ppa14:00
jelmerjam: still no idea on what's causing the segfault?14:00
jamjelmer: 'import ctypes' seems to be a pretty common trigger14:01
jamit is failing right now trying to build pyinotify14:01
jambut I notice that there is a 'import ctypes' in there.14:01
jamI'm pinging barry in #canonical14:01
jelmerwhat do we use pyinotify for anyway?14:01
jamalso, jelmer, mgz, vila: You probably want to keep in touch with eachother while I'm gone. I imagine at least doing the standup. (I realize vila is gone next week)14:01
jamjelmer: it doesn't really matter, ctypes gets imported at other times.14:02
jambzrlib probably improts it, etc.14:02
jamjelmer: not sure if we have to have ctypes, but segfaulting regardless is bad :)14:04
jelmerjam: does that mean that even "python -c 'import ctypes'" segfaults?14:07
jamjelmer: yes14:08
jamI did just try that directly14:08
mgzwe can do a jelmer/mgz standup on tuesday14:08
mgzperhaps at 9pm14:08
jammgz: heh, whatever works for you :)14:08
jamyou guys work all day long anyway, right?14:09
mgzat least some days I stop at 6 :)14:10
mgzI have lp on lucid up and working and the ctypes crash from the ppa,14:18
mgzso should be able to continue from where you are.14:18
mgzis there a neat way of getting gdb to look in the right place for src?14:21
mgzgiven it has paths like the following for ppas:14:21
mgz/build/buildd/python2.7-2.7.2/Modules/_ctypes/libffi/src/closures.c14:21
cjwatsonbased on the similar python3.2 failure a while back I suspect it's a pretty easy build fix.14:22
mgzsure, I'm leaving that to barry, just following along at home :)14:23
czajkowskijelmer: can you please follow up on the RT I gave you yesterday when you get a chance being poked for an update on the ppa14:41
jelmerczajkowski: ah, yes, sorry15:00
* jelmer is having an unproductive day15:00
czajkowski:(15:10
czajkowskijelmer: need the link ?15:11
jelmerczajkowski: no, I still have it open here; thanks though15:12
* mgz sends jelmer some cuddles15:12
jelmerthanks  mgz15:20
=== al-maisan is now known as almaisan-away
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: bac | Firefighting: - | Critical bugs: 4.0*10^2
=== salgado is now known as salgado-lunch
bacjcsackett: darn, someone beat me to it:  https://launchpad.net/jujube17:34
=== salgado-lunch is now known as salgado

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