

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Contributing to Apache UserALE.PyQt5 &mdash; Apache UserALE.PyQt5 0.1.5 documentation</title>
  

  
  

  

  
  
    

  

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

  

  
    <link rel="top" title="Apache UserALE.PyQt5 0.1.5 documentation" href="index.html"/>
        <link rel="next" title="Changelog" href="changelog.html"/>
        <link rel="prev" title="Authors" href="authors.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

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

  <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 UserALE.PyQt5
          

          
          </a>

          
            
            
              <div class="version">
                0.1.5
              </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>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart Guide</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="userale.html">ALE Library</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="authors.html">Authors</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Contributing to Apache UserALE.PyQt5</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
</ul>

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

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

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="index.html">Apache UserALE.PyQt5</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">Docs</a> &raquo;</li>
      
    <li>Contributing to Apache UserALE.PyQt5</li>
      <li class="wy-breadcrumbs-aside">
        
          
        
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="contributing-to-apache-userale-pyqt5">
<span id="contributing"></span><h1>Contributing to Apache UserALE.PyQt5<a class="headerlink" href="#contributing-to-apache-userale-pyqt5" title="Permalink to this headline">¶</a></h1>
<p>Thank you for contributing to the Apache UserALE.PyQt5 project!</p>
<p>There are certain procedures that must be followed for all contributions. These
procedures are necessary to allow us to allocate resources for reviewing and
testing your contribution, as well as to communicate effectively with you during
the review process.</p>
<ol class="arabic">
<li><p class="first">Create an issue in JIRA</p>
<blockquote>
<div><p>All changes to Apache UserALE.PyQt5 must have a corresponding issue in JIRA so the
change can be properly tracked:</p>
<blockquote>
<div><p><a class="reference external" href="https://issues.apache.org/jira/browse/senssoft">https://issues.apache.org/jira/browse/senssoft</a></p>
</div></blockquote>
<p>If you do not already have an account on JIRA, you will need to create
before creating your new issue.</p>
</div></blockquote>
</li>
<li><p class="first">Make and test your changes locally</p>
<blockquote>
<div><p>The Apache UserALE.PyQt5 source is maintained in a git repository hosted on Apache:</p>
<blockquote>
<div><p><a class="reference external" href="https://git-wip-us.apache.org/repos/asf/incubator-senssoft-userale-pyqt5.git">https://git-wip-us.apache.org/repos/asf/incubator-senssoft-userale-pyqt5.git</a></p>
</div></blockquote>
<p>To make your changes, fork the repository and make commits
to a topic branch in your fork. Commits should be made in logical units
and must reference the JIRA issue number:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ git commit -m &quot;#SENSSOFT-123: #High-level message describing the changes.&quot;
</pre></div>
</div>
<p>Avoid commits which cover multiple, distinct goals that could (and should)
be handled separately.</p>
<p>If you do not already have an account on JIRA, you will need to create
one before making your changes.</p>
</div></blockquote>
</li>
<li><p class="first">Submit your changes via a pull request on Git</p>
<blockquote>
<div><p>Once your changes are ready, submit them by creating a pull request for
the corresponding topic branch you created when you began working on your
changes.</p>
<p>The Apache UserALE.PyQt5 team will then review your changes and, if they pass review,
your changes will be merged.</p>
</div></blockquote>
</li>
</ol>
</div>


           </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="changelog.html" class="btn btn-neutral float-right" title="Changelog" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="authors.html" class="btn btn-neutral" title="Authors" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2016, Apache Software License.

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/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">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'./',
            VERSION:'0.1.5',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="_static/jquery.js"></script>
      <script type="text/javascript" src="_static/underscore.js"></script>
      <script type="text/javascript" src="_static/doctools.js"></script>

  

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

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

</body>
</html>