<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - Getting involved in Apache Jena</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="/css/bootstrap-extension.css" rel="stylesheet" type="text/css">
    <link href="/css/jena.css" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="/images/favicon.ico" />

    <script src="https://code.jquery.com/jquery-2.2.4.min.js"
            integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
            crossorigin="anonymous"></script>
    <script src="/js/jena-navigation.js" type="text/javascript"></script>
    <script src="/js/bootstrap.min.js" type="text/javascript"></script>

    <script src="/js/improve.js" type="text/javascript"></script>

    
</head>

<body>

<nav class="navbar navbar-default" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/index.html">
                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
        </div>

        <div class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav">
                <li id="homepage"><a href="/index.html"><span class="glyphicon glyphicon-home"></span> Home</a></li>
                <li id="download"><a href="/download/index.cgi"><span class="glyphicon glyphicon-download-alt"></span> Download</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a href="/tutorials/index.html">Overview</a></li>
                        <li><a href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a href="/documentation/index.html">Overview</a></li>
                        <li><a href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a href="/documentation/javadoc.html">Javadoc</a></li>
                        <li><a href="/documentation/ontology/">Ontology API</a></li>
                        <li><a href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a href="/documentation/io/">RDF I/O</a></li>
                        <li><a href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
                        <li><a href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="drop down">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a href="/documentation/javadoc_elephas.html">Elephas</a></li>
                        <li><a href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a href="/documentation/javadoc/jdbc/">JDBC</a></li>
                        <li><a href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>

                <li id="ask"><a href="/help_and_support/index.html"><span class="glyphicon glyphicon-question-sign"></span> Ask</a></li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-bullhorn"></span> Get involved <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/getting_involved/index.html">Contribute</a></li>
                        <li><a href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a href="/about_jena/about.html">About Jena</a></li>
                        <li><a href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a href="/about_jena/citing.html">Citing</a></li>
                        <li><a href="/about_jena/team.html">Project team</a></li>
                        <li><a href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a href="http://www.apache.org/security/">Security</a></li>
                        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>


    

                <li id="edit"><a href="https://github.com/apache/jena-site/edit/main/source/getting_involved/__index.md" title="Edit this page on GitHub"><span class="glyphicon glyphicon-pencil"></span> Edit this page</a></li>
            </ul>
        </div>
    </div>
</nav>


<div class="container">
    <div class="row">
        <div class="col-md-12">
            <div id="breadcrumbs">
                
                    




    
    


<ol class="breadcrumb">
    
    
        
        
    
        
        
            
                <li class="active">GETTING INVOLVED</li>
            
            
        
    
</ol>




                
            </div>
            <h1 class="title">Getting involved in Apache Jena</h1>
            
	<p>We welcome your contribution towards making Jena a better platform for semantic web and linked data applications.
We appreciate feature suggestions, bug reports and patches for code or documentation.</p>
<p>If you need help using Jena, please see our <a href="../help_and_support">getting help</a> page.</p>
<h3 id="how-to-contribute">How to contribute</h3>
<p>You can help us sending your suggestions, feature requests and bug reports (as well as patches) using the <a href="https://issues.apache.org/jira/browse/JENA">Jena issue tracker</a>.</p>
<p>You can discuss your contribution, before or after adding it to Jira, on the <a href="mailto:dev@jena.apache.org"><code>dev@jena.apache.org</code></a> mailing list.
You can also help other users by answering their questions on the <a href="mailto:users@jena.apache.org"><code>users@jena.apache.org</code></a> mailing list.
See the <a href="../help_and_support">subscription instructions</a> for details.</p>
<p>Please see the <a href="reviewing_contributions.html">Reviewing Contributions</a> page for details of what committers will be looking for when reviewing contributions.</p>
<h4 id="improving-the-website">Improving the Website</h4>
<p>You can also help us improve the documentation on this website via Pull Request.</p>
<p>The website source lives in an Apache git repository at <a href="https://gitbox.apache.org/repos/asf/jena-site.git">gitbox.apache.org repo
jena-site</a>. There is also a
full read-write mirror on GitHub, see
<a href="https://github.com/apache/jena-site">jena-site on GitHub</a>:</p>
<pre><code>git clone https://github.com/apache/jena-site.git
cd jena-site
</code></pre>
<p>You can then make a branch, prepare your changes and submit a pull request.  Please see the <code>README.md</code> in that repository for more details.</p>
<h3 id="snapshots">SNAPSHOTs</h3>
<p>If you use Apache Maven and you are not afraid of being on the bleeding-edge, you can help us by testing our SNAPSHOTs which you can find in the <a href="https://repository.apache.org/content/repositories/snapshots/org/apache/jena/">Apache Maven repository</a>.</p>
<p>Here is, for example, how you can add TDB version X.Y.Z-SNAPSHOT to your project (please ask if you are unsure what the latest snapshot version number currently is):</p>
<pre><code>&lt;dependency&gt;
    &lt;groupId&gt;org.apache.jena&lt;/groupId&gt;
    &lt;artifactId&gt;jena-tdb&lt;/artifactId&gt;
    &lt;version&gt;X.Y.Z-SNAPSHOT&lt;/version&gt;
