<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>NetBeans Sources</title>
  <meta name="description" content="Info about the NetBeans sources - how to get them, what is here ...">
  <meta name="NAV_LINK" content="Sources">
  <meta name="NAV_PRIORITY" content="11">
  <link rel="stylesheet" type="text/css" href="../../netbeans.css">
  <meta http-equiv="content-language" content="en">
</head>
<body>
<h1>The NetBeans Sources</h1>
<br>
<p>The NetBeans source code is available under the
<a href="../../cddl-gplv2.html">Common Development and Distribution License (CDDL) v1.0 and the GNU General Public License (GPL) v2</a>.
The source code is available in a Mercurial repository. All
development of NetBeans happens using the Mercurial server on this site,
and development proposals and decisions happen on the
<a href="../lists/index.html">public mailing lists</a>.
</p>
<p>You can get to the sources in several ways.
</p>
<ul>
  <li>Through Mercurial - see the <a href="hg.html">Mercurial Overview page</a> for
details;</li>
  <li>Download an archived snapshot (ZIP) from the <a
 href="../../downloads/index.html">downloads page</a>;</li>
  <li><a href="http://hg.netbeans.org/main/file/">Browse them online</a></li>
</ul>

<p>If you are interested in making a build from the sources, see the
<a href="http://wiki.netbeans.org/WorkingWithNetBeansSources">Working with the NetBeans Sources</a> pages.</p>

<p>For legacy products and historical reasons, you can also 
<a href="https://netbeans.org/download/source_browse.html">browse the old CVS repository</a>.</p>

<h2>So what exactly is here?</h2>

<p>What is available here is the entire source tree and history of
the NetBeans IDE. Generally, there is a "stable" branch and a
"development branch." The development
branch is where ongoing development happens - it will be more or less
stable depending on what point
in the release cycle it is.</p>

<p>For a a description of the physical organization
of the sources in the Mercurial repository, see <a href="structure.html">Mercurial
Repositories</a>.</p>

<h2>Contributing</h2>

See the <a href="../contribute/index.html">getting involved page</a>.

</body>
</html>
