Applying involves coming up with a well-written document that describes exactly what features you will add or create, along with a timeline with "milestones" of what will be accomplished each week of the summer. Of course this changes with circumstances, but having a good plan always helps. The community members of the project that you apply to should help you with this, as well as give you advice about what is possible in the allotted time and give advice as to what is possible with the current infrastructure of the code. The best ways to do this is to get on developer mailing lists, introduce yourself, perhaps fix a small bug, add a test or some documentation and most probably you will be given some kind of commit access.
If you want to hack on Perl 6 on Parrot aka Rakudo, then all you need is a free GitHub account and you can contribute patches directly. You do this by pressing the "Fork" button. You should be presented with a page that says there is some "hardcore forking action" going on and then be redirected to your brand-new fresh personal fork of Rakudo. More on this in future posts.
One of the nice features of GitHub is the network-view of a project. For instance, here is the network view of rakudo.git with a base of my fork. It allows you to visualize which branches have which features pretty quickly, which tells you which branches you should merge with. This has turned out to be immensely useful in all of the GitHub repos that I hack on.
I am interested in being a mentor for TPF this year as well, and some of the random projects that I would be interested in mentoring are:
- Finish BigInt support in Parrot, which may be necessary for Crypto stuff.
- Crypto stuff in Parrot/Rakudo
- General Perl 6 Test suite love, like moving tests into t/spec or adding new ones to S29
- BigNum PMC support in Parrot, with Rakudo bindings
- GSL via NCI in Parrot
- implementing warns_ok() in Parrot/Rakudo and write accompanying tests
- Perl 6 user-level documentation
- November - A wiki engine written in Perl 6
- Moose - A modern Perl 5 object system
- Catalyst - A very popular Perl web framework
- Mojo - A "next generation" web framework for the Perl programming language.
Students, start getting to know the developer community of the projects now, deadlines are fast approaching!