/srv/irclogs.ubuntu.com/2020/02/24/#launchpad-dev.txt

tomwardillsigh, ssl10:57
ilascsigh, Turnip unit tests :)11:01
tomwardillat that stage of 'how did it ever work'11:06
ilasc:( same here, except I know how.... I commented out unit tests and now: "Ran 246 tests in 27.055s OK", that's how it worked :)11:11
ilasc*my* unit tests11:11
tomwardillI'm trying to work out how the dev certificate ever worked11:11
ilaschmmm tough one to debug ..11:13
cjwatsontomwardill: I thought there was some commentary about how that was put together11:14
tomwardillcjwatson: there's a script for it11:14
cjwatsonRight11:14
tomwardillI've successfully altered and used the script11:14
tomwardillbut this morning, another cert generated using the script doesn't work11:15
cjwatsonPeculiar11:15
tomwardillyeah11:16
tomwardillI'm sure I've done something silly somwhere11:16
SpecialK|CanonI guarantee I've done something silly somewhere11:25
SpecialK|Canon(What were we talking about?)11:25
cjwatsonIncidentally, I've got the test suite to start up on Python 3.  15000 lines of diff or thereabouts, so I'll be trickling in various MPs over time11:27
cjwatsonWhole hundreds of tests pass!11:27
cjwatsonLet's quietly ignore the thousands that don't for now11:27
ilasc:)11:28
ilasc+111:28
SpecialK|Canoncjwatson: niiiiice11:28
cjwatson(And I'm also going to be firmly putting this aside for a bit even though it's a fun toy, because there are a few other things I really need to get done)11:28
SpecialK|Canoncan you dig^Wpush it in any useful form?11:29
cjwatsonNot really yet, but certainly an aim11:29
cjwatsonWell I mean I suppose I can throw the branch up on the understanding that it's all a pile of poo11:30
cjwatsonhttps://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+ref/py311:30
SpecialK|Canongit push origin here-be-dragons ;)11:30
SpecialK|Canon(fab, thanks :))11:30
cjwatsonI will not be supporting this in any way shape or form for the moment :)11:31
cjwatsonAnd it'll rebase freely11:31
cjwatsonOh also it relies on lazr.restful work that isn't pushed anywhere yet11:32
cjwatsonThat's more annoying to casually push because bzr11:32
SpecialK|Canonis there any expectation that branches are in any way supported?11:32
SpecialK|Canoner11:33
SpecialK|Canonthat non-"mainline" branches etc. etc.11:33
cjwatsonWell maybe not supported, but I mean "don't ask me questions about how to get it running"11:33
SpecialK|Canonright sure11:33
cjwatsonMy lazr.restful branch is https://code.launchpad.net/~cjwatson/lazr.restful/py3-declarations/+merge/378548 plus https://paste.ubuntu.com/p/nX9zfPPg4q/11:34
cjwatsonThe biggest remaining problem with lazr.restful is that it runs into cgi.FieldStorage bugs on Python 3 and I haven't worked out how to sort those out, especially since cgi.FieldStorage is going away in 3.9 or so11:34
cjwatsonMakes it hard to get the test suite going properly11:35
cjwatsonIt's no doubt workaroundable somehow, just haven't spent the relevant time on it11:35
cjwatsonOh and also https://code.launchpad.net/~cjwatson/lp-source-dependencies/+git/lp-source-dependencies/+ref/py3 for dependencies11:37
SpecialK|Canontomwardill: iirc you asked something about Buildbot versions a while back?11:58
SpecialK|Canontomwardill: I know ~0 about Buildbot but I did just clock that we're running 0.8.5 and latest stable is 2.6.011:59
tomwardillwell, that's fun :)11:59
SpecialK|Canon(I know long-term we're looking at a variety of things we can/should do there, but part of me wonders about the ROI on even a small version bump?)12:01
cjwatsonSpecialK|Canon: This is more a function of praseodymium still running precise than anything else12:10
cjwatson(We run distro buildbot packages, or backports of them, I forget which)12:11
cjwatsonWe should at least get that upgraded to xenial; praseodymium is a weird and critical system that I have roughly 0 visibility into, which is more or less why we haven't12:11
SpecialK|CanonMakes sense, thanks12:13
cjwatsonSpecialK|Canon: https://portal.admin.canonical.com/C110859 for history of the last major buildbot care-and-feeding work we did12:15
cjwatsonAnd I suppose the superseded https://portal.admin.canonical.com/C106558 too12:16
cjwatsonI think precise → xenial is likely rather less rough than lucid → precise was but I've never tested it ...12:17
SpecialK|CanonI can't find sluagh and radande on https://wiki.canonical.com/Launchpad/Instances - are they pining for the fjords?12:17
cjwatsonThat page doesn't really list build/test infrastructure12:19
SpecialK|Canonright ok12:19
cjwatsonAnd indeed, there's probably more upgrade complication on the worker side12:20
cjwatsonDue to the pre-release implementation of ephemeral containers that they're currently using12:21
cjwatsonBut hopefully 0.8.12 master and 0.8.5 workers can interoperate so we could decouple that upgrade?  Not sure12:21
cjwatsonI'm unlikely to be able to look at it for ... a while, but would be happy to braindump what I know on somebody else if need be12:23
cjwatsonFortunately buildbot is such that we don't need continuous availability.  If the answer ends up being hold breath, upgrade, fix up on the other side, that may be workable as long as we're reasonably confident we'll be able to put the pieces back together12:24
SpecialK|CanonIs there an enumeration of "what buildbot does for us" anywhere?12:25
SpecialK|CanonI'm wondering to what extent we can avoid "a careful upgrade from a 2012 version" and just go for "drop it and go with something different, whether that's latest-stable buildbot or a Jenkins or similar"12:27
SpecialK|CanonI'm not suggesting we do the latter lightly, or that it's without risk/cost etc.12:27
cjwatsonWe're not wedded to buildbot if something else works.  The main thing is making sure that test runs don't get substantially slower, since they already take a long time; our current setup does careful IIRC 24-way parallelisation spreading tests across multiple containers on beefy-for-the-time machines12:30
cjwatsonI have no idea how long it would take if we just did a naive implementation on current Jenkins/scalingstack, and those would be useful numbers to have12:30
SpecialK|CanonAh, yes, I'd forgotten that nuance, thanks12:30
cjwatsonWe do have some automation around buildbot runs which deal with merging {master,db-devel} into {stable,db-stable} when their corresponding test runs pass, and merging master into db-devel when tests on master pass12:31
cjwatsonThat would be easy enough to reinvent on top of something else if we needed to12:32
cjwatsonI don't think there's really anything else worth mentioning12:32
cjwatsonI'd also say that I don't know of any problems particularly attributable to the old version of buildbot at the moment (we have buildbot unreliability in various ways, but AFAIK those are all due to bugs in the LP test suite, often related to parallel testing).  Do you?12:33
cjwatsonOf course keeping tools current is a worthy goal in and of itself12:34
cjwatsonAnd there are possibly interesting things we could do with less basic tooling.  But just trying to get a sense of why you're asking12:35
SpecialK|CanonOh sorry yes12:36
SpecialK|CanonStandard "can we make things easier/better by upgrading/removing this and what's the ROI like?@12:36
SpecialK|Canon*"12:36
SpecialK|CanonAnd I was reminded of buildbot now I'm on canonical-launchpad and get emails about failures12:37
cjwatsonI think I fixed one of the main sources of buildbot unreliability in https://github.com/testing-cabal/txfixtures/pull/13 + https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/37945612:40
SpecialK|CanonAh yes I saw that - nice12:41
SpecialK|CanonJust to be clear I'm not saying I think buildbot is unreliable, just that the emails prompted me to go looking at it12:41
cjwatsonThe remaining ones seem to be lp.services.job.tests.test_celeryjob.TestRunMissingJobs.test_run_missing_ready_does_not_return_results (e.g. http://lpbuildbot.canonical.com/builders/lp-db-devel-xenial/builds/865/steps/shell_9/logs/summary), lp.buildmaster.tests.test_interactor.TestSlave failing in various ways (e.g. ...12:44
cjwatson... http://lpbuildbot.canonical.com/builders/lp-db-devel-xenial/builds/864/steps/shell_9/logs/summary, http://lpbuildbot.canonical.com/builders/lp-db-devel-xenial/builds/860/steps/shell_9/logs/summary), lp.testing.layers.RabbitMQLayer:setUp timing out (e.g. http://lpbuildbot.canonical.com/builders/lp-devel-xenial/builds/1052/steps/shell_9/logs/summary)12:44
cjwatsonAnd to be fair there is one thing that is an issue with buildbot, although it was triggered by upgrading zope.testrunner; buildbot has an old version of subunit that doesn't understand the much more robust v2 protocol, so it sometimes raises exceptions when trying to parse the subunit output from builds, which is v annoying12:45
cjwatsonAll the remaining issues are hard to reproduce locally or I'd have fixed them already ;-)12:46
cjwatsonBut if any of us ever happen to run across one of them locally, and we aren't dealing with some kind of seriously urgent fire at the time, then I'd urge dropping everything else to take the opportunity to figure it out - it will pay off12:47
SpecialK|CanonNeat, cheers12:50
cjwatsonI think upgrading praseodymium to xenial would let us fix the subunit thing.  Probably12:53
tomwardillgah, sigh15:07
tomwardillstill had a py3 virtalenv in my turnip instance15:07
tomwardillthis did not end well15:07
tomwardillor infact, start well15:08
cjwatsonWould anyone be up for reviewing this small series?  https://code.launchpad.net/~cjwatson/lp-source-dependencies/+git/lp-source-dependencies/+merge/379682 https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/379683 https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/37968415:37
cjwatsonI believe it should significantly improve our deployment speeds15:37
cjwatsonThis is sort of as discussed in the Tuesday weekly meeting a week or two ago: instead of worrying about making sure every deployment target can build wheels, arrange for a full set of wheels to be part of the deployment artifact15:39
cjwatsonAnd entirely sidesteps the fact that pip's automatic wheel cache isn't relocatable15:40
SpecialK|Canonnice15:42
cjwatsonAnyone object to me self-approving https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/379509 (six-xmlrpclib)?  It's big but basically mechanical15:55
SpecialK|Canoncjwatson: no objections - I skim-reviewed just for lightweight value15:57
cjwatsonThanks, I'll take that as sufficient and the test suite can find anything I might have missed15:58
tomwardillcjwatson: is it possible to login as someone when using 'make iharness'?15:59
tomwardillI'm getting a bunch of ForbiddenAttribute errors with pretty much everyting (including DistributionSet.getByName)16:00
cjwatsontomwardill: iharness uses execute_zcml_for_scripts, so logging in isn't usually necessary16:01
tomwardillhmm16:01
cjwatsonCan I see your current code?16:02
tomwardillcjwatson: https://pastebin.canonical.com/p/7R5HG32NKK/16:03
cjwatsonOh, that's a known annoyance of iharness16:03
cjwatsonIf you just let the default REPL try to print things for itself then it wants to get at __dict__ of objects and the proxy tends to forbid that16:04
cjwatsonBut you can assign to variables, or you can do print(foo)16:04
tomwardillaha!16:04
tomwardillyep, print(ds_set.getByName('ubuntu')) works16:05
tomwardillthanks16:05
cjwatsonWould be nice to work out a way to make that less irritating, but it's easy to work around once you know about it16:05
cjwatsonAlso https://code.launchpad.net/~cjwatson/lpjsmin/tox/+merge/379695 to start bringing another dependency into shape16:14
cjwatsonAnd https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/379654 and https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/379657 are simple (and much shorter) import rearrangements16:15
tomwardillooo, I've made a recipe16:19
tomwardillnow to work out how to dispatch that16:19
tomwardillcjwatson: +1 to all16:20
cjwatsonI haven't done the views for that yet IIRC, so that might be mildly tricky16:20
tomwardillthe death of buildout makes me sad though16:20
cjwatsonI suppose you can .requestBuild in harness16:20
tomwardillyeah, that's why I'm in iharness poking things16:20
cjwatsonYeah, buildout was nice in its day16:20
cjwatsonEven in 2014 I was still going "OK, how the hell do I get this thing to build", though16:21
cjwatsonNot sure how much that's about buildout and how much about the way our projects use(d) it16:21
tomwardillhttps://pypi.org/project/isotoma.recipe.django/1.2.2/16:22
tomwardillI think that was everyone's response to buildout tbh16:22
cjwatsonThen https://code.launchpad.net/~cjwatson/lpjsmin/py3/+merge/379696 makes it actually work on py316:23
cjwatsonWas short enough I didn't bother trying to split it up further16:23
cjwatsonYeah, recipes were quite nice when you found/wrote one tht worked16:25
tomwardillcjwatson: if I've done requestBuild() do I need to do anythign to process that and dispatch it?16:45
tomwardill(I've got LP running via 'make run' and have buildd-manager running)16:45
cjwatsontomwardill: transaction.commit()16:49
cjwatsontomwardill: But not otherwise; check buildd-manager logs to see if it's complaining about anything, e.g. a missing base image16:49
tomwardillah, that is feasible16:50
* tomwardill locates logs16:50
SpecialK|CanonWas playing with tomwardill's lp-btw (sorry I forgot the name already)16:52
tomwardillhmm, nothing in the buildd logs, the build appears to be in the state 'NEEDSBUILD'16:52
cjwatsontomwardill: the other trick here is to make sure you have at least one virtualised buildd16:55
cjwatsonor it won't ever dispatch16:55
tomwardillaha!16:56
tomwardillthat might be it16:56
cjwatsonyou can make it be fake-virtualised via a trick I forget16:56
SpecialK|Canonwhat's with all the relinking stuff we do with the rocketfuel* scripts?16:56
cjwatson(i.e. so it doesn't actually try to call ppa-reset)16:56
tomwardill2020-02-24 16:56:09+0000 [QueryProtocol,client] exceptions.TypeError: ('Could not adapt', <OCIRecipeBuild ~name16/ubuntu/+oci/test-oci-project/+recipe/test-oci-recipe/+build/1>, <InterfaceClass lp.buildmaster.interfaces.buildfarmjobbehaviour.IBuildFarmJobBehaviour>)16:56
tomwardilllooks like I have a bug!16:56
SpecialK|Canonyay!16:57
cjwatsonAh yes, configure builddmaster.vm_resume_command to /bin/true or something16:57
cjwatsonSpecialK|Canon: relinking?16:57
cjwatsonoh that16:58
cjwatsonSpecialK|Canon: it was particularly good for bzr to avoid having a bazillion copies of dependency checkouts for every branch you ever had, but it's still handy for worktrees16:58
SpecialK|Canonnaively it looks like it's reimplementing virtualenvs16:58
cjwatsonno16:58
cjwatsonit's for sourcecode/, which is not virtualenv16:59
cjwatsonit's sort of more like codetree16:59
cjwatson(in fact I have an unreviewed MP somewhere to make it use codetree ...)16:59
SpecialK|CanonI recognise that the README says not to ask about sourcecode/16:59
SpecialK|Canonbut uh16:59
cjwatsonbut the symlink stuff is to avoid having to have lots of checkouts16:59
cjwatsonhttps://paste.ubuntu.com/p/kKftSPNTXM/17:00
cjwatson(let's leave aside that my primary worktree links into an old bzr directory ... I should fix that)17:00
SpecialK|CanonDon't we have lots of checkouts anyway? Isn't that what rocketfuel-get does just beforehand?17:01
SpecialK|Canonright, ok17:01
cjwatsonTo be fair there may well be cruft in rocketfuel-get; I don't use it much17:01
cjwatsonBut I think the idea is that after it pulls it goes around and updates all your worktrees (née branches)17:02
cjwatsonWas more necessary with bzr17:02
SpecialK|CanonActually sorry when you say "more like codetree"17:04
cjwatsonhttps://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/37373717:04
SpecialK|CanonI thought the primary value of codetree was for cross-language / cross-visibility stuff?17:04
cjwatsonthe relinking stuff isn't like codetree, but sourcecode/ in general is17:04
SpecialK|Canonvs. e.g. `pip install --editable`17:04
SpecialK|Canonah ok17:04
cjwatsonNot particularly; codetree is for cheap-and-cheerful vendoring-by-checkout17:05
SpecialK|CanonI very much enjoy the number of deleted lines in that MP!17:05
cjwatsonWith pinned versions17:05
cjwatsonSee https://git.launchpad.net/launchpad/tree/utilities/sourcedeps.conf, which you'll probably notice looks awfully like a codetree input file17:07
cjwatson(I think it was originally config-manager, back in the day)17:07
SpecialK|Canonhttps://bazaar.launchpad.net/~codetree-maintainers/codetree/trunk/view/head:/README.md#L14 I think you're right!17:08
SpecialK|CanonOh wait you mean sourcedeps was17:08
cjwatsonWell, both17:08
cjwatsonIt's possible the pile of stuff in lib/devscripts/ predates config-manager being a separate thing.  I haven't bothered to go back and dig through the history17:09
cjwatsonBut in any case, no point maintaining all of that in-tree IMO17:09
cjwatsonIt is separately true that everything in sourcecode/ (now that mailman is gone) could in principle be moved into the virtualenv, and that this would be an improvement17:11
cjwatsonThere are some details of bzr/brz plugins that I'm not sure about17:12
cjwatsonSo in that sense, yes, this is reimplementing virtualenv and should die17:12
cjwatsonIt's just a matter of working out all the details at this point17:13
SpecialK|CanonNodnod - I hope it's clear I'm not suggesting it's easy/straightforward! Just trying to get a clearer understanding in terms of things I'm more familiar with17:14
cjwatsonYeah17:15
cjwatsonloggerhead is https://bugs.launchpad.net/loggerhead/+bug/383360 / https://bugs.launchpad.net/loggerhead-breezy/+bug/183166117:15
mupBug #383360: Loggerhead doesn't declare its dependencies in setup.py <easy> <loggerhead:Triaged> <loggerhead-breezy:Fix Released> <https://launchpad.net/bugs/383360>17:15
mupBug #1831661: loggerhead can't reasonably be installed using pip due to self-import in setup.py <loggerhead-breezy:New> <https://launchpad.net/bugs/1831661>17:15
cjwatsonI'm hoping old_xmlplus and pygettextpo can go away; I have a semi-tested patch to convert the latter to Babel17:15
cjwatsonFor the former, I think I was complaining the other day about how painful it was to parse XML DTDs in Python; that's why17:16
cjwatsonSome of the others relate to work jelmer has been doing to build more previously-in-plugins functionality directly into breezy17:16
cjwatson(I'm explaining in detail here since I hope somebody will be enthusiastic about picking up some individual part of the puzzle ...)17:17
SpecialK|CanonCould you explain in detail in a LP bug / Trello card please? I'm enthusiastic but also timeslices...17:18
cjwatsonhttps://bugs.launchpad.net/launchpad/+bugs?field.searchtext=sourcecode :)17:19
SpecialK|Canontouche ;)17:19
* SpecialK|Canon needs to sort out his compose key17:19
tomwardillooh, it tried to dispatch a build17:32
tomwardillbut failed because the builder is missing some configuration17:32
tomwardillcjwatson: my buildd manager / buildd appears to have got itself stuck in 'cleaning', despite me restarting everything (I think)17:50
tomwardilloh wait17:50
tomwardillliterally as I type that, it does a thing17:50
tomwardill"Scanning 10.104.9.248 failed with: builder_proxy_auth_api_admin_secret is not configured."17:50
cjwatsonRight, probably in a slightly inappropriate timeout loop or similar17:54
tomwardillwhereabouts should I put that configuration?17:54
cjwatsonconfigs/$LPCONFIG/launchpad-lazr.conf17:55
tomwardilloh, it's LP side, not buildd side?17:57
cjwatsontomwardill: Yep18:01
cjwatsonbuildd-manager contacts the snap proxy to get a token to dispatch to the builder18:01
tomwardillaaah, right18:01
* tomwardill configures, restarts everything, waits for it to wake up18:02
cjwatsonIt's complex to set up at the moment; if you don't have it there already then you could just unset builder_proxy_host?18:02
cjwatsonBut maybe you have it18:02
tomwardillaah, I don't have it, so yeah, that makes most snese18:03
* tomwardill waits more18:03

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