

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>Review Checklist &mdash; Apache Cassandra Documentation v4.0-rc2</title>
  

  
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="../_static/extra.css" type="text/css" />

  
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/doctools.js"></script>
    
    <script type="text/javascript" src="../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="How-to Commit" href="how_to_commit.html" />
    <link rel="prev" title="License Compliance" href="license_compliance.html" /> 
</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../index.html" class="icon icon-home"> Apache Cassandra
          

          
          </a>

          
            
            
              <div class="version">
                4.0-rc2
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../getting_started/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../new/index.html">New Features in Apache Cassandra 4.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../architecture/index.html">Architecture</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cql/index.html">The Cassandra Query Language (CQL)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data_modeling/index.html">Data Modeling</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuring Cassandra</a></li>
<li class="toctree-l1"><a class="reference internal" href="../operating/index.html">Operating Cassandra</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Cassandra Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Contributing to Cassandra</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html">Getting Started</a></li>
<li class="toctree-l2"><a class="reference internal" href="ide.html">Building and IDE Integration</a></li>
<li class="toctree-l2"><a class="reference internal" href="testing.html">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="patches.html">Contributing Code Changes</a></li>
<li class="toctree-l2"><a class="reference internal" href="code_style.html">Code Style</a></li>
<li class="toctree-l2"><a class="reference internal" href="license_compliance.html">License Compliance</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Review Checklist</a></li>
<li class="toctree-l2"><a class="reference internal" href="how_to_commit.html">How-to Commit</a></li>
<li class="toctree-l2"><a class="reference internal" href="documentation.html">Working on Documentation</a></li>
<li class="toctree-l2"><a class="reference internal" href="ci.html">Jenkins CI Environment</a></li>
<li class="toctree-l2"><a class="reference internal" href="dependencies.html">Dependency Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="release_process.html">Release Process</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../faq/index.html">Frequently Asked Questions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../plugins/index.html">Third-Party Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="../bugs.html">Reporting Bugs</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contactus.html">Contact us</a></li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">Apache Cassandra</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="index.html">Contributing to Cassandra</a> &raquo;</li>
        
      <li>Review Checklist</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="../_sources/development/how_to_review.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="review-checklist">
<span id="how-to-review"></span><h1>Review Checklist<a class="headerlink" href="#review-checklist" title="Permalink to this headline">¶</a></h1>
<p>When reviewing tickets in Apache JIRA, the following items should be covered as part of the review process:</p>
<p><strong>General</strong></p>
<blockquote>
<div><ul class="simple">
<li><p>Does it conform to the <a class="reference internal" href="code_style.html"><span class="doc">Code Style</span></a> guidelines?</p></li>
<li><p>Is there any redundant or duplicate code?</p></li>
<li><p>Is the code as modular as possible?</p></li>
<li><p>Can any singletons be avoided?</p></li>
<li><p>Can any of the code be replaced with library functions?</p></li>
<li><p>Are units of measurement used in the code consistent, both internally and with the rest of the ecosystem?</p></li>
</ul>
</div></blockquote>
<p><strong>Error-Handling</strong></p>
<blockquote>
<div><ul class="simple">
<li><p>Are all data inputs and outputs checked (for the correct type, length, format, and range) and encoded?</p></li>
<li><p>Where third-party utilities are used, are returning errors being caught?</p></li>
<li><p>Are invalid parameter values handled?</p></li>
<li><p>Are any Throwable/Exceptions passed to the JVMStabilityInspector?</p></li>
<li><p>Are errors well-documented? Does the error message tell the user how to proceed?</p></li>
<li><p>Do exceptions propagate to the appropriate level in the code?</p></li>
</ul>
</div></blockquote>
<p><strong>Documentation</strong></p>
<blockquote>
<div><ul class="simple">
<li><p>Do comments exist and describe the intent of the code (the “why”, not the “how”)?</p></li>
<li><p>Are javadocs added where appropriate?</p></li>
<li><p>Is any unusual behavior or edge-case handling described?</p></li>
<li><p>Are data structures and units of measurement explained?</p></li>
<li><p>Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’?</p></li>
<li><p>Does the code self-document via clear naming, abstractions, and flow control?</p></li>
<li><p>Have NEWS.txt, the cql3 docs, and the native protocol spec been updated if needed?</p></li>
<li><p>Is the ticket tagged with “client-impacting” and “doc-impacting”, where appropriate?</p></li>
<li><p>Has lib/licences been updated for third-party libs? Are they Apache License compatible?</p></li>
<li><p>Is the Component on the JIRA ticket set appropriately?</p></li>
</ul>
</div></blockquote>
<p><strong>Testing</strong></p>
<blockquote>
<div><ul class="simple">
<li><p>Is the code testable? i.e. don’t add too many or hide dependencies, unable to initialize objects, test frameworks can use methods etc.</p></li>
<li><p>Do tests exist and are they comprehensive?</p></li>
<li><p>Do unit tests actually test that the code is performing the intended functionality?</p></li>
<li><p>Could any test code use common functionality (e.g. ccm, dtest, or CqlTester methods) or abstract it there for reuse?</p></li>
<li><p>If the code may be affected by multi-node clusters, are there dtests?</p></li>
<li><p>If the code may take a long time to test properly, are there CVH tests?</p></li>
<li><p>Is the test passing on CI for all affected branches (up to trunk, if applicable)? Are there any regressions?</p></li>
<li><p>If patch affects read/write path, did we test for performance regressions w/multiple workloads?</p></li>
<li><p>If adding a new feature, were tests added and performed confirming it meets the expected SLA/use-case requirements for the feature?</p></li>
</ul>
</div></blockquote>
<p><strong>Logging</strong></p>
<blockquote>
<div><ul class="simple">
<li><p>Are logging statements logged at the correct level?</p></li>
<li><p>Are there logs in the critical path that could affect performance?</p></li>
<li><p>Is there any log that could be added to communicate status or troubleshoot potential problems in this feature?</p></li>
<li><p>Can any unnecessary logging statement be removed?</p></li>
</ul>
</div></blockquote>
</div>


           </div>
           
          </div>
          <footer>
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
        <a href="how_to_commit.html" class="btn btn-neutral float-right" title="How-to Commit" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
        <a href="license_compliance.html" class="btn btn-neutral float-left" title="License Compliance" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2020, The Apache Cassandra team.

    </p>
  </div>
    
    
    
    Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>