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

    <title>Apache Jena - Reviewing Contributions</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/reviewing_contributions.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><a href='/getting_involved'>GETTING INVOLVED</a></li>
            
            
        
    
        
        
            
                <li class="active">REVIEWING CONTRIBUTIONS</li>
            
            
        
    
</ol>




                
            </div>
            <h1 class="title">Reviewing Contributions</h1>
            
	<p>This page details how to review contributions submitted for Apache Jena, it is intended primarily for Jena committers but is also useful in helping contributors understand what we expect from a contribution.</p>
<h1 id="patch-guidelines">Patch Guidelines</h1>
<p>When reviewing contributed patches to Jena the committers are going to be considered the following:</p>
<ol>
<li>Does the pull request includes tests?</li>
<li>Does the pull request includes documentation?</li>
<li>Does it have Apache copyright headers?</li>
<li>Are there any @author tags?</li>
<li>Is it contributed to Apache?</li>
<li>What is the size and impact on Jena of the contribution?</li>
<li>Is IP clearance required?</li>
<li>Pull requests and commit messages</li>
</ol>
<h2 id="including-tests">Including Tests</h2>
<p>Including tests is almost always a must for a patch unless the patch is for non-code
content e.g. CMS diffs, maven config tweaks.</p>
<p>Tests are <strong>essential</strong> for bug fixes but should be considered mandatory for any patch.  Jena uses JUnit for tests and uses the standard Java <em>src/test/</em> directory conventions within its modules.</p>
<h2 id="including-documentation">Including Documentation</h2>
<p>Users will not find or understand new feature if there is no documentation.</p>
<h2 id="apache-copyright-headers">Apache Copyright Headers</h2>
<p>Code for inclusion in Jena should contain Apache copyright headers, <strong>only</strong>
the contributor should remove/change copyright headers so if a different copyright
header is present then you <strong>must</strong> request that the contributor change the
copyright headers.</p>
<h2 id="no-author-tags">No @author Tags</h2>
<p>The Jena PMC have agreed not to maintain @author tags in the code since generally
authorship can be identified from the SVN history anyway and over time
committers will typically touch much code even if only briefly and in minor ways.</p>
<p>@author tags will not prevent a contribution being accepted but <strong>should</strong>
be removed by the committer who integrates the contribution.</p>
<h2 id="code-style">Code style</h2>
<p>Jena does not have a particular formal code style specification, but here are some simple tips for keeping your contribution in good order:</p>
<ul>
<li>Jena uses the Java code conventions with spaces (not tabs!), an indent of 4, and opening braces on the same line. Use no trailing whitespace if avoidable. Use common sense to make your code readable for the next person.</li>
<li>Don&rsquo;t create a method signature that throws checked exceptions that aren&rsquo;t ever actually thrown from the code in that method unless an API supertype specifies that signature. Otherwise, clients of your code will have to include unnecessary handling code.</li>
<li>Don&rsquo;t leave unused imports in your code. IDEs provide facilities to clean imports.</li>
<li>If a type declares a supertype that isn&rsquo;t a required declaration, consider whether that clarifies or confuses the intent.</li>
<li>Minimize the new compiler warnings your patch creates. If you use @SuppressWarnings to hide them, please add a comment explaining the situation.</li>
<li>Remove unused local variables or fields.</li>
<li>If there is valuable code in some unused private method, add a @SuppressWarnings(&ldquo;unused&rdquo;) with an explanation of when it might become useful.</li>
</ul>
<h2 id="contribution-to-apache">Contribution to Apache</h2>
<p>The Apache License states that any contribution to an Apache project is automatically considered
to be contributed to the Apache foundation and thus liable for inclusion in an Apache project.</p>
<p>Generally you will not have to worry about this but if anyone ever states that code is not
for inclusion then we <strong>must</strong> abide by that or request that they make a statement
that they are contributing the code to Apache.</p>
<h2 id="size-and-impact-on-jena">Size and Impact on Jena</h2>
<p>Small patches can generally be incorporated immediately, larger patches - particularly those adding significant
features - should usually be discussed on the <a href="mailto:dev@jena.apache.org">dev@jena.apache.org</a> list prior to acceptance.</p>
<p>Use your judgement here, a few hundred lines of code may be considered small if it isn&rsquo;t changing/extending functionality significantly.
Conversely a small patch that changes a core behavior should be more widely discussed.</p>
<p>If in doubt start a thread on dev or comment on the JIRA issue, JIRA comments get copied to the dev list
so all developers should see the comments even if they aren&rsquo;t explicitly watching the issue.</p>
<h2 id="ip-clearance">IP Clearance</h2>
<p>Depending on where a patch comes from there may be IP clearance issues, for small patches this is generally a non-issue.
Where this comes into play is when a large patch is coming in which has been developed completely externally to Jena, particularly if that patch has been developed for/on behalf of a company rather than be developers working in their free time.</p>
<p>For patches like this we may require that the company in question submit a <a href="http://www.apache.org/licenses/cla-corporate.txt">CCLA</a> and that the developers involve submit <a href="http://www.apache.org/licenses/icla.txt">ICLAs</a>.  There may also need to be IP Clearance vote called on the developer list to give developers a chance to review the code and check that there isn&rsquo;t anything being incorporated that violates Apache policy.</p>
<h2 id="pull-requests-and-commit-messages">Pull Requests and Commit Messages</h2>
<p>A pull request is a single unit so a large number of commits details the evolution internally
but does not help record the external contribution.</p>
<p>Consider asking the contributor to merge commits into a few with useful messages for an external reviewer.</p>
<h2 id="project-processes">Project Processes</h2>
<p><a href="https://cwiki.apache.org/confluence/display/JENA/Processes">Project Processes</a> including:</p>
<ul>
<li><a href="https://cwiki.apache.org/confluence/display/JENA/Release+Process">Release process</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/JENA/Commit+Workflow+for+Github-ASF">Commit Workflow for Github-ASF</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>
