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