&lt;/dependency&gt;
</code></pre>
<p>See also how to <a href="/download/maven.html">use Jena with Maven</a>.</p>
<p>If you have problems with any of our SNAPSHOTs, <a href="/help_and_support/">let us know</a>.</p>
<p>You can check the state of each Jena development builds
on the <a href="https://builds.apache.org/pview/?match=Jena_.*">Apache Jenkins continuous integration server</a>.</p>
<h3 id="git-repository">Git repository</h3>
<p>You can find the Jena source code in the Apache git repository:
<a href="https://gitbox.apache.org/repos/asf/jena.git">https://gitbox.apache.org/repos/asf/jena.git</a></p>
<p>There is also a full read-write mirror of <a href="https://github.com/apache/jena">Jena on GitHub</a>:</p>
<pre><code>git clone https://github.com/apache/jena.git
cd jena
mvn clean install
</code></pre>
<p>You can <a href="https://github.com/apache/jena/fork">fork Jena on GitHub</a> and also submit <a href="https://github.com/apache/jena/pulls">pull requests</a> to
contribute your suggested changes to the code.</p>
<h3 id="open-issues">Open issues</h3>
<p>You can find a list of the <a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+JENA+AND+status+%3D+Open+ORDER+BY+priority+DESC&amp;mode=hide">open issues</a> on JIRA (sorted by priority).
Or, you can look at the <a href="https://issues.apache.org/jira/secure/QuickSearch.jspa?searchString=jena+updated:-1w">last week activity</a> to get a sense of what people are working on.</p>
<h3 id="submit-your-patches">Submit your patches</h3>
<p>You can develop new contributions and work on patches using either the
Apache-hosted git repository or the <a href="https://github.com/apache/jena">mirror on GitHub</a>.</p>
<p><a href="https://github.com/apache/jena/pulls">GitHub pull requests</a> are forwarded to the
<a href="/help_and_support/">dev@jira mailing list</a> for review by the Jena committers.
You should subscribe to dev@jira to follow the feedback on your pull request.</p>
<p>Alternatively, patches can be attached directly to issues in Jira
(click on <code>More Actions &gt; Attach Files</code>).</p>
<p>Please, inspect your contribution/patch and make sure it includes all (and
only) the relevant changes for a single issue. Don&rsquo;t forget tests!</p>
<p>If you want to test if a patch applies cleanly you can use:</p>
<pre><code>patch -p0 &lt; JENA-XYZ.patch
</code></pre>
<p>If you use Eclipse: right click on the project name in <code>Package Explorer</code>,
select <code>Team &gt; Create Patch</code> or <code>Team &gt; Apply Patch</code>.</p>
<p>You can also use git:</p>
<pre><code>git format-patch origin/trunk
</code></pre>
<h3 id="irc-channel">IRC channel</h3>
<p>Some Jena developers hang out on #jena on irc.freenode.net.</p>
<h3 id="how-apache-software-foundation-works">How Apache Software Foundation works</h3>
<p>To better understand how to get involved and how the Apache Software Foundation works we recommend you read:</p>
<ul>
<li><a href="http://www.apache.org/foundation/getinvolved.html">http://www.apache.org/foundation/getinvolved.html</a></li>
<li><a href="http://www.apache.org/foundation/how-it-works.html">http://www.apache.org/foundation/how-it-works.html</a></li>
<li><a href="http://www.apache.org/dev/contributors.html">http://www.apache.org/dev/contributors.html</a></li>
</ul>


        </div>
    </div>

</div>

<footer class="footer">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2022 The Apache Software Foundation, Licensed under the
            <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        </p>
        <p>
            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
            The Apache Software Foundation.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>


<script type="text/javascript">
    var link = $('a[href="' + this.location.pathname + '"]');
    if (link != undefined)
        link.parents('li,ul').addClass('active');
</script>

</body>
</html>
