

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Community</title>
    <meta name="description" content="Project Community Page">
    <meta name="author" content="">

    <!-- Enable responsive viewport -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <link href="/assets/themes/apache-clean/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="/assets/themes/apache-clean/css/style.css?body=1" rel="stylesheet" type="text/css">
    <link href="/assets/themes/apache-clean/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
    <!-- Le fav and touch icons -->
    <!-- Update these with your own images
    <link rel="shortcut icon" href="images/favicon.ico">
    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
  -->

    <!-- make tables sortable by adding class tag "sortable" to table elements -->
    <script src="http://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>


  </head>

  <body>

    

<!-- Navigation -->
<div id="nav-bar">
  <nav id="nav-container" class="navbar navbar-inverse " role="navigation">
    <div class="container">
      <!-- Brand and toggle get grouped for better mobile display -->

      <div class="navbar-header page-scroll">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
          <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 page-scroll" href="/#home">Home</a>
      </div>
      <!-- Collect the nav links, forms, and other content for toggling -->
      <nav class="navbar-collapse collapse" role="navigation">
        <ul class="nav navbar-nav">
          
          
          
          <li id="download">
            
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a>
            <ul class="dropdown-menu dropdown-left">
              
              
              <li><a href="/downloads/spark" target="_self">Bahir Spark Extensions</a></li>
              
              
              <li><a href="/downloads/flink" target="_self">Bahir Flink Extensions</a></li>
              
            </ul>
            
          </li>
          
          
          
          
          <li id="community">
            
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
            <ul class="dropdown-menu dropdown-left">
              
              
              <li><a href="/community" target="_self">Get Involved</a></li>
              
              
              <li><a href="/contributing" target="_self">Contributing</a></li>
              
              
              <li><a href="/contributing-extensions" target="_self">Contributing Extensions</a></li>
              
              
              <li><a href="https://issues.apache.org/jira/browse/BAHIR" target="_blank">Issue Tracker</a></li>
              
              
              <li><a href="/community#source-code" target="_self">Source Code</a></li>
              
              
              <li><a href="/community-members" target="_self">Project Committers</a></li>
              
            </ul>
            
          </li>
          
          
          
          
          <li id="documentation">
            
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">Documentation<b class="caret"></b></a>
            <ul class="dropdown-menu dropdown-left">
              
              
              <li><a href="/docs/spark/overview" target="_self">Bahir Spark Extensions</a></li>
              
              
              <li><a href="/docs/flink/overview" target="_self">Bahir Flink Extensions</a></li>
              
            </ul>
            
          </li>
          
          
          
          
          <li id="github">
            
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">GitHub<b class="caret"></b></a>
            <ul class="dropdown-menu dropdown-left">
              
              
              <li><a href="https://github.com/apache/bahir" target="_blank">Bahir Spark Extensions</a></li>
              
              
              <li><a href="https://github.com/apache/bahir-flink" target="_blank">Bahir Flink Extensions</a></li>
              
              
              <li><a href="https://github.com/apache/bahir-website" target="_blank">Bahir Website</a></li>
              
            </ul>
            
          </li>
          
          
          
          
          <li id="apache">
            
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
            <ul class="dropdown-menu dropdown-left">
              
              
              <li><a href="http://www.apache.org/foundation/how-it-works.html" target="_blank">Apache Software Foundation</a></li>
              
              
              <li><a href="http://www.apache.org/licenses/" target="_blank">Apache License</a></li>
              
              
              <li><a href="http://www.apache.org/foundation/sponsorship" target="_blank">Sponsorship</a></li>
              
              
              <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
              
              
              <li><a href="/privacy-policy" target="_self">Privacy Policy</a></li>
              
            </ul>
            
          </li>
          
          
        </ul>
      </nav><!--/.navbar-collapse -->
      <!-- /.navbar-collapse -->
    </div>
    <!-- /.container -->
  </nav>
</div>


    <div class="container">

      

<!--<div class="hero-unit Community">
  <h1></h1>
</div>
-->

<div class="row">
  <div class="col-md-12">
    <!--

-->

<h1 id="apache-bahir-community">Apache Bahir Community</h1>

<p>Every volunteer project obtains its strength from the people involved in it. We invite you to participate as much or as little as you choose.</p>

<p>You can:</p>

<ul>
  <li>Use our project and provide a feedback.</li>
  <li>Provide us with the use-cases.</li>
  <li>Report bugs and submit patches.</li>
  <li>Contribute code, javadocs, documentation.</li>
