[02:38] wgrant: can I bother you with another IPv6 question? I've been looking for a way to create IPv6 host maps through OMAPI, but it doesn't seem possible [02:38] Maybe dhcpctl is the only way to do it. [02:41] jtv: I haven't tried. Have you checked the code? [02:42] Yes... not very hopeful. [03:03] jtv: 6to4 stuff? [03:03] No, plain IPv6. [03:04] Doesn't look as if OMAPI supports it. [03:08] ah well [03:08] not too surprising since ISC want to kill it [03:16] On a sidenote, so do I. :) [03:16] Yeah I figured they'd let this fall by the wayside, but had to be sure. [03:16] It's an awful, awful thing. [03:17] Tried compiling a basic dhcpctl program, but... missing header. [03:20] lifeless: dhcpctl is meant to be the replacement for omapi, right? [03:21] jtv: not sure TBH [05:16] jtv: https://translations.launchpad.net/+imports/+index?field.filter_target=all&field.filter_status=NEEDS_REVIEW&field.filter_extension=all is looking pretty terrifying nowadays, mostly because it's full of POs for inactive languages (the gardener never guesses a POFile for an inactive language). What should be done about them? [05:17] wgrant: we have a dict somewhere providing an expiry time per status. Add one for NEEDS_REVIEW? [05:17] Or does it have one already? [05:18] It seems a bit inefficient to keep them around forever if they're never going to be approved. [05:18] Quite. [05:19] Making the gardener cull old uploads was scary, but also massively useful. [05:19] But this also seems like a pretty special case. [05:19] It seems like we could handle the inactive language case better. [05:20] Don't assume too much about the permanence of the current situation though. An inactive language may at some point be activated. [05:20] I think there's a general problem of old uploads never being approved. [05:21] Right, but an old unapproved upload usually indicates something that wants manual intervention. [05:21] These do not. [05:23] Then maybe the gardener should just approve them as normal, but the importer should ignore them. [05:23] And then if they stay Approved for too long, they can expire. [05:24] Then we have the importer having to test and skip a hundred thousand jobs each run instead. [05:24] Doesn't seem like a necessarily good idea. [05:25] The idea is to make that a temporary problem. [05:25] Just so long as the gardener kicks them into a state where eventually they expire. [05:26] Also, approving them would create a POFile for the inactive language. [05:26] Ah, fair point. [05:27] Then... Blocked? Needs Information with a message saying "this language is deactivated"? [05:28] I've never quite been sure what Blocked was used for. [05:28] Manual blocking, normally. Mostly interesting for templates so far. Automatically blocks all POFile uploads for the same template. [05:28] But maybe a disabled language should do the same. [05:29] Ahh [05:29] That sounds sensible. [05:30] I think eventually they'd still expire. [05:30] Keeping that queue to a reasonable size is key to smooth operation, I think. (Well, along with suggestions not timing out.) [05:31] Nothing automatically processes Blocked, apart from the gardener pruning old records, right? [05:31] So it wouldn't be a problem to shove a heap of stuff in there. [05:31] As far as I know the gardener is the only thing that's going to care about Blocked entries. [05:32] I probably wouldn't block deactivated languages immediately, in case they get reactivated soon after. [05:33] It seems to me that over 99.9% of the queue is entries that have been waiting for review for more than 2 years. [05:34] That suggests to me that we currently have those items expire in 3 years... [05:34] Or some period like that. [05:34] 99.9%? No, wait, I've got my ordering the wrong way around. [05:35] Surely I do. [05:35] RosettaImportStatus.NEEDS_REVIEW: timedelta(days=DAYS_IN_HALF_YEAR), [05:35] hmmmmmm [05:35] Maybe that's only for Ubuntu uploads? [05:36] I seem to remember it didn't just blindly apply to all uploads. [05:36] It removes >1y Ubuntu blocked POs. [05:36] But that's the only Ubuntu-specificity I can see. [05:39] Weird [05:39] I think date_status_changed is being touched on those. [05:40] Oh [05:40] I guess that could just be because the entry was updated by a new upload? [05:40] That's possible, yes. It resets the clock. [05:41] So we'd end up with 500,000 entries in Blocked. [05:42] Which might not be a problem. === mup_ is now known as mup [05:53] If the Blocked ones get cleaned up eventually, you can shave a few orders of magnitude off the queue... [05:56] Except that these keep being uploaded. [05:57] But you'll know a lot more about how many those are, I suspect. [05:57] Can't imagine it being almost all of them... [05:57] If it wasn't almost all of them, wouldn't they have been approved? [05:57] Approved or expired. [06:01] Hmm [06:02] Actually, almost all of them are Ubuntu uploads. [06:44] wat [06:44] jtv: https://launchpad.net/ubuntu/utopic/+source/libreoffice-l10n/+imports [06:46] wgrant: oh dear, another project that doesn't use the language code for the PO file name... [06:46] 424000 of the unapproved items are in libreoffice, libreoffice-l10n or python-django. [06:48] debian/python-django-common/usr/share/python-django-common/django/contrib/admin/locale/udm/LC_MESSAGES/django.po [06:48] That's quite a path. [06:48] And the same sort of problem. [06:49] We've always had some special-case code in the approver for this sort of thing. And it's horrible. [07:04] jtv: I'd be tempted to Block all the queue entries for those packages for now, to get the gardener down from 14 hours. Thoughts? [07:05] wgrant: first thought is... “14 hours!?” [07:07] Second: looks like we'll need to tweak the special-case code again. :( [07:07] But yeah, an oversized queue is poison. [07:08] Is this the multidirectory special case? [07:08] I saw that in the guessing code earlier. [07:08] pofile = self._guess_multiple_directories_with_pofile() [07:09] Yeah, looks like it [07:09] There are a whole lot of similar cases hardcodedish there. [07:11] Hm [07:11] Except python-django in utopic has no templates, and there are no POTs of any status in the queue. [07:23] wgrant: there seem to be a few variants of multi-directory special cases, and it can be hard to be sure why none of them "takes" for a particular set of uploads. [07:23] In this case it might just be because there's no template at all. [07:23] Oh, it has POs but no POTs? [07:24] https://launchpad.net/ubuntu/utopic/+source/python-django/+imports?field.filter_status=all&field.filter_extension=pot [07:24] 'https://translations.launchpad.net/ubuntu/utopic/+source/python-django [07:27] I guess that means "yes." [07:28] As far as I can tell. [07:28] But you might know of some dark corners where they could be hiding. [07:28] It could be that one of the PO files is effectively also the template. [07:29] There might even be an "English translation" (in which case we hope and pray that the translations are either blank or identical to the translatable strings). [07:29] I think you can even approve a .po file as a template, and have it imported. [07:30] And then maybe re-approve it in its original form, for its translations... [07:42] jtv: Or I could just set them to Needs Information and pretend they don't exist. [07:42] wgrant: then do set a message. After a while IIRC they'll be rejected, and then deleted. [07:42] (Or maybe that was the same thing. I *think* there was a stage inbetween.) === daker_ is now known as daker === ev_ is now known as ev === xnox_ is now known as xnox === cprov__ is now known as cprov === heroux_ is now known as heroux === ev_ is now known as ev === cody-somerville_ is now known as cody-somerville === BradCrittenden is now known as bac === beuno_ is now known as beuno === mthaddon` is now known as mthaddon === olli_ is now known as olli === mup_ is now known as mup === cjwatson_ is now known as cjwatson === mup_ is now known as mup === lifeless1 is now known as lifeless