📜 ⬆️ ⬇️

How I became the maintainer of one of the Perl modules on CPAN

image

In my work, in one of the projects, the XML :: WBXML module is used. This is a module for working with binary XML - WAP Binary XML .

Unfortunately, the module was last updated in 2006, i.e. 9 years ago. Since then, David Glasser (David Glasser), the author of the module, has not been heard or heard of, the bug reporters are hung unresolved, and the bugs, respectively, are uncorrected. The module has been forgotten and abandoned.
')
It was necessary to do something with it. Below, I want to share my experience of gaining control over an abandoned Perl module.

In particular, one of the module's bugs was that during the installation they did not pass the tests (make test gave an error) and the installation was interrupted. The error resulted from the fact that over the past 9 years there have been changes in the library libwbxml2, which is used in the module itself. The library began to give out answers in a slightly different form and the test broke because of this.

To correct this error, it was enough to fix one line in the test itself. The action is elementary, but because of it the whole harmonious procedure of automatic installation broke. It was necessary to download the source of the module, apply a patch, build the module ... And so every time. Inconvenient. The correct solution would be to send the patch to the module author himself, but - as mentioned above - the author disappeared 9 years ago and did not react to Beregport.

In this regard, I decided to try to make my own module for CPAN, with blackjack and whores.

Forked the original module and put a new module on the CPAN under a slightly modified name of XML :: WB. And, of course, corrected the error in the tests. Now the module could be installed in a standard way directly from CPAN, without manual manipulations with the sources. It was necessary, however, to fix the rest of the code in the project that used this module, since the name has changed.

But I was tormented by the thought that after all I didn’t really make a feng shui. In an amicable way, it was necessary not to make a new module, but to become the maintainer of the original and correct the error right in the original module, so that those who use it would not have to change anything and switch to the new module.

At this time, by some coincidence, I read a novelty on perlnews.ru , which in passing mentioned the possibility of gaining control over an abandoned module. In the comments to the news I was told that there is a more or less standardized procedure for this, which is described here . Basically it comes down to "try to contact the author in all possible ways, and if it does not work out, then maybe the module will be transferred to you."

So, for starters, I wrote a letter to the author on all his emails, which I found, and prepared to wait for an answer. But the prospects seemed to me dubious (so if the dude did not appear for 9 years).

A few days later I published a post in my blog, where I wrote that here, they say, made a fork of the module, if suddenly someone needs it. In the comments to the post I immediately threw a link to the site of a person who is very similar to the author of the original module. I looked at his site, looked at his GitHub ... It seems like, but there was no certainty. This person is writing JS, no mention of Perl. But - what the hell is not joking :)

Wrote him a letter. As a copy, as it should be, added modules@perl.org. And, lo and behold! - this person answered me and he really turned out to be David Glessser, the author of the module. We exchanged a couple of letters with him, it turned out that he hadn’t been engaged in Pearl for a long time, instead he is now sawing the Meteor framework in JS, and he almost forgot about the Barley module. He would be happy to give me the module, but he doesn’t remember the password for his account on the CPAN at all, and the emails to which the account was linked have also all become outdated. For example, his email on mit.edu was used there, which he had 10 years ago when he studied there.

I really thought it was a dead end. But then, all of a sudden, a letter came from Neil Bowers, one of the CPAN administrators. He read our correspondence with David and solved our problem — he just picked me up and assigned me to be the module's container maintainer.

Well, since I already had a ready-made corrected module, all I had to do was rename it back to the original one and upload the updated version to CPAN.

In addition, I placed the module on Github (the original module was written when Github did not exist yet) and clearly indicated the license - perl_5 - which means that the module is distributed under the same conditions as Perl himself.

I hope I'm not the only person who uses this module, and some will benefit from it.

Source: https://habr.com/ru/post/258549/


All Articles