Translating Jenkins with Perl

This is my first post here and I hope it is more positive than a rant to the readers eyes...

It was 2017 when I had installed Jenkins locally in my notebook for a series of experiments. The notebook was running Ubuntu configured in Brazilian Portuguese and Jenkins automatically presented me with a translation to my native language. After 15 minutes trying, I changed Ubuntu settings to English and never went back.

It took me a while to jump into the project repository and start translating the missing parts, about four years... and the translation hasn't improved since.

You might be asking yourself what this has to do with Perl and why I'm blogging about it here... well, Jenkins project uses (at least) since 2010 a Perl script to help with the translation work.

The current translation process is not really friendly for non-programmers and the script was still using syntax and style prior to the first edition of Learning Perl (the "lhama" book) that I could put my hands into. Giving the lacking of documentation about the translation process, it didn't took me long to start reading the code to figure out what to do and I decided to start refactoring the program while I was translating.

The idea was to not only fix small bugs, but making it easier for newcomers to offer revisions.

After some initial pull requests (with very simple refactorings) were accepted, to my surprise making the script a module (with h2xs!) became too complex to be accepted!

I was initially frustrated enough to not even try a reply on that PR. It took me a while to properly answer to it, after all, people back there were pretty respectful to state "thanks, but no, thanks".

It still strikes me that a helping hand offered might be rejected, but even more that the only reason for such rejection is about having to learn only enough Perl to keep using the same tool being used for more than 10 years!

Would that happen if I tried rewritten it with Haskell or Erlang? In fact, there are also scripts over the project written in Ruby and Python, so my guess is the problem is really with Perl.

It wouldn't surprise me if I got this kind of feedback from a programmer in Brazil: in fact I've already met people (with all range of programming experience) that consider Perl a "write-only" programming language that nobody uses. I usually tell this people that their Linux and/or "fancy" MacOS X already comes with Perl installed. And if they insist on that, I suggest to just uninstall it and see what happens next.

The good news is that the translation to Brazilian Portuguese is complete (as much one can consider such a thing) by now and I there is a fork for the available for download. Hopefully I'll be able to keep it going for a while, adding new features that I consider that could be useful.

But I'm still thinking if this was the best answer I could give for such situation. What do you think about?


"Thank you but no one here is qualified to look at the code. We'd rather let the current code be deficient rather than find someone who can help. We're going to get rid of Perl soon anyway."

That was three months ago. Perl hostility is high. You need a thick skin to code in Perl these days. Glad you took the effort to put it out on CPAN. I'd go back to that PR and add links to the CPAN stuff so that someone looking for it might find it that way.

Kudos! I took a look at your GitHub repository and found it very polished and well documented. It's sad to see good work being rejected for petty reasons.

It's difficult to say what you should have done differently. It depends on what you really wanted to achieve after having your work being rejected like that. I'd say, if you could control your feelings and really wanted to have your contribution accepted, you could have listed your arguments dispassionately and leave it at that, keeping your PR open. They are good arguments and perhaps the Jenkins maintainers would reconsider their opinions after pondering over them for a while. Or perhaps not... but at least there would be a chance.

I can't blame you for having reacted with passion, though. ;)

Bom trabalho, Alceu. Continue firme!

Leave a comment

About Alceu Rodrigues de Freitas Junior

user-pic I blog about Perl.