*** xianghui has joined #openstack-barbican | 00:55 | |
*** woodster_ has joined #openstack-barbican | 01:57 | |
openstackgerrit | A change was merged to openstack/barbican: Install sqlite-devel package on fedora https://review.openstack.org/113404 | 02:20 |
---|---|---|
sld | Is there any current activity on Palisade? | 04:14 |
*** juantwo has quit IRC | 04:29 | |
*** nkinder has quit IRC | 04:34 | |
*** nkinder has joined #openstack-barbican | 04:35 | |
openstackgerrit | OpenStack Proposal Bot proposed a change to openstack/barbican: Imported Translations from Transifex https://review.openstack.org/112764 | 06:08 |
*** jamielennox is now known as jamielennox|away | 08:26 | |
*** xianghui has quit IRC | 08:27 | |
*** xianghui has joined #openstack-barbican | 08:31 | |
openstackgerrit | Tim Kelsey proposed a change to openstack/barbican-specs: blueprint for adding HP Atalla ESKM crypto plugin. https://review.openstack.org/114580 | 09:16 |
openstackgerrit | Tim Kelsey proposed a change to openstack/barbican-specs: blueprint for adding HP Atalla ESKM crypto plugin. https://review.openstack.org/114580 | 09:19 |
*** xianghui has quit IRC | 11:07 | |
*** xianghui has joined #openstack-barbican | 11:08 | |
*** SheenaG11 has joined #openstack-barbican | 11:09 | |
*** SheenaG1 has quit IRC | 11:11 | |
*** alee_afk is now known as alee | 12:57 | |
*** akoneru has joined #openstack-barbican | 13:10 | |
*** nkinder has quit IRC | 13:10 | |
*** akoneru has quit IRC | 13:11 | |
*** juantwo has joined #openstack-barbican | 13:16 | |
*** akoneru has joined #openstack-barbican | 13:19 | |
*** akoneru is now known as akoneru_afk | 13:24 | |
*** ryanpetrello has quit IRC | 13:31 | |
*** ryanpetrello has joined #openstack-barbican | 13:36 | |
*** nkinder has joined #openstack-barbican | 13:56 | |
*** xianghuihui has joined #openstack-barbican | 14:06 | |
*** hyakuhei_ has joined #openstack-barbican | 14:06 | |
*** xianghui has quit IRC | 14:11 | |
*** hyakuhei has quit IRC | 14:11 | |
*** ayoung has joined #openstack-barbican | 14:25 | |
*** SheenaG11 has quit IRC | 14:29 | |
*** atiwari has joined #openstack-barbican | 14:39 | |
*** paul_glass has joined #openstack-barbican | 14:45 | |
*** paul_glass has quit IRC | 14:47 | |
*** paul_glass has joined #openstack-barbican | 14:47 | |
*** rustlebee is now known as russellb | 14:52 | |
*** SheenaG1 has joined #openstack-barbican | 14:57 | |
*** juantwo has quit IRC | 14:58 | |
*** juantwo has joined #openstack-barbican | 14:59 | |
*** paul_glass has quit IRC | 15:02 | |
SheenaG1 | Morning everybody | 15:05 |
jvrbanac | Morning | 15:05 |
woodster_ | morning | 15:17 |
*** paul_glass has joined #openstack-barbican | 15:19 | |
rm_work | morning | 15:25 |
rm_work | woodster_: note on your email: I'm working on rewriting the entire client, not just containers | 15:25 |
rm_work | per https://review.openstack.org/#/c/114677/ | 15:26 |
woodster_ | rm_work: got it, thanks | 15:30 |
rm_work | :) | 15:31 |
redrobot | sid hi! Palisade is just vaporware at this time. We'd love to get some help if you're interested thoug | 15:31 |
redrobot | sld ^^ | 15:31 |
rm_work | redrobot: update that, BP, gotta get it accepted, only have like two weeks left so we're cutting it close :P | 15:32 |
redrobot | rm_work haha... will do. Was waiting on some more feedback. | 15:32 |
rm_work | actually I guess PBC isn't subject to Juno code-freeze? | 15:33 |
rm_work | hmm, PBC? pybarcli? need something short to call it | 15:34 |
redrobot | rm_work PBC? | 15:34 |
redrobot | rm_work https://wiki.openstack.org/wiki/Juno_Release_Schedule | 15:34 |
redrobot | feature proposal freeze is this Thursday | 15:34 |
openstackgerrit | Arvind Tiwari proposed a change to openstack/barbican: Add more type in order post https://review.openstack.org/87405 | 15:40 |
redrobot | rm_work derp, Python Barbican Client... took me a sec. | 15:52 |
*** gyee has joined #openstack-barbican | 15:57 | |
*** atiwari has quit IRC | 16:00 | |
hockeynut | there is also this one for client: https://review.openstack.org/#/c/112149/ (tsv it needs to be rebased) | 16:01 |
*** rellerreller has joined #openstack-barbican | 16:06 | |
*** akoneru_afk is now known as akoneru | 16:09 | |
woodster_ | fyi, I've created a bug to fix the other plugin manager implementations to use Paul's singleton approach to fix the HSM interaction: https://bugs.launchpad.net/barbican/+bug/1358386 | 16:11 |
*** paul_glass has quit IRC | 16:12 | |
woodster_ | ...just in case anyone is interested in fixing that :) | 16:12 |
*** paul_glass has joined #openstack-barbican | 16:15 | |
openstackgerrit | A change was merged to openstack/barbican: Imported Translations from Transifex https://review.openstack.org/112764 | 16:25 |
*** insequent has quit IRC | 16:33 | |
*** paul_glass has quit IRC | 16:35 | |
*** kebray has joined #openstack-barbican | 16:36 | |
*** insequent has joined #openstack-barbican | 16:38 | |
rm_work | redrobot: can you tell me if https://gist.github.com/rm-you/5974777f0b49c9239c45 looks like what you were thinking? | 16:44 |
rm_work | oh, need to port the parse_isotime stuff | 16:44 |
rm_work | still | 16:44 |
rm_work | I'm not 100% sure how to do the list functionality the right way... | 16:45 |
rm_work | that includes my first attempt, which looks kinda... bleh | 16:45 |
rm_work | it "works" | 16:45 |
*** insequent has quit IRC | 16:46 | |
*** insequent has joined #openstack-barbican | 16:47 | |
*** insequent has quit IRC | 16:55 | |
*** crc32 has joined #openstack-barbican | 16:55 | |
*** insequent has joined #openstack-barbican | 16:59 | |
openstackgerrit | A change was merged to openstack/kite: Fix .gitreview due to the repo rename/move https://review.openstack.org/114777 | 17:05 |
rellerreller | For logging are we supposed to use %s style and everywhere else use {0} and .format? | 17:13 |
openstackgerrit | A change was merged to openstack/python-kiteclient: Fix .gitreview due to the repo rename/move https://review.openstack.org/114775 | 17:14 |
*** insequent has quit IRC | 17:19 | |
*** paul_glass has joined #openstack-barbican | 17:21 | |
*** insequent has joined #openstack-barbican | 17:21 | |
*** bdpayne has joined #openstack-barbican | 17:22 | |
woodster_ | rellerreller: I think Kaitlin's CR, line #194, has the correct format: https://review.openstack.org/#/c/101582/13/barbican/plugin/kmip_secret_store.py,cm | 17:23 |
rellerreller | woodster_ Thanks! | 17:24 |
woodster_ | rellerreller: no problem! | 17:29 |
woodster_ | rellerreller: I don't think we have any examples of this in Barbican before Kaitlin's CR though :( | 17:29 |
openstackgerrit | Constanze Kratel proposed a change to openstack/barbican: Inconporated additional tech review feedback into content https://review.openstack.org/105488 | 17:36 |
*** akoneru is now known as akoneru_lunch | 17:51 | |
openstackgerrit | John Wood proposed a change to openstack/barbican: Install of a Barbican RPM fails due to missing keystonemiddleware https://review.openstack.org/114022 | 17:58 |
*** rellerreller has quit IRC | 18:00 | |
*** kebray has quit IRC | 18:01 | |
*** kebray has joined #openstack-barbican | 18:05 | |
openstackgerrit | Venkat Sundaram proposed a change to openstack/python-barbicanclient: remove tenant-id from uri https://review.openstack.org/112149 | 18:12 |
openstackgerrit | Arvind Tiwari proposed a change to openstack/barbican: Reorganize code to use store crypto plug-in https://review.openstack.org/111412 | 18:25 |
*** atiwari has joined #openstack-barbican | 18:27 | |
*** akoneru_lunch is now known as akoneru | 18:28 | |
*** bdpayne has quit IRC | 18:28 | |
rm_work | redrobot: take a look at https://gist.github.com/rm-you/5974777f0b49c9239c45 if you have a chance :P brb | 18:38 |
redrobot | rm_work you know, Gerrit was made for this very purpose. :-P | 18:38 |
*** kebray has quit IRC | 18:50 | |
openstackgerrit | Kaitlin Farr proposed a change to openstack/barbican: Adds KMIPSecretStore and unit tests https://review.openstack.org/101582 | 18:56 |
alee | redrobot, is it time for the barbican meeting? | 19:03 |
alee | redrobot, woodster_ or is it at 4pm? | 19:04 |
alee | redrobot, woodster_ or is it at 4pm EST ... | 19:05 |
*** kebray has joined #openstack-barbican | 19:05 | |
woodster_ | alee: should be 4pm edt (so 3pm CDT) | 19:05 |
alee | ok | 19:06 |
woodster_ | alee: Can you take a look at https://review.openstack.org/#/c/87405/ again? | 19:08 |
openstackgerrit | Arvind Tiwari proposed a change to openstack/barbican: Reorganize code to use store crypto plug-in https://review.openstack.org/111412 | 19:13 |
*** kebray has quit IRC | 19:16 | |
*** kaitlin-farr has joined #openstack-barbican | 19:19 | |
rm_work | redrobot: but i only have one object of like 5 to do | 19:21 |
rm_work | redrobot: want to make sure this is the way we want to do this, before i do the rest of them | 19:21 |
*** bdpayne has joined #openstack-barbican | 19:21 | |
rm_work | redrobot: unless you'd rather I check it in as a WIP when it's 1/5 done | 19:21 |
redrobot | rm_work WIP works, plus I can leave comments inline and what not | 19:22 |
rm_work | k | 19:22 |
rm_work | if I submit it now will you review it now? :P | 19:22 |
redrobot | 1/5 done == Work In Progress, I would say | 19:22 |
redrobot | yeah, I should be able to | 19:22 |
rm_work | cause if this model is correct (at least mostly) I'm ready to move on to the rest | 19:22 |
*** kebray has joined #openstack-barbican | 19:22 | |
*** kebray has quit IRC | 19:23 | |
*** kebray has joined #openstack-barbican | 19:23 | |
rm_work | redrobot: your commit message for your BP doesn't link back to LP correctly AFAICT | 19:24 |
*** bdpayne_ has joined #openstack-barbican | 19:25 | |
*** kaitlin-farr has quit IRC | 19:25 | |
rm_work | redrobot: and your link on LP goes to a private dashboard T_T | 19:26 |
*** bdpayne has quit IRC | 19:26 | |
openstackgerrit | Adam Harwell proposed a change to openstack/python-barbicanclient: Refactor client models in python-barbicanclient https://review.openstack.org/115080 | 19:30 |
*** kaitlin-farr has joined #openstack-barbican | 19:40 | |
rm_work | redrobot: alright, posted a bunch of comments on my own code too | 19:40 |
*** rellerreller has joined #openstack-barbican | 19:41 | |
*** kaitlin-farr has quit IRC | 19:44 | |
rm_work | redrobot: so I promise I'll stop nagging you in... | 19:47 |
rm_work | err, actually not sure I can make that promise :P | 19:47 |
redrobot | rm_work you can come nag in the weekly meeting | 19:52 |
rm_work | when is that | 19:52 |
redrobot | Weekly Meeting starts in 7 minutes in #openstack-meeting-alt | 19:53 |
hockeynut | what version of pypy do we support? Need to install into my dev environment | 19:54 |
*** nkinder has quit IRC | 19:54 | |
redrobot | hockeynut the pypy that follows the py27 language | 19:56 |
redrobot | hockeynut I don't think we support the pypy that does python3 | 19:56 |
*** atiwari__ has joined #openstack-barbican | 19:57 | |
redrobot | hockeynut pypy v 2.3.1 | 19:57 |
hockeynut | thx. I was going to ask which one since latest 2 was 2.3.1 | 19:57 |
hockeynut | redrobot to the rescue! | 19:57 |
*** gyee_ has joined #openstack-barbican | 19:58 | |
*** atiwari has quit IRC | 19:58 | |
*** gyee has quit IRC | 19:58 | |
*** kebray has quit IRC | 20:00 | |
redrobot | weekly meeting starting now in #openstack-meeting-alt | 20:01 |
*** kebray has joined #openstack-barbican | 20:07 | |
openstackgerrit | Arvind Tiwari proposed a change to openstack/barbican: Add more type in order post https://review.openstack.org/87405 | 20:16 |
*** kaitlin-farr has joined #openstack-barbican | 20:24 | |
*** paul_glass has quit IRC | 20:46 | |
*** juantwo has quit IRC | 20:53 | |
alee | woodster_, want to do a quick call to co-ordinate the cert work? | 20:59 |
arunkant | woodster: When you have some time, can you please review keystone-notification-event impl.. https://review.openstack.org/#/c/110817/ .. | 20:59 |
rm_work | fff mocks do not work well with this | 20:59 |
*** kaitlin-farr has quit IRC | 21:02 | |
jvrbanac | redrobot, topic for next meeting... CR sizes. We really need to encourage small CR's. These big ones are taking forever to review. | 21:02 |
redrobot | jvrbanac k | 21:03 |
redrobot | jvrbanac added to https://wiki.openstack.org/wiki/Meetings/Barbican#Agenda | 21:05 |
jvrbanac | redrobot, sweet thanks! | 21:05 |
rm_work | redrobot: did you want client.secrets.get(secret_ref) to still work? or are you ok with just client.secrets.Secret(secret_ref=secret_ref) | 21:07 |
rm_work | redrobot: or would you rather JUST the former? | 21:08 |
rm_work | might simplify things... | 21:08 |
redrobot | rm_work I'd rather client.secrets.Secret() for both get or create new | 21:09 |
redrobot | and do away with secrets.get | 21:09 |
rm_work | k | 21:09 |
rm_work | fine by me | 21:09 |
redrobot | hence this is a breaking change, thus the 3.0.x | 21:09 |
rm_work | delete/list still has to be on the manager tho | 21:10 |
atiwari__ | rellerreller, are you around? | 21:10 |
rellerreller | Ya | 21:10 |
rm_work | unless you want to force people to load the Secret() first, then run my_secret.delete() >_> | 21:10 |
atiwari__ | rellerreller, regarding your comment about debug formatting | 21:10 |
*** nkinder has joined #openstack-barbican | 21:10 | |
atiwari__ | can we address in separate cr? | 21:11 |
redrobot | rm_work for the Containers BP, woodster_ wanted to keep both my_container.delete() and client.containers.delete(ref) | 21:11 |
rm_work | err k | 21:11 |
redrobot | rm_work so both in Secrets for consistency? | 21:11 |
atiwari__ | as that is legacy way used everywhere | 21:11 |
atiwari__ | ? | 21:11 |
rm_work | redrobot: and you want to my_secret.store() rather than my_secret.save()? | 21:11 |
rellerreller | I was under the impression that this is the way forward. We had to do this with our KMIP secret store. | 21:12 |
rm_work | and my_order.submit() ? | 21:12 |
atiwari__ | rellerreller, regarding symmetric vs Key , we had long discussion and finally decided to use KEy | 21:12 |
rellerreller | Unless I am missing something it should not take long. I tagged them. There is only about 10 of them. | 21:12 |
atiwari__ | woodster_, can you please add more here? | 21:12 |
redrobot | rm_work I don't have strong feelings for either secret.store() or secret.save()... but I do prefer order.submit() | 21:13 |
atiwari__ | rellerreller, I don't mind making the fix but that is out of context for this CR | 21:13 |
redrobot | rm_work we should probably revisit th CLI since we're breaking all kinds of stuff, so that CLI and client match | 21:13 |
rm_work | yeah I assume so | 21:14 |
rm_work | fff freaking Mocks | 21:14 |
redrobot | atiwari__ rellerreller I'd be ok with a separate CR to address debug logging | 21:14 |
rm_work | trying to get tests to pass, this is ridiculous | 21:14 |
atiwari__ | redrobot, thanks but I don't mind fixing it if rellerreller it looks ugly to you . | 21:15 |
atiwari__ | rellerreller, thoughts ? | 21:15 |
redrobot | rm_work httpretty ftw? | 21:15 |
rellerreller | atiwari__ it's not an ugliness issue. I was under the impression that a new coding standard was in place for this. | 21:16 |
rm_work | redrobot: i think other CLI use prettytable | 21:16 |
rm_work | redrobot: I was going to look into it once I finish the objects | 21:16 |
rellerreller | I thought all new log statement should follow the format. It is a performance issue with logging. | 21:16 |
rellerreller | If it is not being enforced then I can ignore. | 21:16 |
atiwari__ | rellerreller, let me open a bug for me and I will fix that everywhere ? | 21:17 |
rellerreller | OK | 21:17 |
atiwari__ | is that OK | 21:17 |
atiwari__ | cool | 21:17 |
redrobot | rellerreller we've been trying to push for .format rather than % for string interpolation. I'm familiar with the performance issue with doing the interpolation vs letting the logging engine decide wether to interpolate or not | 21:17 |
redrobot | rellerreller I agree that we should optimize for debug especially, but I want to look into whether that can be done using the new-style interpolation | 21:18 |
rellerreller | Maybe we can bring this up next week at the status meeting. I want it to be consistent enforcement. | 21:18 |
redrobot | rellerreller sounds good, added to https://wiki.openstack.org/wiki/Meetings/Barbican#Agenda | 21:19 |
rellerreller | atiwari__ are there any etherpad notes or anything on key vs. symmetric. I'm curious why key was chosen because asymmetric are keys too. | 21:20 |
atiwari__ | rellerreller, I am with you, let me fix the discussion | 21:21 |
atiwari__ | do you like | 21:21 |
atiwari__ | key and keypair? | 21:21 |
atiwari__ | rellerreller, ^ | 21:21 |
atiwari__ | s/fix/find | 21:21 |
rellerreller | atiwari__ umm... I think that is better than key and asymmetric | 21:22 |
atiwari__ | rellerreller, https://review.openstack.org/#/c/98174/15/specs/juno/api-orders-add-more-types.rst is the agreed spec | 21:23 |
atiwari__ | line 112 | 21:24 |
rellerreller | atiwari__ OK, I will take a look again tomorrow. Thanks for finding this information for me! | 21:26 |
*** kaitlin-farr has joined #openstack-barbican | 21:32 | |
*** rellerreller has quit IRC | 21:34 | |
openstackgerrit | Ravi Sankar Penta proposed a change to openstack/barbican: Allow devstack to do git clone of barbicanclient https://review.openstack.org/115122 | 21:41 |
*** kaitlin-farr has quit IRC | 21:44 | |
*** crc32 has quit IRC | 21:46 | |
*** kaitlin-farr has joined #openstack-barbican | 22:12 | |
*** juantwo has joined #openstack-barbican | 22:19 | |
*** juantwo has quit IRC | 22:20 | |
*** juantwo has joined #openstack-barbican | 22:20 | |
rm_work | what exactly is "pypy" for tox tests? I can install a bunch of different pypy versions with pyenv, but I don't know what exactly it is... | 22:24 |
rm_work | is it related to "pypi"? | 22:25 |
rm_work | oh, google solved that one | 22:25 |
rm_work | lol | 22:25 |
rm_work | we actually support this? | 22:25 |
*** kaitlin-farr has quit IRC | 22:28 | |
openstackgerrit | Adam Harwell proposed a change to openstack/python-barbicanclient: Refactor client models in python-barbicanclient https://review.openstack.org/115080 | 22:30 |
dstufft | rm_work: why wouldn't we support PyPy | 22:38 |
rm_work | heh | 22:40 |
rm_work | still looking for comments on my change above ^^ | 22:40 |
*** jamielennox|away is now known as jamielennox | 22:42 | |
jamielennox | rm_work: i haven't read the last few hours but did you figure out your keystoneclient session problems? | 22:44 |
rm_work | err | 22:44 |
*** akoneru has quit IRC | 22:44 | |
rm_work | I think that was... yesterday? | 22:44 |
rm_work | or last week i guess lol | 22:44 |
jamielennox | oh | 22:44 |
jamielennox | huh | 22:44 |
rm_work | I am trying to remember exactly how i made that problem stop | 22:44 |
rm_work | I may have just worked around it :/ | 22:45 |
jamielennox | for some reason it came up on my scrollback for some reason | 22:45 |
rm_work | or it might be in my TODO still | 22:45 |
rm_work | I'm sure I'll run into it again | 22:45 |
rm_work | can you remind me actually? | 22:45 |
rm_work | :P | 22:45 |
jamielennox | rm_work> [22:17:53] wtf, our client is throwing an exception that enters into site-packages/keystoneclient/openstack/common/apiclient/exceptions.py | 22:45 |
rm_work | I have very bad medium-term memory (1-14 days or so) >_> | 22:45 |
jamielennox | essentially i'm guessing that 4xx errors etc will be raised by keystoneclient | 22:46 |
rm_work | oh right | 22:46 |
rm_work | something about our JSON parser | 22:46 |
jamielennox | possibly that it has a different excetion format | 22:46 |
rm_work | trying to remember how I triggered that | 22:46 |
rm_work | yeah, it does | 22:46 |
jamielennox | well, there is an option raise_exc=False that will prevent those exceptions being raised if you want to handle them yourself | 22:48 |
jamielennox | otherwise let me know what needs to change about the excetion handling | 22:48 |
jamielennox | and i need to check whats happening with my irc logging | 22:48 |
openstackgerrit | John Vrbanac proposed a change to openstack/barbican: Replacing backslashes https://review.openstack.org/115140 | 22:51 |
*** SheenaG1 has quit IRC | 22:52 | |
rm_work | jamielennox: heh k | 22:52 |
rm_work | hopefully I can figure out how I triggered that error to begin with | 22:52 |
*** kaitlin-farr has joined #openstack-barbican | 22:58 | |
*** bdpayne_ has quit IRC | 22:59 | |
openstackgerrit | Adam Harwell proposed a change to openstack/barbican-specs: Refactor Client Entity Models https://review.openstack.org/114677 | 23:09 |
rm_work | redrobot: can review ^^ ? | 23:10 |
rm_work | ah woodster_, redrobot left didn't he T_T | 23:10 |
rm_work | woodster_: can you review the above BP? | 23:10 |
*** kaitlin-farr has quit IRC | 23:13 | |
woodster_ | rm_work: yep | 23:19 |
rm_work | woodster_: :) | 23:19 |
*** kebray has quit IRC | 23:21 | |
*** crc32 has joined #openstack-barbican | 23:21 | |
openstackgerrit | John Wood proposed a change to openstack/barbican: Update versionbuild script to handle setup.cfg version https://review.openstack.org/115149 | 23:23 |
*** kebray has joined #openstack-barbican | 23:25 | |
woodster_ | rm_work: -1-ed it, just to see a Containers example | 23:29 |
rm_work | woodster_: the containers are in a seperate BP!!! | 23:30 |
rm_work | woodster_: see the link at the bottom | 23:30 |
woodster_ | rm_work: oh sorry, will +2 it then! | 23:30 |
rm_work | err actually, it's in the Problem Description section at the top | 23:30 |
woodster_ | I read that link thinking it was referring to the containers server-side work | 23:31 |
woodster_ | ok, +2 now! | 23:31 |
rm_work | :) | 23:31 |
rm_work | yeah I actually need to do this one, THEN land the other CR separately | 23:31 |
rm_work | T_T | 23:31 |
woodster_ | oh got, it, I was going to say remove that workflow -1 | 23:32 |
rm_work | https://review.openstack.org/#/c/115080/ | 23:32 |
rm_work | that's the CR for the BP you just reviewed (nothing to do with containers yet) | 23:32 |
rm_work | and then containers will be on this CR: https://review.openstack.org/#/c/113393/ | 23:33 |
woodster_ | got it, thanks | 23:33 |
rm_work | feel free to review 115080 too :P | 23:33 |
woodster_ | all part of the master plan :) | 23:33 |
rm_work | I'm waiting for comments on the way Secrets work before I do Orders | 23:33 |
rm_work | to make sure it looks right | 23:33 |
rm_work | hmm though I need to figure out the 2-phase secrets... that might not work eyt | 23:33 |
rm_work | *yet | 23:33 |
*** kebray has quit IRC | 23:34 | |
*** atiwari__ has quit IRC | 23:49 | |
*** kaitlin-farr has joined #openstack-barbican | 23:59 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!