<HTML>
<HEAD>
<TITLE>Contributing to the NetBeans Project</TITLE>
<META NAME="description" CONTENT="How to make contributions to netbeans.org">
<META NAME="NAV_LINK" content="Contribute">
<META NAME="NAV_PRIORITY" content="10">
<link rel="stylesheet" type="text/css" HREF="../../netbeans.css">
<meta http-equiv="content-language" CONTENT="en">
</HEAD>

<BODY>

<h1>Contributing to netbeans.org</h1>

<P>You probably know that NetBeans is an <a href="../../about/os/">open
source project</a>. Open source projects are primarily community driven, 
although companies may make commercial products from these projects. Open 
source projects encourage everyone in the community to contribute their 
knowledge and expertise and, in turn, everyone in the community benefits. 
For example, when the community contributes enhancement requests or submits 
bug reports, fixes or enhancements are implemented to improve the tools, and 
everyone benefits. Because NetBeans is open source, you can influence what 
happens to the IDE and the direction for NetBeans' future growth

<P>Contributing code is not the only way to help NetBeans! Read our list below 
for other ways you can help the community.

<p><h2>Community Support, Promotion</h2>
<ul>
<li><b>Participate on Mailing Lists</b>
<br>There are several <a href="../../community/lists/top.html">mailing lists
and newsgroups</A> at netbeans.org, where people using the software can benefit
from each others' expertise.  To really be useful, community lists need <i>your</i>
input!  Please don't be afraid to post - help others when you can!</li>



<p><li><b>Promote NetBeans!</b>
<br>If you're a NetBeans user, speak out!  There's a lot of competition
out there, and many developers haven't heard of NetBeans, or worse, have
heard of it but have misconceptions, or haven't heard about recent
improvements.  Help spread the word - talk about NetBeans strengths, and
weaknesses, on blogs, industry mailing lists, print magazines and forums.
You found (or wrote) a NetBeans-related article or review? 
<A HREF="https://netbeans.org/about/contact_form.html?to=2">We'd love to read it</a>!</li>
</ul>

<p><h2>Submit Content, Translations</h2>
<ul>
<p><LI><B>Contribute Website Content</B>
<BR>You figured out how to solve a tricky use-case? 
<a href="http://wiki.netbeans.org/wiki/view/CommunityDocs">New 
content or updates to existing content</a> are always welcome!  Articles
like FAQs and HOWTOs are very very helpful, as are Flash movies. See the
<A HREF="web-content.html">guidelines for contributing tutorials</A> for more info.
Use this free 
<a href="https://netbeans.org/projects/www/downloads">webspace for your contributed demos</a>.
</li>

<p><LI><B>Translations, Localisations</B>
<BR>Are you interested in efforts to localize web site content, or the IDE
itself, in your native language?  We and your fellowmen would appreciate your help!  See the
<A HREF="localise.html">Localisation Quick Start</A> page for info.
Some community members already created
<a href="http://wiki.netbeans.org/wiki/view/FaqInternationalCommunity">forums
in various languages</a>, and now help others 
    <a href="https://netbeans.org/kb/articles/learn-java.html#3">get started with Java</a> and NetBeans.
</li>

<p><LI><B>Edit the Newsletter, Submit Stories for The Edge</B>
<BR>The weekly <A HREF="../news/newsletter/index.html">NetBeans Newsletter</A>
is put together by volunteers involved in NetBeans - if you're
following current events on the mailing lists you could edit a
newsletter!  The <A HREF="../news/newsletter/index.html">monthly Edge</A>
newsletter is always looking for contributing authors to write an interview,
an article, partner spotlights ... if you'd like to submit a story, please
<A HREF="https://netbeans.org/about/contact_form.html?to=2">get in touch</A>.
Also if you heard of an event or conference in your area where NetBeans is used, 
<A HREF="https://netbeans.org/about/contact_form.html?to=2">drop us a note</a>
and we'll advertise it in our <a href="https://netbeans.org/community/news/calendar.html">event calendar</a>.
</li>
</ul>

<p><h2>Submit Bug Reports, Write Code</h2>
<ul>
<p><Li><B>File a Bug Report</B>
<BR>Bug reports are very helpful to developers, and a great way to contribute
to the project!  Remember to take a little time when
<A HREF="../issues.html">filing a bug report</A> - make sure you can
reproduce the problem, and be very explicit in your description.
</li>

<p><LI><B>File an Enhancement Request</B>
<BR>If there's something you'd like to see in the IDE and don't, or
something you can imagine improving, let us know!  Enhancement requests
should be <A HREF="../issues.html">filed in the issue tracking system</A>,
the same as for bugs.
</li>

<p><LI><B>Contributing Code and Plugin Modules</B>
<BR>As mentioned above, NetBeans is an open-source project - all of the
source code is available, and if there's a feature you'd like to see, or a
bug you'd like to see fixed, you have the power to make that happen.  
You can learn more about <a href="http://platform.netbeans.org/tutorials/">developing plugin modules</a>,
<A HREF="patches.html">contributing patches</A> and
<A HREF="modules.html">contributing plugin modules</A>.
Publish your plugin modules in the <a href="http://plugins.netbeans.org/PluginPortal/">Plugin Portal</a>
and get feedback from your fellow community members!
</li>
</ul>

</body>
</html>
