Hacker News new | past | comments | ask | show | jobs | submit login
The CPAN Pull Request Challenge (perl.org)
192 points by eperoumal on Dec 31, 2014 | hide | past | favorite | 47 comments

I'm in.

Some years ago I tried to motivate people to contribute to Perl 6, and found that while many had some lingering interest in doing so, they needed some steering.

This was hard for me to do, because usually in Open Source communities, you aren't supposed to tell people what to do; they are free to chose the occupation after all. But I found that it worked very well.

So I think the CPAN Pull Request Challenge is a very good approach to steer people to particular projects, without causing too much work for those who steer. At least it's a very good experiment to try.

I'm still amazed at the number of developers who have a block around filing bugs or send out pull requests for the tools/libraries they use.

I'm not. Especially on larger projects, new contributors usually face something between indifference and hostility. After spending weeks in mailing list battles trying to contribute to a few projects, many people conclude it's not worth their time.

This. Even mildly popular library maintainers will be indifferent or hostile for even the most agreeable PR. Sometimes its just easier to fork and run your own version for this reason, but it makes contributing back to the community difficult.

Yeah, I don't think anything has ever come of the handful of issues I've filed with open source projects over the years. It's either silence or a WONTFIX/works as expected.

That may be part of it, I don't usually worry with mailing lists. My general approach is to file a bug in the appropriate bug tracker documenting the issue I'm dealing with then if/when possible provide a patch for the problem.

* I'm a coder not a politician ;)

It is a good deal of work to put together a merge-worthy pull request, and doing so is no guarantee of its inclusion, or even consideration. Just as an anecdote, I find it increasingly hard to justify the time to turn monkey-patches we've made to Rails (and its accompanying libraries) into pull requests and maintain them against changes upstream, when they often languish without comment from anyone with commit bit. I don't believe project maintainers have any sort of duty to keep on top of random pull requests, but it's pretty easy to lose the motivation to contribute.

Count me in! The last time I wrote Perl, the Camel Book was a thing and I thought it was cool to have the least number of digits in your slashdot id as possible.

I find it pretty fun to try to modify code that lives in a world that I'm largely not part of, this is a nice little impetus!

Yeah, that's about the same for me. Perl was the first real language I picked up outside of school, with many hours spent inside cgi-bin.

I'm in. People around here are sometimes cynical of Perl, but there's a lot of high quality code on CPAN that definitely shouldn't fall by the wayside.

CPAN was Perl's claim to fame. It's what gave it the "edge" over Python and Ruby a decade ago. I think people have finally realized that edge is rapidly fading. I still occasionally use Perl but I'm trying to make my goto language Python or Go, unless I find a better functional language. After all, in 2015, shouldn't we be using OCaml or F# for our quick jobs?

I guess I'd rather invest in the future rather than try to save the past.

Although having a central repository of code on the web is no longer unique to Perl, there is still some of CPAN's infrastructure that would be nice to have in other communities. For instance, cpantesters[1].

As far as I know, only the Lisp community has something similar to cpantesters in their cl-test-grid project.

On the other hand nowadays a language community could probably set up something similar to cpantesters using travis so hopefully we'll see more of those sort of systems in the future.


[1] - If you want to play buzzword bingo you can think about cpantesters as a distributed, fault-tolerant, self-organizing, volunteered run, cross-platform continuous integration platform that is free to end-users.

I personally have not found one module in python or ruby that makes me say "I wish I had this in CPAN" (at least for the things I use Perl for). I've tried pretty hard sometimes too...

New languages are cool. As long as you're not reinventing the wheel.

What a fantastic idea. I think this will really speak to those of us that may need a little nudge before feeling comfortable. I've dusted off my PAUSE ID and signed up.

Does anyone know of any other langs/communities that have tried something like this? This seems like a great idea to learn and contribute.

Almost every langs have a CPAN alike. They just copied it.

