<!DOCTYPE html>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-  2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<html lang="en">
  <head>
    <meta charset="utf-8"/>
    <title>Contributing to Apache Shiro | Apache Shiro</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="keywords" content='documentation,overview,features'>
    <meta name="generator" content="JBake">
    <meta name="google-site-verification" content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
    <meta name="google-site-verification" content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
    <meta name="google-site-verification" content="gBTYOG8lMfNb_jrWrH3kFbudpEs_WrAJ2lb2-zLRaso"/>
    <meta name="msvalidate.01" content="0B57EB46CBFAD8FD45008D2DB6B6C68C">

    <meta property="og:title" content="Contributing to Apache Shiro | Apache Shiro"/>
    <meta property="og:type" content="article"/>
      <meta name="twitter:card" content="summary" />
    <meta name="twitter:site" content="@ApacheShiro" />
    <meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
    <meta property="article:tag" content='documentation'/>
    <meta property="article:tag" content='overview'/>
    <meta property="article:tag" content='features'/>
    <meta property="og:locale" content="en_US" />
    <meta property="og:url" content='https://shiro.apache.org/how-to-contribute.html'/>
    <meta property="og:image" content='images/shiro-featured-image.png'/>
    <meta property="og:image:width" content='1200'/>
    <meta property="og:image:height" content='628'/>
    <meta property="og:site_name" content="Apache Shiro"/>

    <!-- Le styles -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="bootstrap-icons-1.5.0/bootstrap-icons.css" rel="stylesheet">
    <link href="css/asciidoctor.css" rel="stylesheet">
    <link href="css/base.css" rel="stylesheet">
    <link href="highlight.js-11.2.0/styles/default.min.css" rel="stylesheet">
    <link href="css/gh-pages/gh-fork-ribbon.css" rel="stylesheet"/>

    <!-- Fav and touch icons -->
    <!--<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
    <link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">-->
    <link rel="shortcut icon" href="favicon.ico">

    <!-- Matomo -->
    <script>
        var _paq = window._paq = window._paq || [];
        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
        _paq.push(['disableCookies']);
        _paq.push(['trackPageView']);
        _paq.push(['enableLinkTracking']);
        (function() {
            var u="//matomo.privacy.apache.org/";
            _paq.push(['setTrackerUrl', u+'matomo.php']);
            _paq.push(['setSiteId', '2']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Matomo Code -->
  </head>
  <body>
    <div id="top-bar"></div>
    <a class="github-fork-ribbon right-top" href="https://github.com/apache/shiro" title="Fork me on GitHub">Fork me on GitHub</a>

    <div id="wrap">

      <div class="masthead">
        <p class="lead">
          <a href="index.html"><img src="images/apache-shiro-logo.png" style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;" alt="Apache Shiro Logo"></a>
          <span class="tagline">Simple. Java. Security.</span>
          <a class="pull-right" href="https://www.apache.org/events/current-event.html">
            <img style="padding-top: 8px" src="https://www.apache.org/events/current-event-125x125.png" alt="Apache Software Foundation Event Banner"/>
          </a>
        </p>
      </div>

	<!-- Fixed navbar -->
    <nav class="navbar navbar-expand-lg navbar-light bg-light shadow-sm mb-4">
      <div class="container-fluid">
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>

        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav me-auto mb-2 mb-lg-0">
            <li class="nav-item">
              <a class="nav-link" href="get-started.html">Get Started</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="documentation.html">Docs</a>
            </li>

            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-webapps" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                Web Apps
              </a>
              <ul class="dropdown-menu" aria-labelledby="navbarDropdown-webapps">
                <li><a class="dropdown-item" href="web.html">General</a></li>
                <li><a class="dropdown-item" href="jaxrs.html">JAX-RS</a></li>
                <li><a class="dropdown-item" href="jakarta-ee.html">Jakarta EE</a></li>
                <li><hr class="dropdown-divider"></li>
                <li><a class="dropdown-item" href="web-features.html">Features</a></li>
              </ul>
            </li>

            <li><a class="nav-link" href="features.html">Features</a></li>

            <!-- integrations -->
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-integrations" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                Integrations
              </a>
              <ul class="dropdown-menu" aria-labelledby="navbarDropdown-integrations">
                <li><a class="dropdown-item" href="spring-boot.html">Spring</a></li>
                <li><a class="dropdown-item" href="guice.html">Guice</a></li>
                <li><hr class="dropdown-divider"></li>
                <li><a class="dropdown-item" href="integration.html">Third-Party Integrations</a></li>
              </ul>
            </li>

            <!-- Community -->
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-community" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                Community
              </a>
              <ul class="dropdown-menu" aria-labelledby="navbarDropdown-community">
                <li><a class="dropdown-item" href="forums.html">Community Forums</a></li>
                <li><a class="dropdown-item" href="mailing-lists.html">Mailing Lists</a></li>
                <li><a class="dropdown-item" href="articles.html">Articles</a></li>
                <li><a class="dropdown-item" href="news.html">News</a></li>
                <li><a class="dropdown-item" href="events.html">Events</a></li>
                <li><hr class="dropdown-divider"></li>
                <li><a class="dropdown-item" href="community.html">More</a></li>
              </ul>
            </li>

            <!-- About -->
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-about" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                About
              </a>
              <ul class="dropdown-menu" aria-labelledby="navbarDropdown-about">
                <li><a class="dropdown-item" href="about.html">About</a></li>
                <li><a class="dropdown-item" href="privacy-policy.html">Privacy Policy</a></li>
                <li><a class="dropdown-item" href="security-reports.html">Vulnerability Reports</a></li>
              </ul>
            </li>
          </ul>

          <ul class="d-flex justify-content-end navbar-nav mb-2 mb-lg-0">
            <!-- The ASF -->
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-asf" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                Apache Software Foundation
              </a>
              <ul class="dropdown-menu" aria-labelledby="navbarDropdown-asf">
                <li><a class="dropdown-item" href="https://www.apache.org/">Apache Homepage</a></li>
                <li><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li>
                <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>

	<div class="page-header">
		<h1>Contributing to Apache Shiro</h1>
	</div>


  <div class="admonitionblock tip">
    <table>
      <tbody>
        <tr>
          <td class="icon">
            <div class="title">Handy Hint</div>
          </td>
          <td class="content">
            <div class="title">Shiro v1 version notice</div>
            <div class="paragraph">
              <p>As of 2024-03-01, Shiro v1 will soon be superseded by v2.<p>
            </div>
          </td>
        </tr>
      </tbody>
    </table>
  </div>

<div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#introduction">Introduction</a></li>
<li><a href="#help_wanted">Help Wanted</a></li>
<li><a href="#procedure_for_reporting_bugs_and_issues_and_enhancement_suggestions">Procedure for Reporting Bugs and Issues and Enhancement Suggestions</a></li>
<li><a href="#procedure_for_raising_development_issues">Procedure for Raising Development Issues</a>
<ul class="sectlevel2">
<li><a href="#mailing_list">Mailing List</a></li>
<li><a href="#issue_tracker">Issue Tracker</a></li>
<li><a href="#submitting_a_patch_through_github">Submitting a Patch Through GitHub</a></li>
</ul>
</li>
<li><a href="#git_usage">Git Usage</a>
<ul class="sectlevel2">
<li><a href="#getting_started_with_development">Getting Started with Development</a></li>
<li><a href="#getting_started_with_git">Getting Started with Git</a></li>
<li><a href="#review">Review</a></li>
</ul>
</li>
<li><a href="#git_committers">Git Committers</a></li>
<li><a href="#contributing_as_a_non_committer">Contributing as a Non-Committer</a></li>
<li><a href="#contribution_notes_and_tips">Contribution Notes and Tips</a>
<ul class="sectlevel2">
<li><a href="#links">Links</a></li>
<li><a href="#emails">Emails</a></li>
</ul>
</li>
</ul>
</div>
<div class="sect1">
<h2 id="introduction">Introduction</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Apache Shiro is an <a href="https://opensource.org/">Open Source</a> software security framework that performs authentication, authorization, cryptography and session management. The Shiro Project is a volunteer project released under a <a href="license.html">liberal license</a>. Anyone can participate and volunteer. No need to be an experienced developer or have great visions. Roll up your sleeves and come try, help is always welcome, and your input will be appreciated!</p>
</div>
<div class="paragraph">
<p>There are many ways how to contribute to this project, you can participate directly by:
* coding
* documenting
* answering questions
* proposing ideas
* reporting bugs
* suggesting bug-fixes
* etc.</p>
</div>
<div class="paragraph">
<p>Or you can participate with resource donations:
* staff time
* conference presentations
* publicity
* software
* general hardware/money <a href="https://www.apache.org/foundation/thanks.html">donations</a> via the <a href="https://www.apache.org">Apache Software Foundation</a></p>
</div>
<div class="paragraph">
<p>You can get your local working copy of the <a href="download.html">latest and greatest code</a> by following the directions in <a href="download.html">Download</a> page. Review the To Do list in the <a href="https://github.com/apache/shiro/issues">issue tracker</a> and then choose a task that interests you.</p>
</div>
<div class="paragraph">
<p>Perhaps you have noticed something that needs patching or have a new feature to contribute. Make the changes, do the testing, generate a patch, and discuss on the <a href="https://shiro.apache.org/mailing-lists.html">dev mailing list</a>. The process is easy and explained below. Subscribe to the mailing list!</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="help_wanted">Help Wanted</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can be a huge help by providing extra assistance in any of the following areas:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Assisting to improve documentation and the website.</p>
</li>
<li>
<p>Testing Shiro on various configurations and reporting back, especially Shiro&#8217;s less-frequently-used features.</p>
</li>
<li>
<p>New samples for the 'shiro-sample' to concisely describe and demonstrate features. Such samples can also enable automated testing.</p>
</li>
<li>
<p>Debugging - producing reproducible test cases and/or finding causes of bugs. Most bugs are <a href="#procedure_for_raising_development_issues">recorded as issues</a>.</p>
</li>
<li>
<p>Providing new use-cases and requirements.</p>
<div class="ulist">
<ul>
<li>
<p>If you think that Shiro does not quite meet your needs then tell us about it on the mailing list.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Specifying, analyzing or designing new features - and beyond.</p>
<div class="ulist">
<ul>
<li>
<p>If you wish to get further involved with this, please join the <a href="https://shiro.apache.org/mailing-lists.html"><code>shiro-dev</code> mailing list</a>, install and try out Shiro and read some of the <a href="https://shiro.apache.org/mailing-lists.html">mail archives</a>.</p>
<div class="ulist">
<ul>
<li>
<p>Don&#8217;t just say "it should have XYZ" without reading anything first - because chances are, somebody has already thought of that feature.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>Packaging easy-to-install packages (such as Red Hat Package Managers (RPM)) for the myriad of possible configurations out there.</p>
<div class="ulist">
<ul>
<li>
<p>The project does not maintain anything but the basic .zip and .tar.gz packages, but anyone is welcome to build their own specific packages and announce those on the mailing list.</p>
</li>
</ul>
</div>
</li>
<li>
<p>… and one more thing - don&#8217;t forget to tell everyone, how great Shiro is! The more people that know about and start to use Shiro, the larger the pool of potential contributors will be.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="procedure_for_reporting_bugs_and_issues_and_enhancement_suggestions">Procedure for Reporting Bugs and Issues and Enhancement Suggestions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If you think that you have found a bug, or you have a suggestion for improvement, then please discuss it on one of the <a href="https://shiro.apache.org/mailing-lists.html">mailing lists</a>. However, please check our <a href="https://github.com/apache/shiro/issues">issue tracker</a> first as it may be already reported.</p>
</div>
<div class="paragraph">
<p>The <a href="https://github.com/apache/shiro/issues">Apache Shiro Issue Tracker</a> collates our known issues. Obviously not every issue is listed there. Some issues have been discussed on the mailing list but do not yet have an issue recorded.</p>
</div>
<div class="paragraph">
<p>The Roadmap is the best way to get an overview. The Unscheduled list also needs regular review, and committers will schedule some of those for the next release.</p>
</div>
<div class="paragraph">
<p>When creating a new issue, please provide a concise Summary Title and a short Description. Add further information as Comments and include links to the mail archives. The normal procedure is to discuss the issue on the mailing list and then add relevant notes to the issue tracker, otherwise it becomes cluttered.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="procedure_for_raising_development_issues">Procedure for Raising Development Issues</h2>
<div class="sectionbody">
<div class="paragraph">
<p>There are two methods for discussing development and submitting patches. So that everyone can be productive, it is important to know which method is appropriate for a certain situation and how to go about it without confusion.</p>
</div>
<div class="sect2">
<h3 id="mailing_list">Mailing List</h3>
<div class="paragraph">
<p>Research your topic thoroughly before beginning to discuss a new development issue on the <a href="https://shiro.apache.org/mailing-lists.html">mailing list</a>. Search and browse through the email archives - your issue may have been discussed before. Prepare your post clearly and concisely.</p>
</div>
<div class="paragraph">
<p>Most issues will be discovered, resolved, and then patched quickly via the developer mailing list. Larger issues, and ones that are not yet fully understood or are hard to solve, are destined for the issue tracker.</p>
</div>
</div>
<div class="sect2">
<h3 id="issue_tracker">Issue Tracker</h3>
<div class="paragraph">
<p>Experienced developers use the <a href="https://github.com/apache/shiro/issues">issue tracker</a> directly, as they are very sure when they have found a bug and when not. Less experienced users should first discuss it on the user or developer mailing list (as appropriate). Impatient people always enter everything into the issue tracker without caring if it is a bug of Shiro, or their own installation/configuration mistake - please do not do this.</p>
</div>
<div class="paragraph">
<p>Discuss an issue on the developers mailing list first to work out any details. After it is confirmed to be worthwhile, and you are clear about it, then submit the bug description or patch via Bug Tracking.</p>
</div>
<div class="paragraph">
<p>Perhaps you do not get any answer on your first reply, so just post it again until you get one. But please not every hour - allow a few days for the list to deal with it. Bear in mind that other countries will have holidays at different times to your country and that they are in different time zones. You might also consider rewriting your initial posting. It may have not been clear to the readers on the mailing list.</p>
</div>
</div>
<div class="sect2">
<h3 id="submitting_a_patch_through_github">Submitting a Patch Through GitHub</h3>
<div class="paragraph">
<p>While we encourage you to submit your contribution through GitHub pull requests, you can also attach a patch in a GitHub issue. For the purpose of these instructions, we&#8217;ll assume that you already have a system with Git and have found a bug to fix or have a feature that you&#8217;d like to submit, and you&#8217;re willing to contribute that code or documentation under the Apache License 2.0.</p>
</div>
<div class="paragraph">
<p>Further, if you&#8217;re fixing a bug, we&#8217;ll assume that you&#8217;ve either filed a bug report (where you will attach your patch) or are submitting a fix for a known bug. If you find a bug and would like to fix it, that&#8217;s awesome! Please be sure to file the bug too, though.</p>
</div>
<div class="paragraph">
<p>If you want to add a feature, you should bring it up for discussion on the <a href="mailto:&#100;e&#118;&#x40;&#x73;&#x68;&#x69;&#114;&#x6f;&#x2e;a&#112;&#x61;&#99;h&#101;&#46;&#111;r&#103;">&#100;e&#118;&#x40;&#x73;&#x68;&#x69;&#114;&#x6f;&#x2e;a&#112;&#x61;&#99;h&#101;&#46;&#111;r&#103;</a> mailing list before implementing it. This ensures that it meshes with the plans that other contributors have for Apache Shiro, and that you&#8217;re not doing redundant work. Other developers may also have ideas for the feature or suggestions that will help you land the feature without having to re-do the work. More information about our mailing lists can be found here.</p>
</div>
<div class="paragraph">
<p>In short, communication is a vital part of making a contribution to an Apache project.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="git_usage">Git Usage</h2>
<div class="sectionbody">
<div class="paragraph">
<p>An overview of how to use Git to participate in Shiro development. Beginners, don&#8217;t be afraid - you cannot accidentally destroy the actual code repository, because you are working with a local copy as an anonymous user. Therefore, you do not have the system permissions to change anything. You can only update your local repository and compare your revisions with the real repository. The <a href="download.html">Download Shiro</a> page explains how to check out the code base and build your local copy.</p>
</div>
<div class="sect2">
<h3 id="getting_started_with_development">Getting Started with Development</h3>
<div class="paragraph">
<p>Go to <a href="https://github.com/apache/shiro">GitHub</a> and fork the project by pressing the Fork button. Fork makes a copy of an existing repository, and you can start doing new development on your copy.</p>
</div>
</div>
<div class="sect2">
<h3 id="getting_started_with_git">Getting Started with Git</h3>
<div class="paragraph">
<p>Add your name and email to your <code>~/.gitconfig</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ git config --global user.name "Your Name"
$ git config --global user.email you@domain.com</code></pre>
</div>
</div>
<div class="paragraph">
<p>Obtain a copy of the Shiro source code:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ git clone https://gitbox.apache.org/repos/asf/shiro.git</code></pre>
</div>
</div>
<div class="paragraph">
<p>Make sure you&#8217;re working with the most recent version. Do a <code>git pull</code> if you cloned the source more than a few hours ago.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ git checkout -b mybranch</code></pre>
</div>
</div>
<div class="paragraph">
<p>This does two things:
* creates the branch mybranch
* changes your working branch to mybranch.
Running <code>git branch</code> will show you which branch you&#8217;re working on, with an asterisk next to the active branch.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">[user@localhost shiro]$ git branch
main
* mybranch</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use <code>git add</code> to stage the changes. Commit the changes to your working branch:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">git commit -m "Insert a meaningful summary of changes here."</code></pre>
</div>
</div>
<div class="paragraph">
<p>Finally, you can create a patch and attach it to the GitHub issue:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">git format-patch main --stdout &gt; ~/patch-name.patch</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>When sending a patch, you usually do not need to worry about which Git branch it should be applied to. The maintainers of the repository will decide.</p>
</li>
<li>
<p>Every contribution is worthwhile! Even when the code isn&#8217;t perfect, or documentation has typos. Even if you got it wrong the first time around. Any contribution is a start of something special. Through your continued effort and the help of the community, your contribution will evolve.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="review">Review</h3>
<div class="paragraph">
<p>After submitting pull request, you should receive a response within a few days. If you receive no response within a week, please send a message to the shiro-dev mailing list (<a href="mailto:d&#x65;&#118;&#x40;&#x73;&#104;&#105;r&#x6f;&#x2e;a&#112;&#x61;&#x63;&#104;&#101;&#46;&#111;&#114;&#x67;&#x29;">d&#x65;&#118;&#x40;&#x73;&#104;&#105;r&#x6f;&#x2e;a&#112;&#x61;&#x63;&#104;&#101;&#46;&#111;&#114;&#x67;&#x29;</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="git_committers">Git Committers</h2>
<div class="sectionbody">
<div class="paragraph">
<p>After a developer has consistently provided contributions such as code, documentation and discussion, and demonstrated commitment, then the rest of the dev community may vote to grant this developer commit access to the Git repository. See the <a href="https://www.apache.org/dev/">ASF developers resources</a> and especially the <a href="https://www.apache.org/dev/version-control.html">Source code repositories</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="contributing_as_a_non_committer">Contributing as a Non-Committer</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Non-committers have to submit patches for review. Apache Shiro accepts GitHub pull requests.</p>
</div>
<div class="paragraph">
<p>Apache Shiro has a read-only mirror on GitHub that is kept in sync with the canonical Git repo maintained by the Apache Software Foundation. For detailed instructions see the <a href="https://github.com/apache/shiro/blob/master/CONTRIBUTING.md">GitHub Contribution Guidelines</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="contribution_notes_and_tips">Contribution Notes and Tips</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This is a collection of tips for contributing to the project in a manner that is productive for all parties.</p>
</div>
<div class="sect2">
<h3 id="links">Links</h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://www.apache.org/dev/contrib-email-tips.html">Tips for email contributors</a>.</p>
</li>
<li>
<p>Old questions and answers in <a href="https://shiro.apache.org/mailing-lists.html">archives</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>There are no dumb questions. But browse, search and learn from mailing list archives. Research your topic thoroughly before beginning to discuss a new development issue.</p>
</div>
</div>
<div class="sect2">
<h3 id="emails">Emails</h3>
<div class="ulist">
<ul>
<li>
<p>Start new threads with new Subject for new topics, rather than reusing the previous Subject line. Use a descriptive title!</p>
<div class="ulist">
<ul>
<li>
<p>Clearly explain your issue and write a concise email message.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Try to at least offer a partial solution and not just a problem statement.</p>
</li>
<li>
<p>Prepend your email subject line with a marker when that is appropriate, e.g.:</p>
<div class="ulist">
<ul>
<li>
<p>[Proposal]</p>
</li>
<li>
<p>[RT] (Random Thought which quickly blossom into research topics)</p>
</li>
<li>
<p>[STATUS] (development status of a certain facility)</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Reduce clutter, don&#8217;t send an e-mail which simply says "thanks". Keep all project-related discussion on the mailing list. It is better to utilize the wider audience, rather than to break off into private discussions. You never know who else will have the answer to your issues, and anyway other people are interested in the outcome.</p>
</div>
</div>
</div>
</div>
	<hr />

</div> 

    <div class="footer-padding"></div>

    <div class="container-fluid pt-2 border-top" id="custom-footer">
      <footer class="row justify-content-between align-items-center">
        <div class=" col-md-5">
          <div class="copyright-footer justify-content-start">
            <a href="https://www.apache.org/foundation/contributing.html">Donate to the ASF</a>&nbsp;|&nbsp;
            <a href="https://www.apache.org/licenses/LICENSE-2.0.html">License</a>&nbsp;
            <p class="text-muted">Copyright &copy; 2008-2024 The Apache Software Foundation</p>
          </div>
        </div>

        <div class="d-flex justify-content-center col-md-1">
          <a class="btn btn-social"><span class="social-icon social-twitter"><i class="bi bi-twitter"></i></span></a>
          <a class="btn btn-social"><span class="social-icon social-facebook"><i class="bi bi-facebook"></i></span></a>
          <a class="btn btn-social"><span class="social-icon social-linkedin"><i class="bi bi-linkedin"></i></span></a>
        </div>

        <div class="d-flex justify-content-end col-md-4" id="editThisPage">
          <input type="hidden" id="ghEditPage" value="https://github.com/apache/shiro-site/edit/main/src/site/content/how-to-contribute.adoc"/>
        </div>

        <div class="d-flex col-md-2 justify-content-end" style="position: relative">
          <div class="footer-shield"></div>
        </div>
      </footer>
    </div>


    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="js/bootstrap.min.js"></script>
    <script src="highlight.js-11.2.0/highlight.min.js"></script>
    <script src="js/shiro.js"></script>

    <script>
        docReady(
          addPageEditLink()
      );
    </script>
    <script>hljs.highlightAll();</script>

    </body>
</html>
