Bug for beginners
Andrew Eikum
andrew at brightnightgames.com
Thu Aug 20 22:58:36 CDT 2009
Alexandros Dermenakis wrote:
> Hi all,
>
> I studied the wine developer's guide and went a bit through the code. I would
> like a suggestion, a bug to start understanding better the structure of wine
> and familiarize myself with it in order to be able to contribute more in the
> future.
>
> thank you
>
Hi Alexandros,
When I began working on Wine, I found that the easiest way for me was to
implement parts of Wine that have no implementation yet. Implementing
new functions means you don't have to worry about breaking old tests or
re-arranging and understanding someone else's code. It also gives you
the opportunity to write new tests from the ground up, so you get used
to exactly what the unit tests are for and how they work.
Look around in Wine for functions that are labeled with FIXMEs
indicating that they are stubs, or look in the .spec files for functions
declared as stubs. Find a function that has an easy to understand
purpose: a very clear input and output. Then, write unit tests in that
DLL's test suite that prove all of the important features of that
function. Run your tests on an actual Windows OS (look into
"crosstests") and verify that they are correct. Finally, implement that
function in Wine to make it also pass your tests.
If you want a suggestion for where to look for small stubs, take a look
at gdi32 and gdiplus. I know they still have some smallish,
unimplemented or half-implemented functions. If graphics don't interest
you, there are plenty of stubs elsewhere.
Once you've got the hang of how the unit tests work (I mean it, the test
cases are the most important part of getting patches into Wine), try
looking into bugs on WineHQ until you find one you think you might be
able to handle. Then gear up for the most fun you'll ever have reading
pages and pages debug logs :)
No matter where you begin your work, remember that Wine is a difficult
project to work on. Because even very subtle changes can cause
breakages in seemingly unrelated parts of Wine, the standard for patches
is very high. You will need to prove that your patch is correct using
the test suites. No provable tests means it's not getting in.
Good luck and thanks for your interest,
Andrew
More information about the wine-devel
mailing list