</ul>

<p>Visit the <a href="/contributing">Contributing</a> page for more information.</p>

<h2 id="mailing-list">Mailing list</h2>

<p>Get help using Bahir or contribute to the project on our mailing lists:</p>

<ul>
  <li><a href="mailto:user@bahir.apache.org">user@bahir.apache.org</a> is for usage questions, help, and announcements. <a href="mailto:user-subscribe@bahir.apache.org?subject=send this email to subscribe">subscribe</a>,     <a href="mailto:dev-unsubscribe@bahir.apache.org?subject=send this email to unsubscribe">unsubscribe</a>, <a href="https://www.mail-archive.com/user@bahir.apache.org/">archives</a></li>
  <li><a href="mailto:dev@bahir.apache.org">dev@bahir.apache.org</a> is for people who want to contribute code to Bahir. <a href="mailto:dev-subscribe@bahir.apache.org?subject=send this email to subscribe">subscribe</a>, <a href="mailto:dev-unsubscribe@bahir.apache.org?subject=send this email to unsubscribe">unsubscribe</a>, <a href="https://www.mail-archive.com/dev@bahir.apache.org/">archives</a></li>
  <li><a href="mailto:commits@bahir.apache.org">commits@bahir.apache.org</a> is for commit messages and patches to Bahir. <a href="mailto:commits-subscribe@bahir.apache.org?subject=send this email to subscribe">subscribe</a>, <a href="mailto:commits-unsubscribe@bahir.apache.org?subject=send this email to unsubscribe">unsubscribe</a>, <a href="https://www.mail-archive.com/commits@bahir.apache.org/">archives</a></li>
</ul>

<h2 id="issue-tracker">Issue tracker</h2>

<h3 id="bug-reports">Bug Reports</h3>

<p>Found bug? Enter an issue in the <a href="https://issues.apache.org/jira/browse/BAHIR">Issue Tracker</a>.</p>

<p>Before submitting an issue, please:</p>

<ul>
  <li>Verify that the bug does in fact exist.</li>
  <li>Search the issue tracker to verify there is no existing issue reporting the bug you’ve found.</li>
  <li>Consider tracking down the bug yourself in the Bahir’s source and submitting a patch along with your bug report. This is a great time saver for the Bahir developers and helps ensure the bug will be fixed quickly.</li>
</ul>

<h3 id="feature-requests">Feature Requests</h3>

<p>Enhancement requests for new features are also welcome. The more concrete and rationale the request is, the greater the chance it will incorporated into future releases.</p>

<p><a href="https://issues.apache.org/jira/browse/BAHIR">https://issues.apache.org/jira/browse/BAHIR</a></p>

<h2 id="source-code">Source Code</h2>

<p>The project sources for each supported platform are accessible via their respective source code repositories:</p>

<ul>
  <li>Apache Spark Extensions: (https://gitbox.apache.org/repos/asf/bahir.git), also mirrored in <a href="https://github.com/apache/bahir">GitHub</a></li>
  <li>Apache Flink Extensions: (https://gitbox.apache.org/repos/asf/bahir-flink.git), also mirrored in <a href="https://github.com/apache/bahir-flink">GitHub</a></li>
  <li>Website: (https://gitbox.apache.org/repos/asf/bahir-website.git), also mirrored in <a href="https://github.com/apache/bahir-website">GitHub</a></li>
</ul>

  </div>
</div>



      <hr>

      <!-- <p>&copy; 2021 </p>-->
      <footer class="site-footer">
    <div class="wrapper">
        <div class="footer-col-wrapper">
            
            <div style="text-align:center;">
                
                <div>
                    Copyright &copy; 2016-<script>document.write(new Date().getFullYear());</script> <a href="http://www.apache.org">The Apache Software Foundation</a>.
                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
                    <br>
                    
                    Apache and the Apache Feather logo are trademarks of The Apache Software Foundation.
                    
                </div>
            </div>
        </div>
    </div>
</footer>

    </div>

    


  <script type="text/javascript">
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-79140859-1', 'bahir.apache.org');
  ga('require', 'linkid', 'linkid.js');
  ga('send', 'pageview');

</script>



    <script src="/assets/themes/apache-clean/jquery/jquery-2.1.1.min.js"></script>

    <script src="/assets/themes/apache-clean/bootstrap/js/bootstrap.min.js"></script>


  </body>
</html>

