﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Lucene.Net project contributing guide | Apache Lucene.NET 4.8.0 </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Lucene.Net project contributing guide | Apache Lucene.NET 4.8.0 ">
    <meta name="generator" content="docfx 2.50.0.0">
    
    <link rel="shortcut icon" href="../logo/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    
    
  
    <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:400,700%7CMerriweather%7CRoboto+Mono">
    <link rel="stylesheet" href="/styles/site.css">
  
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../logo/lucene-net-color.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="contributing">
<h1 id="lucenenet-project-contributing-guide">Lucene.Net project contributing guide</h1>

<hr>
<h2 id="getting-involved">Getting involved</h2>
<p><em>There are lots ways to help contribute to the Lucene.Net project!</em></p>
<p>Lucene.Net is a very large project (over 400,000 executable lines of code and nearly 1,000,000 lines of text total) and we welcome any and all help to maintain such an effort.</p>
<h3 id="ask-a-question">Ask a Question</h3>
<p>If you have a general how-to question or need help from the Lucene.Net community, please email the Apache Lucene.Net-User mailing list by sending a message to:</p>
<p><a href="mailto:user@lucenenet.apache.org">user@lucenenet.apache.org</a></p>
<p>We recommend you join the <a href="https://cwiki.apache.org/confluence/display/LUCENENET/Mailing+Lists">user mailing list</a> to stay looped into all user discussions.</p>
<p>Alternatively, you can get help via <a href="https://stackoverflow.com/questions/tagged/lucene.net">StackOverflow</a>.</p>
<p>Please do not submit general how-to questions to GitHub, use GitHub Issues for bug reports and tasks only.</p>
<p>see <strong><a class="xref" href="mailing-lists.html">mailing lists</a></strong></p>
<h3 id="start-a-discussion">Start a Discussion</h3>
<p>To start a development discussion regarding technical features of Lucene.Net, please email the Apache Lucene.Net-Developer mailing list by sending a message to:</p>
<p><a href="mailto:dev@lucenenet.apache.org">dev@lucenenet.apache.org</a></p>
<p>We recommend you join both the <a href="https://cwiki.apache.org/confluence/display/LUCENENET/Mailing+Lists">user and dev mailing lists</a> to stay looped in to all user and developer discussions.</p>
<p>see <strong><a class="xref" href="mailing-lists.html">mailing lists</a></strong></p>
<h3 id="website-and-documentation">Website and Documentation</h3>
<p>Help with keeping this website and documentation up to date would be a great help. It would be great to migrate/consolidate a lot of the important information from the wiki to this website. See <strong><a class="xref" href="documentation.html">website and documentation</a></strong> for more information about contributing to this area.</p>
<h3 id="report-a-bug">Report a Bug</h3>
<p>To report a bug, please use the <a class="xref" href="issue-tracker.html">GitHub issue tracker</a>.</p>
<h3 id="submit-a-pull-request">Submit a Pull Request</h3>
<p>First have a look at the <strong><a class="xref" href="current-status.html">Current Status</a></strong> of the project to see where things are at.</p>
<p>There's a <a href="https://github.com/apache/lucenenet/blob/master/CONTRIBUTING.md">detailed contribution guide here</a>. <em>(it would be good to migrate this guide to this website)</em></p>
<p>And another guide is here about all the basics of getting started with the repo and how we prefer to receive pull requests <a href="https://cwiki.apache.org/confluence/display/LUCENENET/Git+Setup+and+Pull+Requests">Git Setup and Pull Requests</a></p>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/apache/lucenenet/blob/master/websites/site/contributing/index.md/#L1" class="contribution-link">Improve this Doc</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            Copyright © 2020 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
