resync these
[mono.git] / web / contributing
index ffadd989e986a6ff2cb01ffcd80b1e4072f7bb91..0a80bcb91b15ee03bd245c0308448981bb5bc9b0 100644 (file)
@@ -1,18 +1,51 @@
 * Contributing to the Mono project
 
-       There are many ways in which you can help in the Mono project:
-
-       <ul>
-               * <b>Programmers:</b> You can work on a free
-                 implementation of the <a
-                 href="class-library.html">class libraries</a>, the
-                 <a href="runtime.html">runtime engine</a>, <a
-                 href="tools.html">the tools</a>, the <a
-                 href="testing.html">testing framework</a>
-
-               * <b>Writers:</b> You can help us bywriting <a
-                 href="documentation.html">documentation</a>.
-       </ul>
+       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. 
+
+       There are three different philosophical approaches to helping
+       the Mono project, the selfish way, the altruistic or the
+       educational way.
+
+       The <b>selfish</b> 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: <a href="http://bugzilla.ximian.com">File a
+       bug report</a> (read <a href="#goodbugreport">this</a>); track
+       down the problem and provide a better
+       <a href="http://bugzilla.ximian.com">bug report</a>;  fix the
+       bug and provide a patch (you can <a
+       href="mailto:mono-list@ximian.com">post it</a> to the <a
+       href="http://lists.ximian.com/mailman/listinfo/mono-list">mono
+       mailing list</a>;  or discuss the solution on the mailing
+       list.   Ideally you will also write a <a
+       href="testing.html">regression test</a> so the bug does not
+       get re-introduced in the future. 
+
+       The <b>altruistic</b> 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 <a href="class-library.html">class</a> (from our <a
+       href="class-status.html">class status page</a>); help with the
+       <a href="documentation.html">documentation effort</a> (<a
+       href="http://lists.ximian.com/mailman/listinfo/mono-docs-list">mailing
+       list for the documentation effort</a>); fix existing <a
+       href=http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FRuntime&component=CORLIB&component=misc&component=System&component=System.Web&component=System.XML&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">runtime
+       bugs</a>; <a
+       href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FMCS&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">compiler
+       bugs</a>; help with the <a href="tools.html">tools</a> or
+       writing <a href="testing.html">tests</a> that help make Mono
+       more robust or help with the <a
+       href="http://www.go-mono.com/winforms.html">Winforms
+       effort</a>.
+
+       The <b>educational</b> 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
 
        You can see what needs to be done in the class libraries <a href="class-status.html">here</a>
 
+* IRC Channel
+
+       Many developers get together on the <b>#mono</b> irc channel
+       on the <b>irc.gnome.org</b> server.  
+
 ** To start contributing
 
        As a programmer, you can contribute in three different scenarios to Mono:
@@ -61,7 +99,7 @@
        world that only has a test suite.  
        
        To get started writing tests see the <a href="testing.html">Test Suite</a>
-       section. <a href="mono-contribution-howto">Here</a> there is a good All-In-One introduction to the art of writing tests.
+       section. <a href="mono-contribution-howto.html">Here</a> there is a good All-In-One introduction to the art of writing tests.
 
 
 *** Contributing to the runtime engine
 
        You can review the list of current bugs by going <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FMCS&product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&order=%27Importance%27&form_name=query">here</a>
 
+       Check our <a href="bugs.html">Bugs</a> that contains links to
+       easily add a bug report, or to query the existing bugs.
+
+<a name="goodbugreport"/>
+** How to make good bug reports
+
+       A mail from Paolo to mono-devel-list contained this check list:
+       <ol>
+               * Submit a test case, the smaller it is, the better
+
+               * Use <a href="http://bugzilla.ximian.com">
+               http://bugzilla.ximian.com</a> to report the bug.
+               
+               <p>In <b>addition</b> 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:
+               <pre> mcs test.cs </pre>
+               provide the <b>full command line</b> you used to compile
+               the test.
+
+               * If running the test requires more than:
+               <pre> mono test.exe </pre>
+               provide the <b>full command line</b> 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 <b>you</b> get from the test case.
+       </ol>
+
+       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: