wiki:Development/FixingNewbie

Fixing Newbie Bugs

So, you'd like to contribute to DDC but don't know how? Then this page is for you!

I'll also assume that you have picked a ticket on newbie list that you'd like to work on. If this list is empty then ask on the mailing list, as it changes frequently as things are fixed.

Refactorings

The easiest tickets to work on involve refactoring. This is an easy way to become familiar with the code base, as the required functionality already exists.

Enhancements

The second easiest tickets are small cosmetic enhancements. These should at least be fairly well specified, and the aim is to add some functionality without breaking any existing tests.

The Bugzors

Then there are the bugs. Test cases for bugs which have not been fixed yet are put in the test/Broken-skip part of the ddc darcs tree. For say bug number XXX, there may already be a test case called TXXX-BugName. If you list the TXXX-BugName directory, you will find that it probably contains a single file named Test.ds or Main.ds. With the compiler already built, you can try compiling the test case using the command:

bin/ddc test/ddc-main/Broken-skip/TXXX-BugName/Test.ds

which should produce a similar error message to the one in the bug report.

If there isn't already a test case, you should add a TXXX-BugName directory and a appropriate test file.

At this stage its usually a good idea to add a simple shell script in the top level directory, which will build the compiler and run your test case with a single command. This shell script (which can be named say run.sh) might look a little like this (modify to suit):

#!/bin/bash

make || exit 1

bin/ddc test/Broken-skip/TXXX-BugName/Test.ds 2>&1

Depending on the particular problem you're working on you may want to add the -dump command line option to the ddc command line.

Once you have all this set up, its time to start adding debug print statements to help track down the problem.

When you have a fix for the bug, you can use darcs to send a patch to the mailing list. If you didn't fix the bug but made a test case, then that's still helpful, so submit that anyway.

Major Projects

If you want work on a more major project then that's even better. In this case it's best to introduce yourself on disciple-cafe.

Last modified 4 years ago Last modified on Mar 8, 2014, 9:59:50 AM