Rakudo SQUASHathon Guide

Aleks-Daniel Jakimenko-Aleksejev edited this page Oct 6, 2017 · 14 revisions

There are many different ways you can help. This page discusses some of them in detail.

Consider joining #perl6-dev and talking to humans. Chances are it will be much easier for you to join the channel and ask for guidance rather than read all the details that this page provides.

Table of Contents:

Using RT

Most actions with rakudo, nqp, and roast repos require a GitHub account, and chances are you already know how everything works there. However, Rakudo tickets are kept on https://rt.perl.org/, so this section describes how to perform some basic actions there.

Generally, you don't need to create a new account to use RT.

Creating a new ticket

Just send an emailed to “rakudobug@perl.org” and a ticket will be created automatically. You can attach files and use any HTML formatting. You'll get a reply with the id of the ticket that you've just created.

Alternatively, if you managed to create an account on RT you can go to https://rt.perl.org/m/ and submit a ticket there.

Writing a comment

Writing a comment can be done by email too. Send your email to perl6-bugs-followup@perl.org and don't forget to include the ticket id in the title, for example “[perl #128520]”. Your comment will appear a few minutes later.

Alternatively, if you managed to create an account on RT then you'll be able to use the “Reply” button.

Resolving testneeded tickets

Reviewing older tickets

Go to https://fail.rakudo.party/ and scroll to the second part of the page. Start going through the tickets one by one.

  • If the ticket has steps to reproduce the problem, try to reproduce it with the latest rakudo. Chances are it is resolved already. If it is, write a comment describing the current behavior. Otherwise consider leaving a comment saying that the issue is still reproducible. If it seems that the issue is resolved then go to the next step.
  • If you have permissions, mark the ticket with testneeded tag. If not, ask people on #perl6 or #perl6-dev to do that for you. Please note that almost any ticket needs tests before we can close it.
  • There is a chance that not only the issue is already resolved, but there are tests for it too. To find out you will have to bisect rakudo to find the commit that resolved the issue. You don't have to do it, but sometimes it helps a lot. Please don't bother doing it manually, there's a bot that can do it for you. Next section will describe how to do that.

Using *ables

We will take an existing ticket as an example.

  • If the ticket says that say (10 ** -1).WHAT used to produce (Num) instead of (Rat), then we can first use committable6 to get a bigger picture:

<AlexDaniel> committable6: releases say (10 ** -1).WHAT
<committable6> AlexDaniel, ¦releases (23 commits): «(Rat)»

What happened? Most *ables use 2015.12 as a starting point, so anything older than that will require you to be a bit more specific (it will also take a few more seconds, so be patient):

<AlexDaniel> committable6: all say (10 ** -1).WHAT
<committable6> AlexDaniel, https://gist.github.com/48f7b9488960ff04088d20d710626c5d

  • According to the output from committable6, we know that the relevant change happened somewhere between 2015.04 and 2015.05. Now we can easily bisect it:

<AlexDaniel> bisectable6: old=2015.04 new=2015.05 say (10 ** -1).WHAT
<bisectable6> AlexDaniel, Bisecting by output (old=2015.04 new=2015.05) because on both starting points the exit code is 0
<bisectable6> AlexDaniel, bisect log: https://gist.github.com/d0b3f970a3b8c6f2499705c197f5ae07
<bisectable6> AlexDaniel, (2015-05-18) https://github.com/rakudo/rakudo/commit/563abdd46845d70483a21180c817de516003309c

  • If we have some doubts on whether that result is what we need, we can double check. You can append ^ to a git sha and it will give you the parent of that commit. So we want to check the output on 563abdd4684^ and 563abdd4684.

<AlexDaniel> committable6: 563abdd4684^,563abdd4684 say (10 ** -1).WHAT
<committable6> AlexDaniel, ¦563abdd4684^: «(Num)» ¦563abdd: «(Rat)»

This confirms the result from bisectable.

  • Sometimes the commit message will mention the ticket number. If so, then we can go to that ticket and see if there are tests for it already and if these tests cover the ticket that we were reviewing. In this particular case we are out of luck, so we just have to leave a comment saying that the fix was bisected to 563abdd4684.

Hacking on Rakudo Compiler

See Hacking on Rakudo Compiler video.

You can try looking through LHF (long-hanging fruit) tickets. Some of these tickets have clues on how the ticket can be resolved, sometimes even with special notes for SQUASHathoners. That being said these are resolved very quickly, so chances are you'll have to find a “normal” ticket to work on.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.