wiki:Development/FixingNewbie

Version 3 (modified by benl, 6 years ago) (diff)

--

Fixing Newbie Bugs

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

I will assume that you have already figured out how to use darcs? (especially the part about setting up a bug fix branch) to get the source code and you've built it and run the test suite. I'll also assume that you have picked a ticket on newbie list that you'd like to work on.

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.