This year I actively participated in the Hacktoberfest event, which is "a month-long celebration of open source software". Ironic, given that the companies organising it don’t have their own software stack open source.
I’ve found some issues to solve in Perl 6 projects, and that lead to trying to solve issues in some other projects, and eventually I got more PRs out than there are days in the month. It did go at the cost of some sleep, but in the end it seems worth it. In this article, I’ll give a small overview of all those PRs, in no particular order.
Projects contributed to
This is the overlay of the Scriptkitties community. It’s got some additional software released under a free license that is not available in the main portage repository. Most of the packages in here are of software made by the Scriptkitties community.
This month I updated the readme to be in asciidoc, my new favourite format for documentation. The Travis builds should also no longer throw errors, so those can be used again to ensure the overlay is meeting quality standards. One package has also been updated to be at it’s latest version again.
On this repository, I added a subroutine to also handle unescaping HTML special characters. Sadly, the owner of this repository has shown no sign of life, and the PR remains open.
A neat feature for the Github notification system, HMAC adds a header that can be used to verify the body of the request, and can be used to verify the other end of the connection knows the right "secret". Inspired by a Perl 6 bot that already did this, I made a PR to make this a proper IRC::Client plugin. It is still being tested in musashi.
Roast is the test suite for Perl 6. There was an open issue for the IO::File tests, which needed expansion. As my first contribution during a Perl 6 squashaton, I expanded these tests to fix the issue that was open for it.
This first PR has become a bit of a drag, with the maintainers not responding for two weeks, but suddenly very eager to respond when I mention I’m going to fork off and update the reference on the Perl documentation to my fork. Nonetheless, it’s sorted out, and the abbreviations for unicode operators have been merged in!
JSON::Fast is the de-facto standard for dealing with JSON data in Perl 6 it
seems. For my work with
App::Cpan6 I wanted the JSON data to be ordered, so I
added that as an option when calling
to-json. Having the JSON data ordered
makes it easier to compare diffs of two different versions of the data, making
git diffs a lot cleaner.
Sadly, timo has not merged the PR yet, so I can’t properly depend on it in
This is one of the new projects I started. It is intended to be used in
App::Cpan6, since that uses Semantic Versioning for all
modules it works with. This module defines a class that can interpret a SemVer
notation, and exposes methods to bump any part of the version.
This has been one of the more annoying PRs to work on, as the current
maintainer insists everything but his module is wrong, and seemed very
uninterested to improve the situation for users. After some discussion on IRC,
some more discussion on IRC, and then some discussion on the PR itself, I
decided to just word the paragraph differently.
I am still interested in improving the documentation here and the ecosystem
itself, mainly the
META6.json specification, and getting
zef to play nice
with this spec. If anyone else is interested in helping me out on this, do
message me on IRC!
There were some open issues for the perl6.org website, and I decided to take a look at some and try to fix them. This resulted in NeoVim being added to the list of recommended editors for Perl 6, and the list of IRC bots being updated to include all bots in use right now.
As I was making
App::MPD::Notify, I found some
MPD::Client. I fixed those to get my two new projects working
Sparrowdo is a configuration management system, written in Perl 6. I learned about it after a reference from the Perl 6 Weekly, and set out to try it. I ran into some issues, which I reported and eventually fixed.
In addition, I also rewrote the testing script for Travis, which enables paralel builds of the tests. This has nearly halved the time required for running the full test suite.
These PRs added a module, and removed that one and more later on, since I got a PAUSE ID and uploaded my modules to CPAN.
App::Cpan6 is a tool I’ve started working on to assist me in creating new
Perl 6 modules. There’s been a couple of tasks that I do often in the process
of creating a module, and those tasks should become easier and faster using
If everything works out and I learn enough of the module installation process, I might consider letting this deal with the installation and updating of modules as well.
The Hacktoberfest has been an interesting month for me. I’ve gotten to contribute to a project I have come to love a lot, Perl 6. I’ve also made some new friends with similar goals. Sadly I can’t put in this much time every month of the year, but I would if I could!
I learned many interesting things for Perl 6, new operators, new functions, all kinds of cool stuff to improve my Perl scripts with. I also got to learn about parallelizing Travis builds with the Sparrowdo project, of which I will write another tutorial post later.
I’ve greatly enjoyed contributing to all the various projects, and would recommend other people to check it out too. The people on the respective project’s IRC channels have been a great help to me to get started, and I can help out getting you started as well now.