CTAN for TeX, CCAN for C, forgot the ruby name, LISP has it even with a cpantesters alike testers grid, PHP split it into PECL for binary extensions (higher quality) and PEAR, which struggles. emacs lisp, node.js, ocaml, ...

go uses git only for their distributed module system, which is a nice and simple idea, (github as default) but also appeared in common lisp before.

I think the question was less "What other languages have module repositories like CPAN" and more "Does anyone know of other module ecosystems that are running projects like this to get people involved?"

Add don't forget to use http://www.cpantesters.org/ so you can see how your test cases run on a variety of platforms.

You never know when that pull request could turn into co-maintainer permissions. ;-) That happened to me with 3 packages last month!

Well volunteered!

I am in, nice iniciative. I've just released https://metacpan.org/pod/Task::BeLike::FIBO and I'm quite glad of my minimal style. Perl is for servers like JavaScript for the web, it is obiquitous. I like other languages too, but, Perl is really fun specially for the community, a great one!

I signed up. Sounds like a good opportunity for those who want to help, but don't quite know where to get started.

In as well. Hope I don't get something like SOAP::WSDL :)

Let me check if it's on github ...

1. Join the challenge 2. Get any module assigned 3. Check the gaps in it's test coverage using https://metacpan.org/pod/Devel::Cover 4. MOAR TESTS 5. Profit!

Doing it manually? Now we've got www.cpancover.com

I'm interested, but I don't know Perl. Is knowing Perl a hard prerequisite?

I wrote a brief introduction to Perl from philosophy to pragmatic efficacy. It's available free online:


It works best with at least six months practical experience in any programming language.

I'm going through it right now. Looks very useful, thanks for writing.

From the article: "You don't have to be an experienced Perl programmer, CPAN author, or githubber. The goal is to help others, possibly learn something, and hopefully have a bit of fun."

It might be possible to help with e.g., documentation (which could also be taken as an opportunity to learn just enough Perl to read less-documented code).

No, it's not. Several people have signed up saying "I don't know Perl, but this seems like a good opportunity to start learning it".

Sounds great, is there anything like this for php?

I don't think php has reached the point where a lot of libraries have reached stagnation.

In general though it would be cool to just automate this in some fashion. Occasionally email participants a link to projects that haven't had commits in many months but have open bugs or feature requests.

It's not necessarily _just_ about dealing with stagnation. It's also about finding a way for people to start contributing to open source. If you've never released anything, just patching someone else's work is a great way to start. This automates the selection process so you don't necessarily have to look around for something that needs help.

Compared to CPAN, PHP is fairly monolithic. Many of the OSS projects that we hear about are sponsored and/or open/closed or the Automattic business model.

Many CPAN modules are blobs of arcanery and some work completely well but are relatively abandoned.

You might want to check http://24pullrequests.com/ but it’s not only for PHP.

I'm in. Been looking for an excuse to use my budding perl-fu.

Sounds cool, I'd do something like this if it was in Ruby. Haven't used perl in several years, not sure I'd be much help

Well, nothing is stopping you from suggesting (or implementing!) this except the willingness of the target repositories to accept incoming pull requests. This[0] discussion is especially relevant to that limitation.

I get the impression this CPAN campaign is an attempt to introduce, or reintroduce, folks to Perl, which might not be as big of a problem with Ruby. That is, of course, my opinion.

0 = https://news.ycombinator.com/item?id=8819930

absolutely cpancited! should probably come up with a more taggable acronym for this

Sounds desperate.

Given the number of people registered to the challenge, it looks like it's going to work just fine

Can you please elaborate ?

> The goal is to help others, possibly learn something, and hopefully have a bit of fun

Seems like it shouldn't be limited to CPAN modules.

His goal is to help address CPAN modules that might need some love, as evidenced by http://neilb.org/adoption/

What else would you include?

I guess I was just being a bit cynical, he should have stated a goal to revitalize CPAN.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact