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

tomwardilllanding rocketfuel changes branch11:28
cjwatsontomwardill: Er11:29
cjwatson+getopt_output="$(getopt -o '' -l no-workspace,lpusername:,assume-yes -- "$@")" || exit 111:29
cjwatson++eval set -- "$getopt_output"11:29
cjwatsonSecond line is a syntax error isn't it?11:30
tomwardillhuh11:30
tomwardillerr, sure I tested that11:30
tomwardillone mo11:30
tomwardill...11:30
cjwatsonYou can switch it back to Needs Review if you're quick11:31
tomwardillyeah, just did11:31
tomwardillhopefully quick enough11:31
cjwatsonYeah11:32
cjwatsonAlso the "while :; do" indentation is still weird11:32
cjwatsonShouldn't it start at column 1?11:32
tomwardilloh, so it should11:33
tomwardillit was originally tabbed, not spaced11:33
tomwardillso that's what I thought you meant :)11:33
cjwatsonAh - no, I meant the vertical position :)11:33
tomwardillokay, both fixed11:34
cjwatsonCool, looks better now :)11:34
* tomwardill clears throat...11:34
tomwardill"landing rocketfuel changes branch11:35
tomwardill"11:35
tomwardill(take 2)11:35
cjwatsontomwardill: Could you have a look at https://code.launchpad.net/~cjwatson/lp-source-dependencies/+git/lp-source-dependencies/+merge/378804 and https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/378805 ?  More attempts to get staging working12:56
tomwardillon it12:57
tomwardill+1 to both12:58
cjwatsonThanks12:58
cjwatson(I think we should seriously reconsider the policy of using sdists for most things and wheels only where necessary.  Installing sdists involves executing code and is generally a much slower and much more complex operation than installing wheels.  For pure-Python packages it makes basically no difference to auditability, or if anything probably improves it since you're just unpacking zip files ...12:59
cjwatson... rather than doing complicated things with setup.py.  For packages containing extensions we do indeed need to make sure that we trust the builds; but we could build them once somewhere trustworthy and commit that, which we have to do anyway in several cases.)12:59
cjwatsonI remember wgrant being opposed at one point to lp-source-dependencies containing very many wheels, but it's possible I misunderstood him, that he's changed his mind, or that I can persuade him. :-)13:00
wgrantFor pure python maybe13:01
wgrantBut for extensions we'd have to do weird things to separate them by arch, series, etc.13:01
cjwatsonWe already do by arch13:02
cjwatsonSeries perhaps13:02
wgrantAlso a full build really doesn't take that long13:02
cjwatsonUh13:02
cjwatsonIt really does13:02
cjwatsonIt massively slows down our production deployments13:02
wgrantThat might advocate for wheels being included in the deployment artifact13:03
cjwatson(We mostly don't notice locally because most people don't rm -rf download-cache/wheels/)13:03
wgrantI'm pretty sure the build on my desktop took under ten minutes13:04
wgrantAfter I did that13:04
cjwatsonYeah, it's a lot worse on a lot of our hardware13:04
cjwatsonThe staging deployment hadn't even finished failing everywhere after I got up this morning, so it spent something like nine hours just doing five or so builds13:05
cjwatsonThere's a problem with pip's wheel caching - the wheels are cached by hash of the source path, so the download cache isn't preserved usefully when we sync it out to deployment targets13:05
cjwatsonBut maybe we could copy them out to some other directory with predictable paths and then use that in the deployment artifact13:06
wgrantThat is so weird13:07
cjwatson(sdists also involve dealing with the usual setup_requires nightmare)13:09
cjwatsonMostly much better with setuptools invoking pip to do that now, except that that's actually made things worse on Python 3 due to https://github.com/pypa/pip/issues/626413:10
cjwatsonOn Python 2 we dodged that bug due to luck13:10
cjwatsonI think we're going to have to finish the job of abolishing our use of --system-site-packages13:11
cjwatsonWhich would make things much less confusing anyway, but there are a couple of remaining hard problems to solve13:13
cjwatsonBasically python-apt and python-pil (and maybe python-tdb for code imports, but we can probably just add that to the virtualenv)13:13
cjwatsonFor python-apt I have an evil plan that looks more or less like https://paste.ubuntu.com/p/4xHRt4xZwS/13:17
cjwatsonWe'd have to keep up with updates (but we have to do that anyway for lots of our Python dependencies) and there may be some care involved with libapt compatibility, especially across series, but those problems seem tractable13:18
cjwatsonI'm not sure I'm comfortable taking that sort of approach for python-pil / pillow though, because ouch @ image parsing libraries on our security boundary13:19
cjwatsonAside from some build system stuff, we only use it for checking sizes of images uploaded in forms.  I wonder if we could plausibly just call out to imagemagick for that13:23
pappacenaThanks for the comments on my MP, cjwatson. I'm splitting the ArchiveSigningKey renaming into this new one: https://code.launchpad.net/~pappacena/launchpad/+git/launchpad/+merge/378826 while I'll check the other feedbacks16:29
tomwardillthat discussion of development environments in London was ace, as it caused me to actually fix all the broken things in mine16:32
cjwatsonpappacena: Great, thanks, will look16:34
roadmris this a good place to whine about Launchpad timeouts on specific operations? :)16:56
cjwatsonOnly if they come with OOPS IDs16:57
tomwardilland cake16:57
roadmrhttps://oops.canonical.com/oops/?oopsid=OOPS-e0d2dfcb5398a0477ac9d343b669f4c1 🎂16:58
roadmrthat's a sample OOPS but - it used to sporadically timeout when adding people to the sso-2f-testers team - these days it *always* times out (but still adds the person)16:58
roadmrmaybe the list of people is now too big? it's 1300 or so I think16:58
cjwatsonYeah, looks like it needs some bulk-loading.  Could you file a bug and quote the OOPS ID please?16:59
roadmrtotally16:59
* cjwatson probably won't have time but hopefully somebody else will :)17:00
roadmryes, and it's not a showstopper, just annoying17:01
roadmrthanks!17:01
roadmrhttps://bugs.launchpad.net/launchpad/+bug/186267017:06
mupBug #1862670: timeout/oops when adding people to a certain LP team (but adding still succeeds?) <Launchpad itself:New> <https://launchpad.net/bugs/1862670>17:06
wgrantcjwatson: I'm sorry did you just propose fixing a security issue by calling out to imagemagick?20:30
cjwatsonwgrant: eh there's a reason I haven't just put together a patch for it yet ...21:46
cjwatsonpillow also seems made of CVEs though21:47
cjwatsonI happened to have a look at it and the last security update was, err, last week21:47
cjwatsonand we only pick that up when we happen to restart appservers for other reasons21:48
cjwatsonsurely in 2020 CE there exists a simple thing to find the dimensions of images that isn't composed of cheese and security holes21:50
cjwatsonhttps://pypi.org/search/?q=image+size has several things in pure Python that look 100x simpler and probably usable21:56
pappacenaSilly Zope question here, but... I'm trying to register a class as a component here, but I'm getting a strange error saying " __init__() takes exactly 4 arguments (1 given)". My configure.zcml directive looks quite similar to other examples in Launchpad... anyone knows what am I missing?21:59
pappacenahttps://www.irccloud.com/pastebin/i7QTFuxN/configure.zcml21:59
pappacenathis is my configure.zcml21:59
cjwatsonpappacena: what's ArchiveSigningKey's __init__?22:00
pappacenaahm... it's empty22:00
cjwatsonpappacena: normally something registered as a utility would have at most an __init__(self) without extra options22:00
pappacenaahhh, no no!22:01
cjwatsonpappacena: the thing in class= is really just a factory - whatever you put there is called with () to create the component that's registered as the utility22:01
pappacenait's not empty... I've declared that receiving paremeters! 🤦‍♂️22:01
pappacenaOk, I moved one step... let me keep on doing things here. Thanks, cjwatson!22:02
cjwatsonnp22:03

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