/srv/irclogs.ubuntu.com/2011/11/29/#launchpad-dev.txt

StevenKRight00:00
pooliedone00:00
StevenKWe have to wait for abentley's rollback to hit qas too00:00
wgrantNope.00:01
wgrantWe've turned the feature off on production.00:01
StevenKSo we can deploy to 14399, or would you prefer to wait?00:01
wgrantI'd prefer to deploy ASAP.00:02
wgrantThe two rollbacks are qa-ok if they only affect the disabled feature.00:02
StevenKThere's two rollbacks? :-(00:02
wgrantYes.00:03
poolieis it just me or is there something strange on lp where the font size varies on some pages?00:28
pooliemaybe it's just my browser00:30
=== Ursinha_ is now known as Ursinha
pooliehm01:01
pooliei'm going to add a timeout to bzrlib tests01:01
poolieit's pretty generous, 300s01:01
pooliei wonder if this will hurt lp01:01
poolie300s per test01:01
poolie*600s01:01
lifelesshow are you going to do this?01:02
pooliehttps://code.launchpad.net/~mbp/bzr/test-timeout/+merge/8355901:07
poolieit crashes the whole test run01:07
poolie:/01:07
poolieprobably better than hanging01:08
pooliewhat do you think/01:11
poolielp could turn it off01:11
poolieor we could have it off by default01:11
lifelessinteresting01:11
lifelessI have a few different angles here01:11
lifelessfirstly lp - you can check the longest test run by introspecting a subunit stream from a failed ec2 run01:12
lifelesslongest duration of a single test, I mean01:12
poolietrue01:12
lifelessadd 50% or so and we're safe.01:12
lifelesssecondly, I think this would be good to put into testtools and/or fixtures01:12
lifelessit has no need to be bzrlib specific01:12
lifelessand its really quite nice01:12
pooliealso true, i thought about that too01:13
poolieit is a bit abrupt01:13
lifelesse.g. fixtures would happily accept a timeout fixture which alarms if not turn down in time01:13
pooliebut i don't see any better options01:13
poolieyep01:14
lifelessyou can use signal.signal to inject an exception when SIGALARM is received, I suspect01:14
pooliewe don't currently depend on fixtures01:14
pooliewe could01:14
poolieprobably yes01:15
pooliethat could make it tidier01:15
poolieat the expense of perhaps not terminating in some cases01:15
lifelessso the contract could be TimeoutFixture(duration, callback)01:15
poolieeg if you are stuck in C code01:15
lifelessperhaps yes01:15
poolieas we actually were in the case that motivated me to write this01:15
pooliemm01:15
poolieit might still get it unjammed01:15
poolieit could be an option01:15
poolieif you review https://code.launchpad.net/~mbp/testscenarios/module-scenarios/+merge/80287 i will be more likely to send you more patches :)01:16
lifelessanyhow those are my thoughts - share the niceness more widely, and check the longest run LP01:16
lifelesshas01:16
lifelesspoolie: its right up on my list actually, I nearly got to it yesterday.01:16
poolie"you're boring me... BANG"01:21
poolielifeless, ok https://code.launchpad.net/~mbp/python-fixtures/timeout/+merge/8372101:59
* lifeless cues the on hold music02:00
pooliefor the diff?02:00
pooliewhat's up with the longpoll stuff for that?02:00
lifelessno, for you :P02:00
pooliei see a lot of noise about it02:00
poolieoh ok02:00
lifelesswe're about to go live02:00
lifelessanyhow, immediate feedback is that this is much more than test specific; (haven't seen the diff yet)02:01
poolieoh?02:01
lifelesswell its a good generic 'I'm doing something and I might not come back' facility, wrapped up in a context manager02:02
lifelessso I'd like to drop the focus on tests in the prose around it02:02
pooliemm02:02
pooliei see your point02:02
pooliei think it is really for emergency use02:03
lifelessyour readme says TimeoutFixture02:03
pooliei wouldn't encourage using it widely02:03
lifelessyour body tests TestTimeout02:03
poolieuntil for instance it copes properly with several things happening at once02:03
poolieyou'reright02:03
lifelessI prefer the former (and jml is arguing for just Timeout, for this case)02:03
lifelesspoolie: I think its fine to have something with caveats02:03
lifelesspoolie: the caveats are real, and devs can make informed choices.02:04
poolieyou're right that aside from that it is not test specific02:04
lifeless211+ import pdb;pdb.set_trace()02:04
pooliejust 'Timeout' is ok with me02:05
poolieheh02:05
lifelessis possibly not intended to be merged02:05
lifelessits amazing how loudly cats can snore02:09
pooliei don't really want to fix that in this branch :)02:09
poolieor indeed at all02:09
lifelesscat snoring? Indeed :)02:09
poolieso given all this, perhaps the sample data does not need to be tests but just functions02:10
lifelessmake sense to me02:10
pooliethat's quite nice they'renot test specific02:12
poolieactually that's more testable not going through the double-testing layer too02:19
poolieok re-pushed02:24
lifelesspoolie: I wonder whether a callback is more useful than an exception02:33
lifelesspoolie: e.g. a trivial callback can raise, a different one could log a marker about how far through (whatever task) things were when the alarm triggered02:34
lifelessperhaps I'm overthinking this02:35
wallyworld_huwshimi: i've updated the demo to use local storage to persist changes between page refreshes, and added in editing on the details page. let me know if there's anything else02:45
huwshimiwallyworld_: Awesome, will do.02:45
poolielifeless, maybe so02:50
poolieperhaps that can wait until someone has a need for it02:50
lifelesswgrant: pop quiz; lp_serve and codehosting sections in schema.conf, both run as same uesr right ?03:05
wgrantlifeless: They should, yes.03:08
wgrantlifeless: Check the owner of their existing OOPSes?03:09
huwshimiDoes anyone want to help me think about bug statuses/colours/grouping? Voice, or IRC if multiple people are keen.03:20
huwshimiwgrant, poolie: I think both of you have discussed colours etc on IRC in the past03:20
huwshimiwait, that should have been bug status colours and status grouping03:22
wgranthuwshimi: Sure.03:23
wgrantHopefully poolie's around too.03:24
huwshimiwgrant: OK thanks, let's give it a minute and see if poolie wants to join in03:25
huwshimiwgrant: Or I can just ramble here03:25
lifelesshere is good03:28
huwshimisure03:29
huwshimiSo, we're going to try out moving the status into the top line of the new bug listings. We'll sit the status next to the importance and style it similarly to the status. We need to figure out some colours for statuses. So...03:31
huwshimiThe colours for the importance will probably stay the same (at least at this point). Colours do a good job of signifying different types of importance.03:31
huwshimiEven though importances are really one type of "thing"03:32
huwshimiWe don't want the status colours to fight with importances so we could make them tones of one colour, or we could group statuses so that there are only a few colours03:33
huwshimiThe status groups I came up with were the following:03:34
huwshimiInitial (New, Incomplete, Opinion, Confirmed, Triaged)03:34
huwshimiRejected: (Invalid, Won't Fix)03:34
wgrantOpinion is Rejected03:34
huwshimiwgrant: Ah thanks03:34
wgrantTriaged is not Initial.03:34
huwshimiThe other two groups were: working (In Progress) and done (Fix Committed and Fix Released)03:35
wgrantRight.03:36
huwshimiwgrant: Would you break up that inital group? I'm mostly trying to identify a group of statuses that are essentially the same thing03:36
wgrantTriaged certainly needs to be separate.03:36
wgrantI don't know about the others.03:36
huwshimiwgrant: So in a workflow it probably wouldn't move between statuses in the same group03:36
wgranthuwshimi: Fix Committed goes to Fix Released, New to Incomplete.03:37
huwshimiwgrant: Ah you're right03:38
wgrantFix Committed, Won't Fix, Opinion and Confirmed have no good reason to exist.03:38
lifelesshuwshimi: 'same thing'03:39
lifelesshuwshimi: have you seen the issue tracker draft spec ?03:39
huwshimilifeless: Yeah, I was just looking at that03:40
huwshimiwgrant: In a sense could you say that In Progress and Fix Committed are kind of the same thing?03:40
lifelesshuwshimi: there is indeed an effort ongoing to reduce the number of statuses03:40
huwshimiwgrant: They're both a "this bug is being worked on" statuses, just with a different tense03:40
lifelesshuwshimi: it is perhaps tricky to do just now- because of the ongoing debate about the value of the nuance03:41
huwshimilifeless: Yeah, in some ways this might be a step towards that (having similar colours)03:41
lifelesshuwshimi: we'd expect many 'new->incomplete', 'new->opinion|invalid|wontfix', 'new->triaged' transitions03:41
lifelessmany projects don't use in-progress /fix committed at all AFAICT03:42
lifelessetc03:42
wgrantI think most projects would use In Progress.03:42
wgrantFix Committed is probably rare.03:42
lifelesswgrant: in progress is bit twiddling overhead03:42
huwshimilifeless: I guess the thing here is that the colours won't force anyone into any kind of workflow, but might (if people notice the subtleties) help people see what stage the bug is at.03:43
lifelessso for a quick segue03:45
lifelessthere there a few interesting dimensions around a bug and lifecycle03:45
lifelessthere is the progress bar dimension03:45
lifelessthere is the what-is-it-waiting-for dimension03:45
lifelessthere is the 'when will it be usable' dimension03:46
lifelessto illustrate the difference, consider an LP bug03:46
lifelessits 'done' when its released and switched on via flags03:46
lifelessto get there it may wait on user input many times (some of which may use the INCOMPLETE state)03:47
lifelessit may wait on dev, design, qa inputs03:47
lifelessit may wait on deployment pipeline03:47
lifelessand it may be usable for a user once its enabled for beta users03:47
lifelessso, I think its important to decide *which* dimension you are trying to quantise when you think about this03:48
lifelessotherwise you'll tie yourself, and our users, up in knots :)03:48
lifeless(and note that 'status' as its currently defined doesn't map directly to -any- of these dimensions)03:48
lifelessI wish I had some helpful insight here - sorry !03:49
huwshimilifeless: That is helpful. I still think we can provide some hints to what part the cycle of the bug is at. There's a group of bugs that need some extra info/management/discussion before they can be worked on (New, Triaged, Incomplete, Confirmed). There's the bugs that have been rejected (Invalid, Won't Fix, Opinion). There's bugs that are being worked on (In Progress, Fix Committed). And there are bugs that are do03:52
huwshimine (Fix Released).03:52
huwshimiI know that doesn't necessarily map to everyone's workflows03:53
huwshimibut I think it's correct in terms of what we have in Launchpad right now03:53
huwshimiAnd I03:54
huwshimiThe result of those categories is just chosing a colour for each status. Do Invalid, Won't Fix and Opinion really deserve an individual colour or can they be lumped together in a "rejected" colour03:55
* micahg wonders why opinion still exists03:56
wgrantmicahg: I think we all do.03:56
huwshimihaha03:56
wgranthuwshimi: Triaged bugs are ready to be worked on.03:57
lifelesshuwshimi: 'triaged' bugs can be worked on'03:57
huwshimiah, yes03:57
lifelesshuwshimi: as can confirmed [they just don't have an importance set]03:57
lifelesshuwshimi: I think the 'reject' and 'being worked on' sets are good03:57
lifelesshuwshimi: arguably rejected + fix-released is one grouping (bugs that are finished with)03:58
huwshimilifeless: I thought the same about bugs that are finished with, but I think it would be good to distinguish between them as they have pretty opposite outcomes03:59
lifelesshuwshimi: sure, I buy that; was being a bit socratic :P04:00
huwshimi:)04:01
huwshimiSo do you think I would get away with having 5 status colours? For each of: Unconfirmed (New, Incomplete), Ready (Triaged, Confirmed), Rejected (Invalid, Won't Fix, Opinion), Being worked on (In Progress, Fix Committed), Done (Fix Released)04:05
huwshimi(with unconfirmed, ready etc being labels I'm only using to help explain right now)04:06
wgrantThat sounds reasonable.04:06
lifeless+104:07
huwshimiwgrant, lifeless: Awesome, thanks for the help :)04:08
lifelessanytime04:08
StevenKIs doctest an actual upstream Python module?05:00
lifelessyes05:02
lifelessits in the stdlib05:02
StevenKOh, ew.05:02
StevenKAh ha! poolie!05:17
StevenK14337.1.1   mbp@can | from testtools.testresult.real import _details_to_str05:17
* StevenK tries to remember the magic he used to get Person:+index working in a test harness.05:38
StevenKStupid RDF.05:38
wgrantNot RDF, but XRDS.05:39
jtvwgrant: are you reviewing today?  If so: ooh, pick me, pick me!  https://code.launchpad.net/~jtv/launchpad/bug-849683-patchup/+merge/8372905:41
wgrantjtv: The cloner is used ~twice per release.05:42
wgrantTo perform archive rebuilds.05:42
jtvThat explains.  Well, no more problem anyway, with this branch.05:42
wgrantActually, IDS uses it too.05:43
wgrantSo three times a release :)05:43
wgrantjtv: What changed in lib/lp/soyuz/doc/buildd-queuebuilder-lookup.txt?05:44
wgrantThere's a big block of changes where I can't actually see any differences.05:44
jtvLint.05:44
wgrantYeah, but I can't see what.05:44
wgrantOh.05:44
jtvGot indented too far (I guess by the doctest formatting tool), and thus overran the 78th column.05:44
wgrantIndended by 4 instead of 5.05:44
wgrantYeah.05:44
StevenKAH05:44
jtvWas it 5?  Ah yes.  Then it wasn't even the formatting tool, I guess.05:45
jtvStevenK: “AH”?  are you okay?05:45
StevenKjtv: I was wondering too05:45
wgrantjtv: Approved, thanks for the fixes and cleanups.05:46
jtvThank you.05:46
lifelessallenap: wgrant: teamparticipation updates are racy; thats why it gets out of sync I suspect.05:56
lifelessallenap: or at least, may explain. Requires select for update to fix.05:56
pooliehi all05:56
wgrantlifeless: That's possible, but pretty unlikely.05:56
poolieStevenK, yes that was me05:56
pooliei even saw the lint warning05:56
poolieexporting the symbol seemed likely to overflow my stack05:57
pooliei guess i could have suppressed it?05:57
lifelessits a rather noddy warning TBH05:57
lifelesswe have it disabled for most of LP05:57
poolieyou could more reasonably warn it is an underscored symbol...05:58
pooliebut05:58
poolieit is more of a warning of "may break in the future" rather than "is broken now"05:59
poolielet the future fix its own bugs, we have enough of our own05:59
pooliehuwshimi, lifeless, like robert said there are a bunch of different dimensions there05:59
poolieah06:00
pooliei agree with a lot of that stuff06:00
pooliei will suggest one more thing06:00
pooliewhich is that some statuses are inherently more interesting than others, most of the time06:00
pooliespecifically the 'in play' statuses of new, inprogress, fixreleased06:00
poolie*fixcommitted, i mean06:00
poolieand maybe incomplete06:00
pooliethey are more likely to be something some one wants to work on next06:00
poolieperhaps they should be more prominent06:00
StevenKpoolie: It annoys me that bin/test prints it every time06:01
pooliedoes it?06:01
pooliethe import warning?06:02
StevenKYup06:02
poolieguys, help me decide about the tarball download feature06:02
poolieit does not appear on the default lh home page only on per-revision pages06:02
pooliei could fix it and update06:02
wgrantbug06:02
poolieor, i could fix a bug saying it's not in the lp main ui06:02
pooliewhich is ultimately more interesting06:02
pooliebug 24058006:03
_mup_Bug #240580: Ability to download a tarball for a revision <qa-ok> <Launchpad itself:In Progress by mbp> <loggerhead:In Progress by mbp> < https://launchpad.net/bugs/240580 >06:03
poolieyou just closed it wgrant :)06:03
wgrantBoth? :)06:03
poolieor, no, maybe that was something else06:03
huwshimipoolie: Thanks. I'm a little hesitant to start placing importance on certain statuses, just because I don't understand enough about the ramifications on some people's workflows (I know it'd just be a small UI thing, but it's one less issue with the UI I want to possibly introduce right now).06:05
lifelessEWHAT: database/schema/tst.dot06:06
pooliethat also sounds reasonable06:06
pooliewhat do you specifically want to do next?06:06
pooliehuwshimi, i'd be curious about your thoughts on my mail about a Thanks button06:06
pooliemore from a ux than implementation perspective06:07
poolienot likely to happen soon though06:07
lifelesspoolie: doing it the lh main ui would be nice; doing it in the LP main ui is also nice. I don't see them as the same bug, and whichever you choose to work on first is up to you :)06:07
pooliei think i will mark this bug complete and file followons06:07
huwshimipoolie: My initial reaction is that it would be a nice, friendly, community building touch. I think it would add a nice rewarding experience to using Launchpad.06:08
poolie:)06:10
lifelessjtv: hey, is there an existing collection of scripts for doing db schema evolution w/slony the way we do ?06:12
jtvlifeless: no idea — haven't followed how our schema stuff interacts with slony tbh06:12
lifelessthe scripts get wrapped in slonik06:13
lifelessso things that want to use ORMs etc to generate db patches - well they can't ;)06:14
lifelessthey could if they emit the schema changes to a stream, but not if they depend on commit/rollback etc06:14
lifelessor on processing data mid-migration06:14
lifelesshowever there are a raft on pypi06:15
lifelessrandom link of the day06:17
lifelesshttp://bulbflow.com/overview/06:17
jtvMaybe once we're on 9.x we can look into streaming replication.06:23
lifelessyeah06:23
lifelessstub wants to wait for a bit for 9.x, some slony  issues that concern him06:23
jtvYes.  I do still water at the mouth with new postgres release summaries though.06:24
lifeless:)06:24
poolielifeless, nice06:29
jtvlifeless: the staging oops report contains an entry that makes me wonder if you've set the timeout threshold too low…06:29
jtv    -1.00s  OOPS-fead2780a43b01845f361d2acbb79f14  Unknown06:29
lifelessjtv: hah06:29
lifeless:)06:29
jtvIt took minus one second and _still_ it times out.  That's going to be hard to optimize.06:29
lifelessjtv: its all about i06:30
jtvAre we squaring our times then?06:30
pooliecall cern06:30
jtvpoolie: good point.06:30
lifelessjtv: oops tools applies a heuristic06:31
lifelessjtv: it appears to be glitched - https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-fead2780a43b01845f361d2acbb79f1406:31
lifelessjtv: note the oops actually doesn't report any timing data whatsoever06:31
lifelessjtv: and by glitched I mean '-1 to avoid confusion'06:31
jtvGAHHH sorry I have to focus on something else right now.06:33
jtvGrrr all these notify() functions and all this time the test wasn't calling the right one.06:33
lifelessugh06:38
lifelessdatabase/schema depends on canonical.*06:38
lifelesstwitch06:38
StevenKHow?06:38
lifelessfrom canonical.launchpad.scripts import db_options, logger_options, logger06:38
lifelessfrom canonical.database.sqlbase import connect, ISOLATION_LEVEL_AUTOCOMMIT06:38
lifelessfrom canonical.database.postgresql import fqn06:38
StevenKAh06:39
lifelessyes06:40
lifelessso, making a separate tool will involve some way to bridge our global magical config settings and the separate tool06:41
StevenKYou want to pull database/schema out entirely?06:42
lifelessthe driving logic, yes.06:42
lifelessmicroservices need DB's and slony.06:42
lifelessI need a name though06:44
lifelesslazr_postgresql I guess06:44
lifeless(refusing to namespace on grounds of being sane)06:44
jtvwgrant: if Ubuntu syncs a source package from Debian and then builds it, would SPR's dsc_signing_key and dsc_maintainer_rfc822 be the Debian maintainer's?07:18
wgrantjtv: signingkey is probably empty. I'm not sure what maintainer is... it depends what gina does.07:19
* wgrant hunts.07:19
wgrant        spr = SourcePackageRelease(07:19
wgrant            section=sectionID,07:19
wgrant            creator=maintainer.id,07:19
wgrant            component=componentID,07:19
wgrant            sourcepackagename=name.id,07:19
wgrant            maintainer=maintainer.id,07:19
wgrantSo the maintainer should be the Maintainer field from the imported source package.07:20
bigjoolsmorning guys08:02
jtvGood morning08:04
jelmerGoeiemorgen jtv08:04
jtvGoedenmorgen!08:05
bigjoolsdouble dutch08:05
danhgMorning08:58
mrevellHey09:01
adeuringgood morning09:02
=== jam1 is now known as jam
pooliehi all09:22
pooliebigjools, is rabbit appropriate for storing thing indefinitely?09:23
pooliemaybe it is, i just had the idea it was for in-flight messages09:23
bigjoolspoolie: not at all, it's just a transport mechanism09:23
poolieso it's rabbit as a path to a service storing stuff in psql or whatever09:23
bigjoolsit's just a very useful way of firing and forgetting09:23
pooliememories of Dallas :)09:24
bigjoolsI only shot Osama, no rabbits :)09:24
lifelessbigjools: would need a query API too for it; so if doing that might use http for the store as well (given that we probably want to know the audit was committed :P)09:25
=== almaisan-away is now known as al-maisan
bigjoolslifeless: rabbit has a reliable commit mechanism IIRC09:26
lifelessbigjools: if you use it in rpc mode its equivalent to an http call09:27
bigjoolswhy not just stick to Rabbit then?09:27
lifelessbigjools: if you use it in persistent message fire-and-forget-but-tell-me-that-there-is-at-least-one-subscriber then its potentially lossy unless you have an HA story for it09:27
lifelessbigjools: and we don't have an HA story for it09:27
bigjoolsand do we have HA story for some future storage mechanism?09:28
lifelessslony09:28
lifeless(thats yes, if we use postgresql, or yes if we use cassandra, etc)09:28
bigjoolsdo slaves stay up if the master goes?09:28
bigjoolscan you store data in a HA fashion?09:29
lifelessfor slony, yes and no - slaves stay up, master being down prevents writes09:29
bigjoolswhich is my point09:29
lifelessthis is different to rabbit in the fire and forget mode where messages can disappear entirely09:29
lifelessso I don't see why its your point09:30
bigjoolsmy point is that nothing has HA for storage09:30
bigjoolsso why not just use a single API over rabbit instead of an API for this, another API for that ...09:30
lifelessuhm, cassandra does09:30
lifelessif we need HA writes09:31
bigjoolswe don't use cassandra09:31
lifelessthis discussion is maddening09:31
lifelessI'll chat with you another day09:31
bigjoolswhy?09:31
bigjoolsyou don;t like my questions?09:31
lifelessI don't mind questions, but the goal posts seem to be moving09:31
lifelessI'm talking about being sure the audit item is logged09:32
bigjoolswhat goal posts?09:32
lifelessyou're talking about being up all the time09:32
lifelessthey are different things09:32
bigjoolsumm, you started with the HA thing09:32
bigjoolsnot me09:32
lifelessI started with lossiness09:32
lifelessnot with HA; to avoid loss of messages with rabbit you need to either be using it in RPC mode, which is rather pointless, or you need to an HA story for it09:33
bigjoolswe might as well just use a separate Storm store to talk to an auditing PG09:34
lifelesswell09:34
lifelessthat wouldn't be reusable by other services and wouldn't have higher integrity due to needing direct access from the main appservers etc09:35
lifelesswhat we have with rabbit today is a mostly-reliable messaging syste,09:35
lifelesswhich is great09:35
lifelesswe don't have guaranteed delivery except in rpc mode where you wait for a reply from the consumer09:36
lifelessthe main impact this has is that when we really care about a message being delivered, we need to either use rpc mode or not pass it via rabbit; either is ok09:37
stubTechnically, our writes to PostgreSQL can be lost. Slaves are lagged, and if we lose the master we lose the lag time's amount of data changes.09:39
lifelesstrue, though if we lose the change we made, and keep the audit trail for it, thats arguably less of a problem than keeping the change and losing the audit trail09:40
stubI'd consider looking at celery, which seems to allow you to use various things as the back end such as rabbit or postgresql09:40
stubI had a skim the other day since abently keeps mentioning it and it looks nice. I like projects that take their documentation seriously.09:41
lifelessbigjools: sorry for the maddening comment; ELONGDAY + we are/were crossing wires09:43
lifelessbigjools: I usually value teasing things apart and getting more clarity :(09:43
* lifeless heads to be09:43
lifelessd09:43
lifeless(PS: cynthia had a bad night last night.... so we all did)09:44
bigjoolslifeless: I have jetlag, you have a baby.  Great combo :)09:44
lifelessindeed!09:44
lifelesshave a good day09:44
* lifeless goes09:44
=== gmb changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: gmb | Critical bugtasks: 3*10^2
jmllifeless: fwiw, re "Fixture" suffix: my main concern is that I use TempDir and EnvironmentVariableFixture the most, and either the former should be TemporaryDirectoryFixture or the latter should be EnvVar (or at least EnvironmentVariable). Too much to remember otherwise.10:23
allenapwgrant: Regarding your comment on https://bugs.launchpad.net/bugs/897269 about check-teamparticipation.py. I don't want to have to manually fix TP ever, so I think it's worth fixing it automatically as well as having the report.10:37
_mup_Bug #897269: check-teamparticipation.py does not fix spurious participation records <teams> <Launchpad itself:In Progress by allenap> < https://launchpad.net/bugs/897269 >10:37
mpt"This membership is going to expire in 7 days from now"11:23
=== matsubara-afk is now known as matsubara
allenapvila: You have put a big smile on my face :) https://bugs.launchpad.net/bzr/+bug/84321111:58
_mup_Bug #843211: With pipelines I cannot set push_location and public_branch generally <config> <Bazaar:Fix Released by vila> < https://launchpad.net/bugs/843211 >11:58
bigjoolsbug 87211211:59
_mup_Bug #872112: Buildd-manager combines DB write transactions and asynchronous calls <soyuz-build> <Launchpad itself:Triaged> < https://launchpad.net/bugs/872112 >11:59
vilaallenap: glad you like it ! Other kind of feedback also welcome :)12:00
StevenKI think everyone who uses pipelines will buy vila a beer ...12:00
allenapIndeed!12:01
StevenKbzr push errors with can't do it / branch doesn't exist, so I sigh and run sync-pipeline12:01
* vila coughs12:01
vilamake sure it works as you expect, there may still be some shaloow glitches12:01
vilashallow12:01
StevenKSince I've stopped landing so many Soyuz branches, I've stopped using pipelines so much. I wonder why that is ...12:02
=== mrevell_ is now known as mrevell
allenapDoes anyone know where I can find (in order to modify) the oops-tools-django-dependencies or oops-tools-django-testsuite-dependencies packages? I am a total newb to this stuff.12:46
mrevellmatsubara, ^ ?12:48
matsubaraallenap, bzr+ssh://bazaar.launchpad.net/%2Bbranch/lazr-source-dependencies/12:51
allenapmatsubara: Thanks :)12:51
matsubarahmm that came from bzr info and looks wrong. the right branch is lazr-source-dependencis12:51
matsubaraallenap, https://launchpad.net/lazr-source-dependencies12:51
allenapmatsubara: Cool.12:52
* allenap contemplates filing a bug about not finding that package from site-wide search.12:52
=== matsubara_ is now known as matsubara
=== matsubara is now known as matsubara-lunch
flacosteallenap, matsubara-lunch: lazr-source-dependencies is deprecated, use lp-source-dependencies14:22
allenapflacoste: I was about to ask matsubara-lunch about that, but for another reason. I was looking for the oops-tools-django-dependencies and oops-tools-django-testsuite-dependencies packages, but they're not in either lazr- or lp-source-dependencies. Do you know anything about them?14:24
flacosteallenap: aren't they in the meta-lp-deps project?14:24
* allenap looks14:25
abentleygary_poster: How I manually get the SimpleViewClass-munged version of a view class?14:26
flacosteallenap: where did you get these packages from? apt-cache search doesn't find them over here?14:26
allenapflacoste: They're in the python-oops-tools PQM chroot, so it's conceivable that they were made by a LOSA.14:27
flacosteallenap: yeah, i don't know where these packages are maintained? did you look on the oops-tools deployment wiki page if there is any info on them?%14:28
allenapflacoste: I'll have a look.14:29
flacostehttps://dev.launchpad.net/QA/OopsToolsSetup14:29
flacosteallenap: i don't see anything there14:29
allenapTa.14:29
flacosteif you find the answer, please update that page :-)14:29
allenapflacoste: Will do :)14:29
allenapmthaddon: Do you know what the lineage of the oops-tools-django-dependencies and oops-tools-django-testsuite-dependencies is? I've just seen that the former is installed on carob. It's also installed in the python-oops-tools PQM chroot (wrt. https://rt.admin.canonical.com//Ticket/Display.html?id=49246).14:33
mthaddonallenap: I think they've been losa-maintained up til now and are just in lucid-cat (should be able to download the source from any server in the DC)14:36
rick_h_abentley: no, I've muted everyhting, just listening14:38
abentleyrick_h_: no, you haven't.  Your lips are red.14:38
rick_h_yea, but you can't hear me right? abentley14:38
abentleyI'm not hearing you saying anything.  I'm just hearing echo.14:39
rick_h_ok, well I've muted all inputs at pulse14:39
abentleyrick_h_: You were still outputting to Mumble.  I guess it's possible to do that without using Pulseaudio, but it seems unlikely.14:40
allenapmthaddon: Ta, thanks.14:43
rick_h_abentley: adeuring http://www.youtube.com/watch?v=_zhQIfT7g58&feature=youtube_gdata_player is the video I mentioned, good stuff14:52
adeuringthanks14:52
abentleyrick_h_: cool, thanks.14:56
=== vednis is now known as mar
=== mar is now known as mars
rvbaHi gary_poster, I'm investigating a timeout (bug 890927) and it turns out the problem is the repeated security check queries (line 2234 in lib/canonical/launchpad/security.py).  Jeroen said I should talk to you about this because it's a matter you've worked on previously… so here I am :)15:03
_mup_Bug #890927: private PPA Archive:+index timeouts <timeout> <Launchpad itself:In Progress by rvb> < https://launchpad.net/bugs/890927 >15:03
bigjoolsI thought they were cached these days?15:04
rvbaI think they are *somewhat* cached.  But each package on the page generates a security check query.15:05
rvbaIn this case, the exact same query is repeated.15:06
bigjoolsthat is a harder problem to solve15:06
bigjoolsI guess this is the "published" check?15:06
rvbaRight, hence Jeroen's advice to talk to Gary about it.15:06
bigjoolsif you can already see the page, there's little point doing those checks15:07
bigjoolssince all the necessary security has been passed already15:07
rvbaIt's the  ViewArchive launchpad.View check.15:07
rvbaTrue.15:07
bigjoolsright, so the view check is done for the archive, and then the same archive again and again for each package15:07
rvbaExactly15:07
bigjoolsa dirty fix would be rSP :)15:08
rvbaDirty indeed :), a more generic caching mecanism would be nice here.15:08
rvbamechanism*15:09
rvbaBesides, the call comes from a place that I think is called from many other places which might need the security checks.15:09
rvbaWorking around that might be possible but even more dirty.15:10
=== matsubara-lunch is now known as matsubara
bigjoolsrvba: are you thinking of a cache of (obj, permission_name) ?15:12
rvbaAlso, solving this elegantly might bring more performance improvements elsewere.15:12
bigjoolstrue15:12
rvbabigjools: right now, honestly I don't know if that's really possible but yeah, I was thinking about having a LRU in the request for that.15:13
rvbabigjools: but I need to understand how the caching in place (which does not work in this case for some reason) works first.15:16
gary_posterrvba, I'm sorry I missed this15:21
gary_posterrvba, I'm trying to use Empathy as my IRC client and not having success with notifications yet15:21
gary_posterrvba, should I still look at the backlog and try to figure out what is going on :-)15:21
rvbagary_poster: no worries… maybe you can give me a few hints to understand how perm check caching works and what you think can be done in this case.15:21
gary_posterok lemme read backlog15:22
rvbathanks gary_poster.15:22
abentleygary_poster: How I manually get the SimpleViewClass-munged version of a view class?15:22
* gary_poster tries to remember these details...15:24
gary_posterabentley, if I understad you correctly, that is what you will get from the adapter lookup15:25
gary_posterYou can get the adapter registry itself15:25
gary_posterand do a lookup there without actually instantiating the class15:25
gary_posterif that helps15:25
abentleygary_poster: I have been trying to do the lookup manually, but I don't know exactly what to look up.  Here's what I'm trying: https://pastebin.canonical.com/56497/15:26
=== jcsacket1 is now known as jcsackett
gary_posterrvba, so, I'm not ignoring you, but abentley's question is easier :-P15:29
rvbagary_poster: I figured :)15:29
gary_posterabentley, I'd suggest getting the site manager.  that has an adapter registry on it for adapter lookups (and a separate one for utilities)15:30
rvbagary_poster: I'm not expecting a solution but hints btw15:30
gary_posterack15:30
gary_posterabentley, that gives you an interface that's closer to metal15:31
gary_posterand I think it will be easier for you to use15:31
gary_posterthe interface is described in zope.interface IIRC15:31
gary_posterabentley, as to the traceback, I don't know enough about what the cls is and so on to have an opinion as to what the problem is15:32
abentleygary_poster: the cls is defined at the top of the pastebin.15:32
gary_posterbut I suggest dropping that and working with an interface that lets you specify the interfaces.15:32
gary_posterabentley: duh, sorry.  in that case, I'd guess the problem is that +base-layout-macros is registered for something else.  The adapter registry will give you the raw materials to anwer that question directly though.15:34
gary_posterI'm more than happy to dig in with you, abentley, but I'm trying to re-set up my LP environment with LXC, so I don't have a working environment atm15:35
gary_posterand I should try to help rvba15:35
abentleygary_poster: undertood.  I used +base-layout-macros because it's registered for *, which I thought meant anything.15:35
gary_posteryes abentley, you are right.  I don't have an immediate answer; I would have to dig too.  :-/15:36
gary_posterrvba, so, IIRC, we cache our security lookups in the security policy.15:37
rvbagary_poster: I see that in lib/canonical/launchpad/webapp/authorization.py.LaunchpadSecurityPolicy15:37
=== al-maisan is now known as almaisan-away
gary_posterright rvba.  Maybe if I look at that I will better understand the problem.15:38
gary_posterBecause ATM I don't see what isn't working15:39
rvbagary_poster: me neither but maybe I'll try debugging it to see what's going on … then I'll come back to you. How does that sound?15:39
rvbagary_poster: the thing that I don't get is where the cache is exactly. I see a local object named cache being manipulated in checkPermission (same file).15:42
gary_posterrvba, cool.  I'm interested in the IApplicationRequest check, because that's the only thing that jumps out at me as a way for the cache to be ignored.  Although...these objects are in fact different, right?15:43
rvbaI suspect my problem is that I've plenty of different objects being checked… and it turns out the check is the same because the objects are all related to the same archive.15:43
bigjoolsgmb, you need to thank me.  It took *me* 5 hours to review jtv's buildd-manager branch.15:44
gary_posterrvba, right.  So, that would lead to a few sorts of solutions15:44
bigjoolsthe _underlying_ check is common15:45
gmbbigjools: You mean the 1200 line one that StevenK appeared to have started reviewing?15:45
gary_posterrvba, am I right that actually instantiating the IAuthorization adapter is the expensive bit here?15:45
rvbabigjools: exactly.15:45
bigjoolsgmb: that is the badger15:45
gmbbigjools: Thank you for taking care of it.15:45
gary_posterrvba, can we state categorically that these objects get their permissions from some other object?15:45
gary_posterI believe we have an existing mechanism for that sort of thing15:46
bigjoolsgmb: :)  You didn't actually need to thank me, I am just feeling relieved I finished it15:46
gmbbigjools: (I daresay that it would have needed input from you or your fellow Soyuz experts either way)15:46
gary_posterI do not know how efiicient it is15:46
bigjoolsgmb: actually it was more of a Twisted domain change15:46
rvbagary_poster: yes, SourcePackagePublishinghistory -> Archive.15:46
gmbbigjools: I was really glad when I saw StevenK's name attached to it; I guess that made me overlook the fact that he hadn't actually reviewed it...15:46
bigjoolslol15:46
gary_posterrvba, ok, what is their IAuthorization now?  I think bac recently did some work on IAuthorizations that can explicitly pass their work off to another object.  We should make sure that this takes advantage of the cache15:47
rvbagary_poster: the expensive part is the query, triggered by the call to getUtility(IArchiveSubscriberSet).getBySubscriber in checkAuthenticated of ViewArchive (lib/canonical/launchpad/security.py)15:47
gary_posterrvba, do you happen to have a stack trace for that?15:48
rvbagary_poster: that sounds like a solution.15:48
rvbagary_poster: yes, hang on.15:48
rvbagary_poster: http://paste.ubuntu.com/753787/15:48
flacostervba: are you qa-ing Bug:887078?15:49
flacosteonce that's clear, we can deploy and re-enable custom bugs listing15:49
rvbaflacoste: I'm on it.15:50
gary_posterrvba, ok cool.  That looks like we could take advantage of the cache pretty easily.  Lemme see if I can find the magic authorization adapter...15:51
gary_poster(I see you are doing something else, np)15:51
rvbaflacoste: rarg, in fact I QAed it this morning, I simply forgot to change the tag. Sorry about that.15:52
rvbaQa-ok.15:52
rvbagary_poster: cool!15:52
gary_posterI'm not sure which objects we are talking about here, but I suspect that we are already using DelegatedAuthorization, which I bet is what I was looking for.  I'm slowed down by having to install stuff like ctags, sorry15:57
bigjoolsgary_poster: not using pycharm? :)15:57
gary_posterbigjools, with my new-ish Clojure (lisp-y) interest, emacs has been getting my attention these days :-)15:58
bigjoolsrun away!15:58
gary_poster:-)15:59
gary_posterrvba, ok yeah, this is interesting16:00
gary_posterlib/lp/app/security.py has DelegatedAuthorization16:01
gary_posterit delegates to the raw authorization adapters16:01
gary_posterthereby skipping our cache entirely16:01
rvbaMakes sense.16:01
gary_posterso...16:01
gary_posterwe can think about this a few different ways16:02
rvbaViewSourcePackagePublishingHistory inherits from DelegatedAuthorization and delegates the checks to obj.archive.16:02
gary_posterright16:02
gary_postermy first coherent thought is that this abstraction bay be in the wrong place16:02
gary_postermay16:02
gary_posterBecause it feels like the security policy ought to be in charge of its cache16:03
gary_posterso *it* ought to be able to see "oh look, it is delegated"16:03
gary_posterand *it* can look in the cache16:03
gary_posterand if it doesn't exist, do the adapter dance16:03
gary_posterthat's less flexible than what we have now16:04
gary_posterbut it ought to be a whole heck of a lot faster for cases like this16:04
gary_posterSo let's think about an alternate case for a sec though16:05
gary_posterlet's say we wanted to keep DelegatedAuthorization as is16:05
gary_posterin order to do that...16:05
rvbaMaybe instead of calling checkAuthenticated in there we could use the checking method from LaunchpadSecurityPolicy16:06
gary_posternot only would it need to know about the cache, but it would need to be able to convert the cache answer to a real answer16:06
gary_posterbecause the cache answer is for a gievn participation16:07
gary_posterwhich means a given user16:07
gary_postercheckAuthenticated would need to look at the participation16:07
gary_poster(the request)16:07
gary_posterand compare the participation's user with the user it has16:07
gary_posterif they are the same, then we can use the cache16:07
gary_posterif not, we have to do our usual checks16:07
gary_posterthat would be relatively easy to code, but it feels icky to me16:08
rvbathis might be good enough for my problem :)16:08
gary_posteryeah16:08
gary_posterI don't love it, but it feels practical16:08
gary_posterlet's talk about what feels nicer to me for just a sec though :-)16:08
gary_posterand see if something can fall out there16:08
rvbasure :)16:08
rvbaI'm fuzzy about this participation thing though…16:09
gary_posterwell, first, do you see what I mean about why it would be nicer, or am I on crack16:09
rvbaWhat does it means exactly?16:09
gary_posteroh sure16:09
gary_posterso, the zope security system has this idea that multiple participants (think "principals," users or groups) can be involved in a security interaction.  This allows modeling people granting permissions without escalating permissions.  If I give you the ability to do something, and you try to do it, the security system should consider my permissions and your permissions, or else we are potentially in a privilege escala16:12
gary_postertion scenario16:12
gary_posterthat is unimprtant to us16:12
gary_posterwe only allo w a single participation16:12
gary_posterand that is a request16:12
gary_posterwhich represents a security interaction between a user and the system16:12
rvbaok, hence the whole len(participations) > 1: raise RuntimeError("More than one principal participating.")16:12
gary_postertypically for the length of a transaction16:12
gary_posterprecisely16:13
gary_posterso that's a participation16:13
rvbaok, thanks gary_poster.16:13
gary_posteris that clear-ish now, or should I try again? :-)16:13
gary_posterok cool16:13
gary_posterso, my concern is that the cache on the participation is an artifact of the security policy16:13
gary_posterWe could expose the cache in some way explicitly I suppose16:14
gary_posterAlthough...16:15
gary_posterWell, I have an old dislike of grabbing the request from the air16:15
gary_poster(thread local)16:15
gary_posterand I'd like to do that in as few places as possible16:15
gary_posterbut anyway16:15
rvbagary_poster: why would we need the request? I suppose you mean because we need to get the user, but the user is provided when checkAuthenticated is called right.16:16
rvba?16:16
rvbaSo if we expose the cache like you said, we could use it in DelegatedAuthorization.checkAuthenticated16:17
gary_posterrvba, we need the request, because it is the participation, and it has the cache that the security policy sets up.  So if the authorization itself needs to check the cache, it needs to pull the request up16:17
gary_posterright rvba.  It woud ideally be some kind of utility, I guess, if we did it that way16:17
rvbaAh ok, the security policy is on the request itself.16:17
gary_posterrvba, not quite, the cache is.  Let's look back at authorization.py16:18
rvbawd = participation.annotations.setdefault(LAUNCHPAD_SECURITY_POLICY_CACHE_KEY,weakref.WeakKeyDictionary())16:18
rvbacache = wd.setdefault(objecttoauthorize, {})16:19
gary_posterLaunchpadSecurityPolicy is our security policy, obviously, Less obviously, instantiating it creates the interaction.16:19
gary_posterAnd yeah, there's the participation.16:19
gary_poster== request16:19
gary_posterwith the cache16:19
gary_posterrvba, fwiw, I'm fine with a call of some sort too if you like, if you think it would go faster.  Fine with irc too :-)16:20
rvbagary_poster: I was about to suggest the same thing :)16:20
gary_poster:-)16:20
* rvba fires up skype.16:20
rvbaskype ok?16:20
gary_posteryeah, cool rvba16:21
gary_posterI'm garyposter on Skype, rvba16:21
rvbagary_poster: I'm trying to find how to add a new contact, hang on :)16:23
=== beuno is now known as beuno-lunch
=== gmb changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugtasks: 3*10^2
=== Ursinha is now known as Ursinha-lunch
sinzuimatsubara, Can you do exploratory testing of bug 885692. I think this bug fixes bug 603732 and bug 375331 too17:32
_mup_Bug #885692: bug supervisors have more power than maintainers and admins <bugs> <disclosure> <qa-ok> <Launchpad itself:Fix Released by stevenk> < https://launchpad.net/bugs/885692 >17:32
_mup_Bug #603732: If there is no driver a maintainer should be able to accept a bug nomination <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/603732 >17:32
_mup_Bug #375331: Some extra filebug options don't show up for projects not having a bug supervisor <bugs> <projects> <Launchpad itself:Triaged> < https://launchpad.net/bugs/375331 >17:32
=== beuno-lunch is now known as beuno
matsubarasinzui, yes17:43
rick_h_abentley: adeuring heads up, running out for lunch, bbl.17:44
abentleyrick_h_: okay17:44
=== salgado is now known as salgado-lunch
=== Ursinha-lunch is now known as Ursinha
=== salgado-lunch is now known as salgado
pooliehi all19:08
rick_h_howdy poolie19:08
pooliehi there19:09
pooliewhat are you up to now rich_h_?19:09
rick_h_poolie: chilling in a conference room in AL while beating my head on a wall trying to figure out why this one tests fails19:10
poolieoh you're with gary?19:10
rick_h_hate that "hmm, one last test and all done..." the last ones know how to poke you19:10
poolieor deryck?19:10
rick_h_not atm19:10
poolieyeah19:11
rick_h_but hopefully later this wek19:11
rick_h_week that is19:11
poolieor spurious failures after a long test run19:11
abentleygary_poster: The ultimate solution to my problem: http://pastebin.ubuntu.com/754062/  (I did not realize that view were multi-adapters).20:17
poolieo/ abentley20:18
gary_posterabentley: ah, sorry, I should have spotted that.  Glad you found it.20:18
abentleypoolie: \o20:18
dobeywho do i bug exactly, to fix problems i see with vcs imports? or should i just bug someone to add me to that team so i can fix them?20:18
gary_posterabentley, fwiw, I still think you will like the end result of your code better if you use the raw adapter registry20:19
pooliefix in the sense of failures, or they are just misconfigured, dobey?20:19
poolieif you want to help garden them i'm sure that would be welcome20:19
gary_posterdobey, have you already mentioned something in Launchpad questions?  If so, I apologize, we're trying to work through the list.20:19
dobeypoolie: well in this case it's misconfigured20:19
abentleygary_poster: This is test code, and it's passing, so I don't understand what more I'd want.20:19
gary_posterabentley: oh ok.  I thought you were making a tool.  What you'd want more: not to have to create a throw-away object.20:20
pooliejelmer, how could we do that for dobey?20:20
dobeygary_poster: no, i just spent ~30 minutes or so looking at 2.5 year old code that i thought was new :(20:20
gary_posterdobey :-( gotcha20:20
dobeygary_poster: and my understanding is that ~vcs-imports is a place most people don't want to be20:21
abentleygary_poster: Oh, I thought the API was the same whether I did it directly or on getGlobalSiteManager().20:21
jelmerpoolie: it looks like ~canonical-bazaar is admin for ~vcs-imports, so we should be able to add another member :-)20:22
dobeyand it doesn't help that i can't just configure a new import if someone else already owns a branch which i would like to set up as an import in the proper place20:22
gary_posterdobey, it's certainly true that we don't have experts on that code any more. :-/20:22
jelmerpoolie: I wonder if we should make package imports and code imports more similar in this regard. code imports would benefit from out-of-date warnings as well.20:22
dobeyso i guess even if i was on that team, i am not sure i would be able to fix this specific import20:22
gary_posterabentley: the API on the site manager is similar, but as I said, the site manager has adapter registries on it20:23
gary_posterthat API is different20:23
gary_poster(the API of the adapter registries)20:23
jelmerdobey: the main disadvantage of being in ~vcs-imports is that you get a dozen extra emails per day, with some spikes20:23
jelmerdobey: what's the import?20:23
dobeyhttps://code.launchpad.net/glib20:24
dobeyjelmer: lp:glib, but it looks like someone set up an lp:glib/2.26 pointing at the git master20:24
dobeywhich is really annoying, because git master is not 2.2620:24
dobeyand the series are all messed up on that project20:24
dobeyand other projects seem to have some imports set up, but don't have the series bits set up, so lp:foo doesn't work on them20:25
jelmerdobey: ~vcs-imports won't really help for that, vcs import admins can only really change the source URL of code imports and remove them20:26
jelmerdobey: ~registry can change a large set of projects that aren't hosted on Launchpad, including glib20:26
rick_h_abentley: ping20:29
abentleyrick_h_: pong20:29
dobeyhmm20:29
rick_h_abentley: know you're busy, but wanted to see if you get a sec if you could try out my branch with the indicator js plugin for the loading graphic?20:30
abentleyrick_h_: sure, where is it?20:30
rick_h_abentley: it works here, but it feels fragile with css and curious if it's what was intended from the discussions20:31
rick_h_https://code.launchpad.net/~rharding/launchpad/buglists-loading-88527220:31
rick_h_abentley: I had to update the css combine template20:31
rick_h_so make sure you regen that or add in the indicator assets css file20:31
rick_h_I'm not 100% sure how that gets "updated" for people20:31
dobeyjelmer: and i have a feeling ~registry is not a team i can be in :)20:32
jelmerdobey: so, in general, it seems like we are a bit too strict on who can change products that aren't hosted on Launchpad but merely tracked20:32
jelmers/on/about/20:32
dobeyright20:32
dobeyit seems there are a lot of defunct teams set up to deal with these, too20:33
jelmerdobey: I think it's just ~registry :)20:33
sinzuidobey, any canonical employee can be in the team if they needs to manage the 1100 projects that other projects like Ubuntu rely on20:33
dobeyhttps://launchpad.net/~gnome-python-maintainers is the "maintainer" for pygobject it seems, but the team has no administrator20:33
jelmerdobey: I do think you could probably be in ~registry but you should probably check with one of the launchpad folks. Curtis is particularly active in ~registry20:34
sinzuidobey, ~launchpad currently dominates membership, but a few years ago, it was Ubuntu staff20:34
dobeyah20:36
sinzuidobey, you are now a member of ~registry. You will see lots of edit icons on projects now20:36
dobeysinzui: oh, ok; thanks20:37
abentleyrick_h_: the makefiles updates combo.css.  yui3-overlayindicator is present for me.20:37
dobeyis there any way to deal with the issue of having the same branch of git being imported by multiple people (or rather, that it can't be)?20:38
rick_h_abentley: right, but combo.css is generated from bin/combine-css which I had to manually add a path to20:38
rick_h_abentley: and combin-css comes from the buildout templates20:38
abentleyrick_h_: bin/combine-css is also generated by the makefile, AIUI20:39
jelmerdobey: euhm, sortof20:39
jelmerdobey: launchpad's URL checking is pretty naive, so if there are multiple URLs for a repository they can each be registered20:39
rick_h_abentley: ok, cool, sounds like you're good20:39
=== matsubara is now known as matsubara-afk
abentleyrick_h_: I'm not seeing the spinner in firefox, and chromium looks busted.20:43
rick_h_abentley: any errors? I'm seeing them in both.20:44
rick_h_abentley: this branch doesn't have the backport for the chrome bug20:44
dobeyjelmer: hrmm20:44
rick_h_so to view it I had to just manually change the html to disable the -disabled css20:44
abentleyrick_h_: Uncaught TypeError: Cannot read property 'next' of undefined.20:45
rick_h_abentley: right, that's the chrome issue from yesterday20:45
rick_h_try to merge with devel I guess to correct that part20:45
abentleyrick_h_: If you merge stable, that should go away.20:45
rick_h_abentley: I just cheated and hand changed the css rule hiding the overlay20:45
rick_h_abentley: right, just didn't do that today yet. Thanks20:46
rick_h_abentley: the image is in the center of the overlay'd div20:46
rick_h_so make sure to check for it in the center of the table20:46
dobeyjelmer: i guess i also need to be a member of vcs-imports to be able to configure a branch as owned by vcs-imports?20:46
dobeyjelmer: or should i just make ~registry the owner?20:48
abentleyrick_h_: It should be visible from the top and the bottom, so if being vertically centred makes it hard to see, we probably shouldn't do that.20:48
rick_h_abentley: ok, so the stuff that this was working on was creating a single div overlaying the updating content with the spinner20:49
rick_h_abentley: we've got a larger spinner, 32px that's used with the grey'ing out of the content to show it's going20:49
jelmerdobey: ~registry is fine as a branch owner as well20:50
dobeyok20:50
abentleyrick_h_: I don't know what the answer is.  Maybe two spinners.20:52
wgrantrick_h_: Did you change the main spinner recently?20:52
rick_h_wgrant: yes, I needed one that would work on a grey background20:52
rick_h_wgrant: I guess Huw said to pick one until he got around to making one20:53
wgrantrick_h_: Aha20:53
wgrantIs it slightly larger than the old one?20:53
rick_h_wgrant: we've got two versions now, a 16 and 32px versions of the same gui20:53
rick_h_wgrant: shouldn't be, the px size is exact20:53
wgrantThe old one was already too big (it caused the page to jump around), but this one seems larger.20:53
wgranthmm.20:53
rick_h_it might push to the edge of the px more than the last, but it's exactly at 16 like the old20:53
rick_h_abentley: ok, does it show up for you though?20:54
rick_h_abentley: I guess more "does it work" for you and then we can go after the asthetics some20:54
abentleyrick_h_: Unclear.  I merged stable and now I'm dealing with the aftermath.20:54
rick_h_abentley: lol, ok. I'm running on juice with my mifi, so going to head to a coffee shop I think.20:55
rick_h_abentley: so back online in a bit20:55
abentleyrick_h_: cool.20:55
dobeysinzui: hrmm; i can't seem to change the development focus on glib.20:55
sinzuidobey, ~registry does not maintain it20:56
sinzuidobey, Robert Ancell is in ~upstream, and he is also in ~registry20:57
dobeyright, ok20:57
sinzuidobey, ~jjardon can add you to the team20:58
sinzuidobey, we made him the maintainer of several gnome projects. He will happily add people who can help fix the series.20:59
dobeyis "release url pattern" on a series a regex, or just a glob?21:01
dobeyi guess a glob, otherwise .* could have different results i suspect21:05
lifelessits a glob21:07
dobeyis there some way to specify a git branch to import now, rather than it implicitly always being master?21:16
wgrantAdd ',branch=foo' to the end of the URL21:16
dobeyah ok21:18
rick_h_bah, coffee shops need more than 6 tables. Walk out there and no space21:22
dobeyhrmm, imports failing21:24
dobeyhttp://launchpadlibrarian.net/86214321/registry-glib-trunk.log21:24
jelmerdobey: the URL is incorrect, the /git/ bit shouldn't be there for git.gnome.org IIRC21:24
dobeyjelmer: oh, hrmm; it's there for the git+ssh versions21:25
jelmerthe standard git server doesn't error out when a repo doesn't exist, it just hangs up, hence that error message21:25
jelmeryeah, git://git.gnome.org/glib.git seems to work, git://git.gnome.org/git/glib.git doesn't21:25
dobeyjelmer: did you update the URLs somehow? i didn't see how to do it, so i just deleted the glib branch and recreated it, but i see the gobject-introspection ones are working now21:29
jelmerdobey: there should be a link down the page "Edit import source or review import"21:30
jelmerdobey: maybe you have to be in ~vcs-imports to see it21:30
dobeyjelmer: i don't see those.21:31
mwhudsonyeah, that's ~vcs-imports only i think21:32
jelmerdobey: I don't think it's a problem for us to add you to ~vcs-imports21:32
abentleyrick_h_: So, it looks nice, and the grey overlay helps a lot.  But it seems to activate only on the first load, in both Firefox and Chromium.21:32
dobeyjelmer: ok :)21:32
mwhudsonunless you are allergic to email :)21:32
rick_h_abentley: ok, will look21:33
dobeymwhudson: i have procmail :)21:34
mwhudsondobey: lucky you get any email at all then!21:34
* mwhudson doesn't trust procmail21:35
mwhudsonwell, my ability to drive it, really21:35
dobeymwhudson: well, i get the mail i care about :)21:35
abentleyrick_h_: easiest way to trigger a load is probably the sort buttons.21:36
rick_h_abentley: ok thanks. Yea it looks like the show/hide is triggered. Not sure if it's too fast or just not showing21:37
rick_h_abentley: ah, nvm, I see it. Thanks for the heads up21:39
abentleyrick_h_: np.21:39
rick_h_abentley: ok, pushed fixes, the indicator spinner dom element was removed via the ajax response :)22:32
rick_h_abentley: if you get a sec to see if that looks better for you, we can even but huwshimi and see if this is what we wanted and if I should try to land it22:32
pooliehuwshimi, hi, i'd like to have a link to download a tarball of branch contents, within the main lp ui22:35
pooliecan you help me work out where that ought to go (both which page and where on the page?)22:36
huwshimipoolie: Sure22:36
pooliethere is a bug...22:36
pooliebug 89753722:37
_mup_Bug #897537: no link to download branch tarball within the main lp ui <branches> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/897537 >22:37
pooliehuwshimi, so...22:39
pooliei can imagine this would lead in to a much larger redesign22:39
poolieperhaps without end22:39
poolieactually you know all this22:40
pooliedo you want to talk about it now or just reply on the bug later?22:40
huwshimipoolie: Let's have a quick chat now22:40
huwshimipoolie: So this link is to download the source of any branch at any revision?22:41
poolieyes22:41
pooliewith obviously an important special case being getting the source of the tip of the branch, and an important case of that being getting the tip of trunk22:42
huwshimipoolie: And can we only show links only on loggerhead or can we have them in our main ui as well?22:42
poolieperhaps, until lp has good main-webapp per-revision pages, we're better off focussing on just getting the tip, and people can click through to loggerhead to get past revisions22:42
poolienot quite sure what you  mean22:43
pooliethe point of the bug is that we ought to show them in the main ui22:43
pooliethe urls are predictable so the main ui can just make them up22:43
huwshimipoolie: Right, I'm just checking we can actually do that22:43
huwshimiah awesome :)22:43
pooliei think :)22:43
huwshimihehe22:43
huwshimiSo I imagine it would be useful to display a "download the source" link for on https://code.launchpad.net/loggerhead and https://launchpad.net/loggerhead/+download and https://code.launchpad.net/~debian-bazaar/loggerhead/experimental22:45
huwshimiAnd probably http://bazaar.launchpad.net/~debian-bazaar/loggerhead/experimental/files22:46
poolieyep22:46
pooliethat last one, bazaar.l.n is loggerhead, so that's a separate issue22:46
pooliespecifically bug 89753522:47
_mup_Bug #897535: tarball download link only appears on per-revision page <loggerhead:Triaged> < https://launchpad.net/bugs/897535 >22:47
huwshimiyeah22:47
huwshimiI would be a little hesitant to put source download links on project overview pages (https://launchpad.net/loggerhead). Mostly as it might create confusion as to how to get the code properly (most of the time we don't want people to just download the code, we want them to grab a bzr branch).22:48
poolieyep22:48
poolie<https://code.launchpad.net/~debian-bazaar/loggerhead/experimental> is already a bit "omg what do i do now"22:49
poolie:/22:49
poolieperhaps part of the problem there is that the headings are not very visually distinct?22:49
pooliethe font is barely any larger and the whitespace is not helping22:49
huwshimiactually now that I think about it if we add a get the source link on https://launchpad.net/loggerhead/+download it should probably be a link to https://code.launchpad.net/loggerhead so people can decide whether they want a branch or a tar ball22:49
poolieyes22:50
pooliehttps://code.launchpad.net/loggerhead has a link back22:50
pooliei think both of them should try to say "or perhaps you want a branch/a tarball instead"22:50
poolieit is worthwihle i suppose22:52
poolieit feels a bit like a kludge for people ending up on the wrong page :)22:52
pooliebut i suppose it's natural people will go to a 'wrong' page that as they explore22:53
huwshimiI'd be inclined to be fairly specific with the wording too. On a branch page I would write:22:56
huwshimiGet this branch:22:56
huwshimibzr branch lp:~debian-bazaar/loggerhead/experimental22:56
huwshimior download .tar.gz22:56
huwshimior something along those lines22:56
poolieyeah22:57
poolieso22:57
poolieoften, people should either get an actual release tarball, or they should get a proper branch22:57
pooliebut if they do want a tarball, it ought to be possible to find how to do that22:57
poolieso +download links to the branch list22:58
pooliethe branch page offers you a tarball with the wording you gave above22:58
poolieand... should the list-of-branches page do anything?22:58
huwshimiDo you mean this page: https://code.launchpad.net/bzr ?22:59
huwshimiIf so I would think it would be useful to have a .tar.gz link on that page too. I imagine some people will be using branches to host content that people would want to get at without using bzr (if it was a js library or some design files etc.)23:00
huwshimiThe wording would be a bit trickier as there is already "There are download files available for Bazaar."23:01
poolieso as a special case, it offers you a tarball of the development focus?23:02
pooliewfm23:02
pooliethe text on that page is an interesting case23:02
pooliethe freeform text above the table23:02
pooliebecause it mixes together23:02
pooliestats23:02
pooliethings you're supposed to take action on, if you're a developer23:02
poolie"perhaps instead you want... download files"23:03
huwshimipoolie: Yeah, we already have the special case of "bzr branch lp:bzr" so this would fit with the download of the same branch23:03
poolieinstructions, and navigation23:03
huwshimipoolie: I know I was just trying to decipher everything going on there23:03
poolieso i think it all blurs together23:04
poolie:/23:05
poolieperhaps we should just delete/hide the stats23:05
huwshimiActive reviews probably should be a link in the sidebar. It is a "related content" link23:06
abentleyrick_h_: sorry, EOD.  Let's chat about it tomorrow.23:06
lifelesspoolie: I'm consdering coming to the xmas part23:06
abentleyrick_h_: (End Of Day)23:06
rick_h_abentley: sure thing, I'll send an email in case huwshimi gets any time to look at it UI wise23:06
poolielifeless, awesome23:06
lifelesspoolie: wondering about couch camping or something23:10
pooliei will ask23:10
poolielifeless, you're welcome to23:12
pooliestay here23:12
poolieno warranty as to comfort :}23:12
StevenKlifeless: Sarah and I can probably find somewhere for you too, if you wish23:12
rick_h_huwshimi: email on the way, if you get a sec to check it out. I'll be in/out online tonight so feel free to ping in irc if you want to chat23:12
rick_h_huwshimi: and I'll catch you when I get back (going to hit dinner and such in a bit)23:13
huwshimirick_h_: Cheers, will do.23:13
pooliehuwshimi, ok this sounds like a plan: on the branch list page23:13
poolieget rid of the counters23:14
poolieactive reviews and download files into the portlets23:14
poolie...23:14
pooliecan we get rid of the first sentence?23:14
pooliemaybe....23:15
poolieadd 'browse', 'tarball' links to each row?23:15
poolieor23:16
huwshimipoolie: It might be nice to make the format of that first sentence like it is on a branch page, with a few wording changes to make it clear this is just the dev focus23:16
pooliemaybe add tarball items only for series branches?23:16
huwshimi"get a copy of the branch using the command" is a nice way to put it, but maybe a little redundant23:18
pooliehuwshimi, ok that sounds like a plan23:22
poolieanything else?23:22
huwshimipoolie: I think that all sounds pretty good23:23
lifelessflacoste: around ?23:27
lifelessflacoste: quick question if so23:27

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