X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=web%2Fcontributing;h=0a80bcb91b15ee03bd245c0308448981bb5bc9b0;hb=bb78834b6c86e1cc75cb57256cee9eb691984cbf;hp=ca4d53e8f0f487dbc43b6a19da19c221802b05d9;hpb=773162244ea88c7297e4f847bc8b1b91e12cd323;p=mono.git diff --git a/web/contributing b/web/contributing index ca4d53e8f0f..0a80bcb91b1 100644 --- a/web/contributing +++ b/web/contributing @@ -1,13 +1,275 @@ * Contributing to the Mono project - Links to Documentation. - Links to Class Library. - Links to ... + Mono has not been completed yet. It is a project under + active development and with a vibrant community. If you are + looking at ways of helping the project, you have come to the + right web page. -* Special note + There are three different philosophical approaches to helping + the Mono project, the selfish way, the altruistic or the + educational way. + + The selfish way is packed with adventure. You start by + building your own software, and start using the compiler and + tools that come with Mono. Eventually you will run into + missing features, or a bug in the software. Since we ship all + the source code for Mono, you can start tracking down the + problem. Depending on how much time you have to devote to the + problem you could: File a + bug report (read this); track + down the problem and provide a better + bug report; fix the + bug and provide a patch (you can post it to the mono + mailing list; or discuss the solution on the mailing + list. Ideally you will also write a regression test so the bug does not + get re-introduced in the future. + + The altruistic is probably the easiest because you get + to pick a piece of Mono that you might want to work on. You + can pick an unfinished class (from our class status page); help with the + documentation effort (mailing + list for the documentation effort); fix existing runtime + bugs; compiler + bugs; help with the tools or + writing tests that help make Mono + more robust or help with the Winforms + effort. + + The educational way is an interesting one, because you + pick a technology you are interested in, and work on that + technology to learn the technology. + + Those are just broad things that need to be worked on, but + something that would help tremendously would be to help with + small duties in the project that need to be addressed. + + You can see what needs to be done in the class libraries here + +* IRC Channel + + Many developers get together on the #mono irc channel + on the irc.gnome.org server. + +** To start contributing + + As a programmer, you can contribute in three different scenarios to Mono: + + + + You might also want to check our common + setups section that describes some common setups that people + use while working on Mono. + +*** Contributing to the class library, regression tests or the compiler + + This only requires Windows currently. + + To start developing classes or to contribute to the compiler, + you only need Windows and the .NET Framework 1.0 SDK. Please notice + that you do not need Visual Studio (although you can use it if + you want). The .NET Framework SDK requires some version of + Windows XP or Windows NT. If you are running Windows 98, 95 + or Me, you could use instead the .NET Redist package, but it + lacks the documentation browser and the ildasm program (C#, VB, JScript and IL + assembler are included). + + You can get it here + + If you are new to .NET, writing regression tests is a good way + of starting to contribute: it will help you get used to C# as + well as getting comfortable with the .NET APIs. + + This helps because at this point you might be the best + qualified person to fix a problem found by the regression + test, or you might have a new class to implement in the .NET + world that only has a test suite. + + To get started writing tests see the Test Suite + section. Here there is a good All-In-One introduction to the art of writing tests. + + +*** Contributing to the runtime engine + + This only requires Linux, currently some tasks are easier if you + have access to Windows as well. + + Here are a few things you can do: + + +** Bug reporting + + If you find bugs in Mono, please make sure you enter a bug + report so we can keep track of problems in Mono. + + To enter bug reports go to + http://bugzilla.ximian.com and enter bug reports against + your favorite component (Mono, Runtime, C# compiler). + + You can review the list of current bugs by going here + + Check our Bugs that contains links to + easily add a bug report, or to query the existing bugs. + + +** How to make good bug reports + + A mail from Paolo to mono-devel-list contained this check list: +
    + * Submit a test case, the smaller it is, the better + + * Use + http://bugzilla.ximian.com to report the bug. + +

    In addition to bugzilla, posting to the list is + fine if the bug merits larger exposure or design + discussions to solve; posting to the list twice or more + is just a way to annoy people and make them waste time, + specially when you start a new thread about it. + + * If the test involves libraries or assemblies that are + not part of mono, add info about where to download all + the dependencies, and how to compile/install them. + + * If compiling the test case requires more than: +

     mcs test.cs 
    + provide the full command line you used to compile + the test. + + * If running the test requires more than: +
     mono test.exe 
    + provide the full command line needed to replicate + the bug. + + * Provide info about the version of the software you're + using (both mono and the operating system or relevant + libraries). + + * Provide the output you expect the test case to produce. + + * Provide the actual output you get from the test case. +
+ + A good bug report complies with at least 6 items from the list. + If your bug report complies with 3 or less items, it is very + poor and it means it will take much more time to fix (when it's + not ignored). + +** Small tasks + + A few smaller tasks are here, dropped in no particular order: + + +* Emacs support + + Brad Merryl's C# mode for Emacs is available: http://www.cybercom.net/~zbrad/DotNet/Emacs/ + +* Books on C# and DotNet. + + + + +* Common Setups + + People running both Linux and Windows while contributing to + Mono use a number of tricks to increase their productivity. + + Scenarios: + + + +* Special Note If you have looked at Microsoft's implementation of .NET or - their shared source code, you will not be able to contribute - to Mono. + their shared source code, you may not be able to contribute + to Mono. Details will follow when we know more about this. + + In general be careful when you are implementing free software + and you have access to proprietary code. We need to make sure + that we are not using someone else's copyrighted code + accidentally. + + Please do not use the ildasm program to disassemble + proprietary code when you are planning to reimplement a class + for Mono. If you have done this, we might not be able to use + your code. - Please, follow care when reading code + Please stick to published documentation for implementing any + classes.