/srv/irclogs.ubuntu.com/2010/06/07/#launchpad-dev.txt

spmwgrant: awesome. will do what I can.00:03
james_wlifeless: plus, hiccup with test discovery, discover on 'foo' that finds 'foo.test_foo' will load it as 'test_foo', so that becomes the root of the test id, and then that can't be run by subunit.run.00:10
james_wlifeless: I think that's a bug in discover, but I'd like your opinion.00:10
spm"<Fault 8002: 'error'>" <== this is not the error message you're looking for....00:14
spmwgrant: just set 'actinium' back to ok, see if that sorts itself; if it does, I'll do the rest00:15
wgrantspm: Great, thanks.00:15
wgrantSome of the others were out with 'No route to host', which suggests a network glitch of some kind, which could also have caused the 'error's, I guess.00:16
wgrantAlthough the fact that it was all i386 hints that it might have been a rogue recipe build -- I guess we'll see soon.00:16
spmheh00:17
james_wlifeless: ah, it works if you use "." rather than "foo" as the discovery root. I don't think that's ideal, but I can see that discover may want to act the way it does so that you can discover on a root of ../../../somewhere if you want. I'd be happy to chat about this tomorrow if you like.00:18
spmwgrant: nope. looks more serious. it's dropped straight back into "I'm broken" state.00:19
wgrantspm: Argh, anything more useful in the b-m log than good ol' fault 8002?00:20
spmwgrant: you want me to look in logs for meaning vs just making something up!!?!?! good lord man, it's too early on a monday morning for that level of competence!00:21
spmbleh. that seems... unusual.00:26
lifelessjames_w: its a python limitation I suspect02:15
lifelessjames_w: it can't tell, due to the flexability of importing, where in the python namespace '.' is; it may need a second parameter to say 'here is the root', which may not be built in.02:15
lifelessjames_w: so I think discover can be improved02:15
adeuringgood morning08:20
wgrantnoodles775: Morning.08:21
noodles775Hi wgrant and adeuring08:23
adeuringhi noodles775!08:23
wgrantnoodles775: Are you going to have time to arrange a CP of the log parser branch?08:23
noodles775wgrant: We need to QA it first, but yes, it should happen soon. I'm currently organising the CP for the builders timeout (edge is now working with the fix).08:24
wgrantnoodles775: Yep, I noticed edge was looking good.08:24
wgrant(well, apart from the i386 builders, but that's hopefully unrelated)08:25
noodles775wgrant: yeah, has there been any discussion there? I just tried enabling actinium, but it went straight back to Fault 8002. I'll check the logs.08:27
spmnoodles775: https://pastebin.canonical.com/33033/08:29
spmI tried exactly the same earlier today08:29
wgrantYeah, I was wondering what was in the logs.08:29
wgrantGiven that it's only i386, I'm suspicious that a recipe build may have snuck through.08:30
noodles775Last mention of actinium seems fine: 2010-06-07 07:44:58+0100 [-] Processing successful build amd64 build of kwin-effect-bereflected 0.1~lucid~ppa1 in ubuntu lucid RELEASE from builder protactin08:30
noodles775quite recent.08:30
wgrantprotactin != actinium?08:30
wgrantHm.08:30
spmheh, that caught me out as well :-)08:30
noodles775right, I just search backwards...08:31
wgrantprotactin doesn't exist.08:31
noodles775and cut the line while copying...08:31
wgrantAh.08:31
wgrantSo what about actinium?08:32
wgrantAnd who could possibly have thought that having those two names was a good idea? :P08:32
noodles775heh08:32
noodles775wgrant: just the traceback that spm posted... ah, I'll post it on the public one.08:34
noodles775http://pastebin.ubuntu.com/445954/08:35
wgrantOh, useful...08:36
wgrantI guess that firing the rest trigger will fix them, but it might be nice to grab logs first if possible...08:36
wgrants/rest/reset/08:36
kb9vqfI'm looking at setting up a local copy of Launchpad for a project I'm working on, but am having trouble getting Launchpad to accept a different OpenID URL than the default08:36
wgrantOhhhhhhh, rescueIfLost.08:37
wgrantSo it was a network glitch.08:37
kb9vqfHow can I set a custom OpenID URL?  Something in launchpad-lazr.conf?  Is there any documentation for that file?08:37
wgrantspm, noodles775: So, we have a whole lot of builders that need resetting. Is that easy enough?08:38
noodles775Is that something you can do spm? lamont normally does it afaik.08:39
spmnoodles775: no unf, only lamont or one of the gsa's. and it's a NZ holiday, so paul hasn't been around.08:39
wgrant(Basically, the builders dropped of the network for a while. The master noticed, and unassigned their builds. They came back, and the master noticed they were doing something they shouldn't be doing. The master tried to abort the builds. Aborting them is known to be... um.... buggy).08:39
spmha08:39
wgrantJust the slaves need to be reset -- the thing that's done before every build.08:40
=== almaisan-away is now known as al-maisan
bigjoolsmorning all09:18
wgrantEvening bigjools.09:21
maxbjelmer: Hi, about that fretsonfire vcs-import. Should we be complaining that the import of the upstream fretsonfire project was requested into the LP fretsonfire-severedfifth namespace instead of the LP fretsonfire namespace?13:29
jelmermaxb: yeah, we probably should13:36
jelmermaxb: I don't think we're able to change the project of a branch though13:37
jelmermaxb: also, this wouldn't be a problem if URLs didn't have to be unique..13:37
maxbWell, even if not that, it's a minor waste of resources to be importing the same branch twice13:37
=== cr3_ is now known as cr3
maxbI guess we have the option of deleting the branch and requesting a replacement import of our own13:41
wgrantjelmer, maxb: You can change the product through the API.13:43
jelmerwgrant: not when you don't have permission to do so I hope?13:58
wgrantjelmer: Heh, no.14:01
=== salgado-lunch is now known as salgado
mwhudson~vcs-imports has edit on all import branches though14:04
wgrantbigjools: Ugh, that log parser issue is in the apachelog contrib module.14:05
bigjoolsyeah noodles775 just noticed that too14:06
wgrantIt looks likt it might not be a real issue.14:06
wgrantSince it's trying to parse from somewhere other than the start of the line.14:06
wgrantSo... either the exisitng offsets in the DB confused it, or something put bad offsets there.14:07
wgrantYou've not changed the log file content at all?>14:07
noodles775But those lines are passed in by our code (specifically: next_line = fd.next())... so it could be a bad offset... that's a good point.14:08
wgrantIf two have the same first line, the world will end like this.14:08
bigjoolsit should be smarter about offsets and seek to the nearest \n14:09
wgrantWell, it should probably actually complain if there isn't a \n right there.14:09
wgrantSince we want to know if something has gone wrong.14:09
marsgary_poster, here is an in-depth summary of the issue and outstanding questions for bug 58788614:49
mupBug #587886: ec2 test mail reports SUCCESS when the suite fails <build-infrastructure> <Launchpad Foundations:In Progress by mars> <https://launchpad.net/bugs/587886>14:49
marsgary_poster, https://bugs.edge.launchpad.net/launchpad-foundations/+bug/587886/comments/314:49
mupBug #587886: ec2 test mail reports SUCCESS when the suite fails <build-infrastructure> <Launchpad Foundations:In Progress by mars> <https://launchpad.net/bugs/587886>14:49
gary_posterreading, thanks14:49
gary_postermars, looks like shakeout from the subunit integration14:52
marsyep14:52
marslike I said, we need to address the root cause here after the fix goes through.  Otherwise changing the testrunner is always going to be risky and painful.14:53
gary_postermars..isn't the root cause the fact that we have inter-process communication, which is by its nature more fragile for this sort of thing?14:54
gary_poster(and I don't see fixing that particular root cause)14:54
marsgary_poster, yes, but the testrunner claims to have error handling mechanisms in place.  Also, it has no concept of a child layer timeout.14:54
marsso its current mechanism is broken, and it is missing at least one possible safeguard.14:55
adeuringcan somebody give me a clue about this test failure: http://paste.ubuntu.com/446120/ ? it occurs for this branch: lp:~adeuring/launchpad/expectations-bug-556499-model14:55
marsleonardr or gary_poster, ^ haven't we seen adeuring's error before?14:57
leonardrchecking14:57
leonardrit looks like an error occured when generating the json representation of an object (which is stuffed into the HTML for use in ajax)14:58
marsadeuring, yes, check this: https://dev.launchpad.net/Debugging#Getting past "LocationError: 'json'" in TAL template tracebacks14:58
adeuringmars: thanks, will lok14:58
leonardryeah, you need to find the underlying error14:58
adeuringleonardr: the main change in this branch is the adition of a new property that is exposed to the webservice14:59
adeuringthough it is defined via get/set methods14:59
leonardri'll take a look at the branch14:59
adeuringleonardr: but... the error occurs also for r9391 of the branch15:00
gary_postermars, I don't see how a timeout could be coded reasonably for running arbitrary code that has no guarantee of generating anything on stdout or stderr in any particular amount of time.  If you do, cool, show me when you write it, cause I'll want to see what you have in mind (no need to explain now).15:02
gary_posterOn the other topic, an you point me to the "error handling mechanisms" claims?  If the subprocess is running arbitrary code (which it does), and it does not return an error code it seems to me like you're going to have trouble.  The subprocess wrapper code (the code running the arbitrary code) is the place where you have to code very defensively to make sure it catches just about everything.15:02
gary_posterIs that what you mean you need to improve?15:02
gary_postermars: or do you just mean your last point?"Why is the parent testrunner process not failing the suite when it knows that the child process died due to a testrunner error? (I.e. the parent it got a 'Could not communicate with subprocess' flag)"15:04
marsgary_poster, I think the code on either side of the subprocess gap needs to be examined to see why this exception did not cross the IPC channel15:05
marsgary_poster, the latter, what you just quoted15:05
gary_postergotcha mars, thank you.15:05
marsgary_poster, if it knows "my subprocess just died, uh oh", then why the heck didn't the suite error out?15:06
gary_postermars: ack, agree15:06
leonardradeuring: i don't know. can you find the underlying exception? i hope it will make everything clear15:06
adeuringleonardr: yeah, I think mars gave me the right clue15:07
gary_posternoodles775, bigjools: bug 590766 sounds like a high priority.  is it?  noodles775, are you going to take it since it appears to be a continuation of your work for bug 588288, or are you tossing this over?15:08
mupBug #590766: Apache log parser crashes out on the PPA logs <Launchpad Foundations:New> <https://launchpad.net/bugs/590766>15:08
mupBug #588288: log parser should not read entire file into memory <qa-needstesting> <Launchpad Foundations:Fix Committed by michael.nelson> <https://launchpad.net/bugs/588288>15:08
bigjoolsgary_poster: I think it's happened because the offset it's using is out of sync with the file15:08
gary_posterah15:09
bigjoolsgary_poster: and I'd like to toss it over if that's ok :)15:09
bigjoolsthe code should probably look for the nearest \n to the offset15:09
gary_posterbigjools: and it's high priority?15:09
bigjoolsgary_poster: fairly yes15:09
gary_posterok15:09
bigjoolsthanks15:10
gary_posterbigjools: sure.  do you have an easy way to dupe, perchance?  Otherwise I'll try to figure out a way to dupe with the clues you just gave.15:10
bigjoolsgary_poster: it's reproducible on dogfood15:11
bigjoolsbut I suspect that's because the offset that's stored is out of whack for some reason15:11
bigjoolsI'm happy to help test on DF for you15:11
bigjoolsor probe for any more info you need15:12
gary_posterbigjools: ok, thanks, yeah.  I'll probably write up a hack patch soon for you to try to see if we are on the right track before I pursue a full proper branch.15:12
bigjoolscool15:13
noodles775Thanks gary_poster !15:13
gary_poster:-) np15:13
wgrantbigjools: I don't think being more robust and looking for a \n nearby is at all the right solution.15:15
wgrantIt should never happen.15:15
bigjoolsdo expand ...15:15
wgrantUnless we have a bug, or somebody mangles the log files.15:16
bigjoolsnever != will never15:16
bigjoolsand you hit on the right thing with your latter point15:16
wgrantYes, and when it does happen we have a problem, so we probably want to know that it exists.15:16
bigjoolsit should not make the parser bail out permanently15:16
wgrantWhy would somebody be mangling log files?15:16
bigjoolsPEBKAC15:16
gary_posterI agree I'd like to know what the root cause is15:16
bigjoolsnever underestimate human fuckups15:16
wgrantIt only kills the rest of that file, right?15:17
bigjoolsin my case I suspect it's because the dogfood database was restored from production15:17
gary_posterVaguely, I'd prefer to reread the file if we get out of sync, but I don't understand what is going on in this code well enough yet--the diff doesn't give me enough context.15:19
wgrantWe can't safely reread it.15:20
wgrantWe may have already put stuff into the DB from previous runs.15:20
gary_posterI figured we would, but I had hoped we would have enough information around to know what we had already read.  That's obviously uninformed hope; perhaps it can't work.15:21
wgrantWe have the information: the offset.15:21
gary_posterWhich is broken.15:21
wgrantBut the problem here is the case where that information is wrong.15:21
wgrantRight.15:21
gary_posterSo the offset is too fragile.  I thought we might have a datetime of the last read line somewhere.  If not, we could store it.15:22
=== matsubara is now known as matsubara-lunch
gary_posterbigjools: could you email me the specific file that is broken?  I'd like to experiment with it.15:44
bigjoolsI can15:44
gary_posterthank you15:44
bigjoolsgary_poster: ummm it's 1.7G15:45
gary_posterbigjools: ... :-/ devpad, and I15:45
gary_poster'15:45
bigjoolsI can copy it to.... devpad!15:45
gary_posterI will tell you when I have it?15:45
* bigjools needs 2 more arms15:46
gary_posterHe would look funny then.15:47
nigelbIs there plan for LP to have a "press foo to forward to debian" thingy?16:08
james_wleonardr: you might be interested in https://edge.launchpad.net/soupmatchers see http://bazaar.launchpad.net/~soupmatchers-dev/soupmatchers/trunk/annotate/head:/README16:10
=== Ursinha is now known as Ursinha-lunch
jmlnigelb, it's definitely within scope, but there aren't concrete plans to implement it right now.16:58
=== matsubara-lunch is now known as matsubara
=== beuno is now known as beuno-lunch
henningeCan somebody tell me where we import the sortable tables from that we use in Launchpad?17:09
henningeAre they LAZR-JS?17:09
marsgary_poster or sidnei, Zope question: if I want to add a test to zope.testing for a specific corner case, do I have to use a doctest to do it?17:21
marsgary_poster, sidnei, I would normally use a unit test for corner cases and test to increase code coverage.  The test in question is to ensure a bug is not present.17:22
sidneimars, no, you don't need to use a doctest. in fact, if you're willing to convert all doctests to unittests you would be very welcome :)17:22
marssidnei, alright, where in zope.testing would this unit test go?  "testrunner-ex" doesn't sound right17:25
marssidnei, oops, have to go, lunch is served, back in 1hr17:25
nigelbjml: I'm trying to write something that links with reportbug17:31
nigelbbug anyway, hooking with debian bts should be easier than most, since its easy to opena  new bug.17:31
nigelbbut its the searching that might be a bit challenging17:32
ScottKreportbug has searching code and it's in Python ....17:32
nigelbScottK: oh, reportbug is python? if only I knew, I wouldn't be pulling my hair out last weekend17:35
ScottK;-)17:36
nigelbScottK: in that case its only trivial for me to add the querying LP part to reportbug as such as a new feature!17:39
nigelbI shuold try doing that this weekend17:39
=== deryck is now known as deryck[lunch]
=== beuno-lunch is now known as beuno
=== Ursinha-lunch is now known as Ursinha
=== deryck[lunch] is now known as deryck
marssidnei, back19:00
sidneimars, so tests are registered in tests.py. i see they are pretty much all doctests. but that shouldn't prevent you from writing a unittest19:03
sidneimars, testrunner-ex contains sample tests used by the doctests to trigger failure conditions and edge cases apparenlty19:03
marssidnei, yes, it looks that way19:05
marssidnei, ok, I see the subunit tests block near the end of tests.py.  Looks like that is the place to put unit tests.19:06
sidneiyeah19:07
marssidnei, should I create a new subdirectory just for unit tests? 'unit', or 'tests' or something?19:08
marssidnei, I am a bit hobbled here by my ignorance of zope project conventions19:09
sidneimars, uhm. instead of tests.py it should really be a tests directory there, and maybe a test_doctests.py inside. i think no-one bothered to fix that.19:10
sidneimars, maybe just add the test to tests.py19:10
marsI'm not sure that is a good idea.  That file is large enough already.19:13
marsAdding an unknown number of xUnit tests to it would just pollute the module.19:14
marssidnei, I could create a tests/ directory and put test_subunit.py inside it19:15
marsit would be a partial refactoring19:15
sidneithat sounds good too19:15
marsok19:17
marssidnei, ah, won't work: a 'tests' package directory would raise a name conflict with the existing 'tests' module19:18
sidneiyeah, so i thought.19:19
marstesttestrunner :P19:19
sidneimars, best way would be to move tests.py to tests/test_doctest.py as i suggested.19:19
marssidnei, and what about testrunner-ex and friends?19:20
sidneimars, as i said, that's sample code used by the doctests19:20
marsleonardr, ping, just did a rf-get and build, am getting an AssertionError from the apidoc/index.html build step.  Known issue?20:06
leonardrmars, i don't know about it. pastebin?20:14
jmlmars, btw, can I look at your patch for zope.testing when it's done?20:14
marsjml, sure.  may be a bit, I have to craft a reproduction of the error20:15
jmlmars, that's ok. I'm on vacation so not in any kind of rush :)20:16
jml(yes I suck at vacation)20:16
marslol20:16
marsleonardr, here is the output of 'make clean && make' on a fresh branch of devel: http://pastebin.ubuntu.com/446264/20:21
leonardrmars: hypothesis: someone landed a web service branch recently that broke this20:22
leonardri don't know why they were able to land it, since apidoc.txt should have failed20:22
leonardrbut that's the most likely explanation20:22
marsleonardr, fake success mail from ec2?20:22
leonardr"web service branch" = "branch that messes with or publishes something new on the web service"20:22
leonardryeah, i guess20:22
marsleonardr, do you know how to fix it?20:23
marsI don't :)20:23
leonardri know how to fix it on a high level, ie. 1) find the branch that caused the problem, 2) run the test, 3) fix the failure20:24
leonardrbut i have no idea what the actual problem is--it could be anything anywhere in the web service20:25
leonardrmars: i'd start looking at rev 10953, adiroiban's POTemplate change20:26
marsleonardr, we'll find out in 27 minutes :)20:29
marsif buildbot is accurate20:29
=== matsubara is now known as matsubara-afk
leonardrmars, i was able to make revision 1095220:41
marsI don't trust the buildbot estimates any more.  Refreshing the page removed 2 minutes from the estimate since I last spoke of it, 20 minutes ago.20:50
brycehhttps://bugs.edge.launchpad.net/ubuntu is oopsing for bdmurray and I, is this a known issue?21:19
marsbryceh, I was having similar problems with my branch listings page OOPSing earlier today.  There was mention of increased database loads due to some OAuth code.  gary_poster, could they be related?21:21
gary_postermars, no what stub was talking about was systemic, not specific to today or this week or this month.21:22
marsgary_poster, ok21:22
brycehthe error I see is:  Module lp.bugs.model.bugtarget, line 211, in getBugCounts21:22
bryceh', '.join(select_columns), ' AND '.join(conditions)))21:22
brycehQueryCanceledError('canceling statement due to statement timeout\n',)21:22
bryceh(https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1619ED1527)21:22
leonardrmars, binary search has revealed it's got to be either 10958 or 1095921:22
marsleonardr, ah, have to love the binary bug search :)21:23
bdmurraywell it couldn't be 10959 ;-)21:24
marshehe21:25
maxbjelmer: Did you follow up about that fretsonfire import or did jonobacon apparently delete it himself for another reason?21:30
leonardrmars, bdmurray, it's 1095921:30
jelmermaxb: I haven't followed up21:31
bdmurrayleonardr: can you provide some guidance for fixing it?21:31
maxbok, I'll write to him since he's deleted the old import and requested a new one21:31
jelmermaxb: you can also msg him on irc, he's 'jono' on this network21:32
leonardrbdmurray, first step is to find the underlying problem21:33
marsleonardr, gary_poster, r10958 built fine for me.21:34
lifelessmy gyess21:35
lifelesshe couldn't find the edit-details button to fix it21:35
leonardrbdmurray21:41
leonardrthis should be easy to fix21:41
leonardryou define a new argument to searchTasks, which is a reference(schema=Interface)21:41
leonardryou did what other, similar arguments did21:41
leonardrbut what you didn't see is that that value doesn't stay Interface forever21:41
leonardrit only starts out as Interface to avoid a circular import21:41
leonardrtake a look at lib/canonical/launchpad/interfaces/_schema_circular_imports.py21:42
leonardryou'll see # IHasBugs21:42
leonardrand then a number of calls to patch_plain_parameter_type()21:42
kb9vqfHow can I set a custom OpenID URL?  Something in launchpad-lazr.conf?  Is there any documentation for that file?21:42
leonardreach of those replaces the 'Interface' in one Reference(schema=Interface)21:42
leonardryou need to add a call to patch_plain_parameter_type(IHasBugs, 'structural_subscriber', ???)21:43
leonardrthe question is, what goes in that ???? What type of object is structural_subscriber, really?21:44
leonardrit looks like it's an IPerson21:44
leonardrso you would add patch_plain_parameter_type(IHasBugs, 'structural_subscriber', IPerson)21:44
bdmurrayleonardr: right, it is.  and then would I just resubmit it to pqm?21:45
leonardryes21:45
leonardrmake sure that 'make' works after you make your change21:45
gary_posterleonardr, bdmurray: awesome, thank you21:45
bdmurrayleonardr: yes, of course.21:45
leonardrgary, np21:45
bdmurrayleonardr: thanks for the help21:46
leonardrsure21:46
=== al-maisan is now known as almaisan-away
gary_posterbryceh: did you make a bug for that?  If not, I will.22:07
gary_posterbryceh: (the timeout on https://bugs.launchpad.net/ubuntu and https://bugs.edge.launchpad.net/ubuntu)22:07
brycehgary_poster, nope I didn't22:12
gary_posterbryceh: on it22:12
maxbDoes anyone know why https://code.edge.launchpad.net/~chanwit/groovy/ck1 would not be showing a 'Branch metadata' section?22:34
marsmaxb, thumper might22:35
thumpermaxb: what do you mean?22:38
LonniebizSome questions:  Does launch pad solve the same problems that bugzilla does?22:45
LonniebizCan you install it on you own Ubuntu server, and make it work the same way launchpad.net works?22:46
LonniebizCan a software development company use Launch Pad for project management?22:46
lifelessyes22:46
lifelesssorry, in order22:47
lifelessno (solves more than)22:47
lifelessyes you can install it yourself, if you have the time and willpower to admin it (its not .... lightweight); you *must* rebrand it if you do that.22:47
lifelessYes, you can use launchpad for some project management tasks, either hosted (launchpad.net, speak to bac for commercial subscription info), or on your own one (see my immediately previous answer)22:48
LonniebizMy company is looking for a Software Project Manangement solution.22:48
LonniebizBeen looking at Jira, but thought about how much I liked how Ubuntu allows you to submit bugs and stuff.22:48
LonniebizWe develop software that is commercial, but need something to track us through the Software Development Life Cycle.22:49
lifelesssure22:50
lifelesslaunchpad.net can host such things22:50
LonniebizThink installing LaunchPad on our Ubuntu server would be too involved a solution. I'm a big Ubuntu fan myself....22:50
maxbthumper: Normally a branch page shows a 'Branch metadata' section showing its format, and if its stacked22:51
maxbBut it's missing on that one branch22:51
LonniebizI've read this: https://dev.launchpad.net/Getting22:51
LonniebizAfter I complete those steps, will it be as simply as navigating to an internal ip such as http://localhost/LaunchPad   ?22:52
thumpermaxb: the branch hasn't been scanned since we added the metadata, so nothing to show22:52
maxboh, I see22:52
Lonniebizthen just add a project through the web interface?  Is it that simple or much much more involved.22:52
maxbIt is MUCH MUCH more involved22:52
maxbFor a start, you *must* rebrand it22:52
maxbAnd also learn lots about how the many components fit together, and how to run it in production, which isn't documented anywhere public22:53
LonniebizYeah, but at first, we'd be just using it internally; If we were to let customers see it, we'd surely take the step of rebranding it.22:54
maxbTo use it internally _legally_ you'd have to rebrand it first22:54
LonniebizFor now, we're just looking at it more as a development tool than a customer feedback tool.22:54
maxbso says the licence22:54
Lonniebizoh, I see.22:54
maxb(This annoys me too)22:54
gary_posterLonniebiz: FWIW, https://answers.edge.launchpad.net/launchpad/+faq/20822:55
LonniebizWell, that doesn't seem hard, just change the logo right, and replace any word "launchpad" with "CompanyA", right?22:55
maxband design replacements for all of the many icons....22:55
gary_poster(Again FWIW, I also think you are significantly underestimating the setup involved, as maxb suggested.)22:56
Lonniebizthat could be laborious...22:56
=== Ursinha is now known as Ursinha-afk
rockstarwgrant, ping23:40

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