<!DOCTYPE html>
<html lang="en" class="js csstransforms3d">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta name="generator" content="Hugo 0.70.0" />
    <meta name="description" content="">
    <meta name="buildDate" content="2022-08-12 18:54:39">


    <link rel="shortcut icon" href="https://shardingsphere.apache.org/document/current/img/favicon.png" type="image/x-icon" />

    <title>New committer voting process :: ShardingSphere</title>
    
    
    <link href="https://shardingsphere.apache.org/community/css/nucleus.css?1660301679" rel="stylesheet">
    <link href="https://shardingsphere.apache.org/community/css/font-awesome.min.css?1660301679" rel="stylesheet">
    <link href="https://shardingsphere.apache.org/community/css/hybrid.css?1660301679" rel="stylesheet">
    <link href="https://shardingsphere.apache.org/community/css/featherlight.min.css?1660301679" rel="stylesheet">
    <link href="https://shardingsphere.apache.org/community/css/perfect-scrollbar.min.css?1660301679" rel="stylesheet">
    <link href="https://shardingsphere.apache.org/community/css/auto-complete.css?1660301679" rel="stylesheet">
    <link href="https://shardingsphere.apache.org/community/css/theme.css?1660301679" rel="stylesheet">
    <link href="https://shardingsphere.apache.org/community/css/hugo-theme.css?1660301679" rel="stylesheet">
    
      <link href="https://shardingsphere.apache.org/community/css/theme-white.css?1660301679" rel="stylesheet">
    

    <script src="https://shardingsphere.apache.org/community/js/jquery-2.x.min.js?1660301679"></script>
    
    <script>
      var _hmt = _hmt || [];
      (function() {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?d5a1dc8dcf63a64ee55b80de01c7fb1a";
        var s = document.getElementsByTagName("script")[0]; 
        s.parentNode.insertBefore(hm, s);
      })();   
    </script>
    
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-HPVGEN405S"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){window.dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'G-HPVGEN405S');
    </script>

    <style type="text/css">
      :root #header + #content > #left > #rlblock_left{ 
          display:none !important;
      }
      
      
      
    </style>
    

  </head>
  <body class="" data-url="/en/contribute/vote/">
    <div class="change-theme">
    <div class="wrap">
        
        <span data-item="retro">
            <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg>
            Retro
        </span>
        <span data-item="eyehelp">
            <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg>
            Eye care
        </span>
        <span data-item="haitian">
            <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg>
            Haitian
        </span>
        <span data-item="deep">
            <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg>
            Deep
        </span>
        <span data-item="dark">
            <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg>
            Dark
        </span>
        <span class="active">
            <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg>
            Default
        </span>
        
    </div>
</div>



    <header>
      <div class="wrap">
        <a href="https://shardingsphere.apache.org/"><img src="https://shardingsphere.apache.org/document/current/img/logo_v3.png" /></a>

        
        
        
        
        <section id="prefooter">
          
          <ul>
          
            <li>
              <a class="padding">
                <i class="fa fa-fw fa-language"></i>
              <div class="select-style">
                <select id="select-language" onchange="location = this.value;">
              
              
              
                  
                  
                      
                        
                        
<option id="en" value="/community/en/contribute/vote/" selected>English</option>
                        
                      
                  
                      
                  
              
                  
                  
                      
                  
                      
                        
                        
<option id="cn" value="/community/cn/contribute/vote/">简体中文</option>
                        
                      
                  
              
            </select>
            <svg t="1645437162166" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2449" width="32" height="32"><path d="M483.072 714.496l30.165333 30.208 415.957334-415.829333a42.837333 42.837333 0 0 0 0-60.288 42.538667 42.538667 0 0 0-60.330667-0.042667l-355.541333 355.413333-355.242667-355.413333a42.496 42.496 0 0 0-60.288 0 42.837333 42.837333 0 0 0-0.085333 60.330667l383.701333 383.872 1.706667 1.749333z" fill="#3D3D3D" p-id="2450"></path></svg>
            </div>
            </a>
            </li>
           
          
          
          </ul>
        </section>
        
      </div>
    </header>
    <div class="wrap">
    <nav id="sidebar" class="">

  
  
    <div id="header-wrapper">
      
      
          <div class="searchbox">
    <label for="search-by"><i class="fa fa-search"></i></label>
    <input data-search-input id="search-by" type="text" placeholder="Search...">
    <span data-search-clear=""><i class="fa fa-close"></i></span>
</div>

<script type="text/javascript" src="https://shardingsphere.apache.org/community/js/lunr.min.js?1660301679"></script>
<script type="text/javascript" src="https://shardingsphere.apache.org/community/js/auto-complete.js?1660301679"></script>
<script type="text/javascript">
    
        var baseurl = "\/en";
    
</script>
<script type="text/javascript" src="https://shardingsphere.apache.org/community/js/search.js?1660301679"></script>

      
    </div>
  
      <div class="highlightable">
      <div class="leftMenu">
      <ul class="topics">
  
          
            
            
  
  
   
    
      
      <li data-nav-id="/en/contribute/" title="Get Involved" class="dd-item 
          parent
          
          
          ">
              
        <a href="https://shardingsphere.apache.org/community/en/contribute/">
           <i class="collapse" style="display:inline; font-family:'courier';">
           
               <svg  class="icon icon-down" 
                style="display: inline-block;"
                viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"   width="20" height="20" fill="#777">
                <path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
              </svg>
              <svg  class="icon icon-right" 
                style="display: none;"
                viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"  width="20" height="20" fill="#777">
                <path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
              </svg>
            
            </i>
            <b>1. </b>Get Involved
            
        </a>
        
        
          <ul>
            
            
            
            
          
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/subscribe/" title="Subscribe Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/subscribe/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Subscribe Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/establish-project/" title="How to Set Up Your DEV Environment" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/establish-project/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          How to Set Up Your DEV Environment
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/contributor/" title="Contributor Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/contributor/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Contributor Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/committer/" title="Committer Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/committer/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Committer Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/code-conduct/" title="Code of Conduct" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/code-conduct/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Code of Conduct
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/document-conduct/" title="Document Specification" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/document-conduct/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Document Specification
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/issue-conduct/" title="Issue Conduct" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/issue-conduct/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Issue Conduct
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/document-contributor/" title="Documents Contributor Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/document-contributor/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Documents Contributor Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/release/" title="ShardingSphere Release Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/release/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          ShardingSphere Release Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/release-elasticjob/" title="ElasticJob Release Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/release-elasticjob/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          ElasticJob Release Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/release-elasticjob-ui/" title="ElasticJob-UI Release Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/release-elasticjob-ui/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          ElasticJob-UI Release Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/2fa/" title="2FA" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/2fa/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          2FA
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/icla/" title="Sign ICLA Guide" class="dd-item ">
          <a href="https://shardingsphere.apache.org/community/en/contribute/icla/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          Sign ICLA Guide
          
          </a>
      </li>
       
    
   
  
              
            
              
              
  
  
   
    
      
        <li data-nav-id="/en/contribute/vote/" title="New committer voting process" class="dd-item active">
          <a href="https://shardingsphere.apache.org/community/en/contribute/vote/">
            <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
          New committer voting process
          
          </a>
      </li>
       
    
   
  
              
            
          
          </ul>
                
      </li>
    
   
  
            
            
  
  
   
    
      
      <li data-nav-id="/en/powered-by/" title="Powered By ShardingSphere" class="dd-item 
          
          
          
          ">
              
        <a href="https://shardingsphere.apache.org/community/en/powered-by/">
           <i class="collapse" style="display:inline; font-family:'courier';">
           
              <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
            
            </i>
            <b>2. </b>Powered By ShardingSphere
            
        </a>
        
                
      </li>
    
   
  
            
            
  
  
   
    
      
      <li data-nav-id="/en/team/" title="Team" class="dd-item 
          
          
          
          ">
              
        <a href="https://shardingsphere.apache.org/community/en/team/">
           <i class="collapse" style="display:inline; font-family:'courier';">
           
              <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
            
            </i>
            <b>3. </b>Team
            
        </a>
        
                
      </li>
    
   
  
            
            
  
  
   
    
      
      <li data-nav-id="/en/security/" title="Security" class="dd-item 
          
          
          
          ">
              
        <a href="https://shardingsphere.apache.org/community/en/security/">
           <i class="collapse" style="display:inline; font-family:'courier';">
           
              <svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
            
            </i>
            <b>4. </b>Security
            
        </a>
        
                
      </li>
    
   
  
            
           
      </ul>
  
      
      
    </div>
      
  
      
      
      
        <a class="padding" href="https://shardingsphere.apache.org/pdf/shardingsphere_docs_en.pdf">
          Download PDF
      
      </a>
      
      <section id="footer">
        <p></p>

      </section>
    </div>
  </nav>
  
  
  
  
  
        <section id="body">
        <div id="overlay"></div>
        <div class="padding highlightable">
              
              <div>
                <div id="top-bar">
                
                  
                  
                  
                  <div id="top-github-link">
                    <a class="github-link" title='Edit this page' href="https://github.com/apache/shardingsphere/tree/master/docs/community/content/contribute/vote.en.md" target="blank">
                      <i class="fa fa-code-fork"></i>
                      <span id="top-github-link-text">Edit this page</span>
                    </a>
                  </div>
                  
                
                
                <div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
                    <span id="sidebar-toggle-span">
                        <a href="#" id="sidebar-toggle" data-sidebar-toggle="">
                          <i class="fa fa-bars"></i>
                        </a>
                    </span>
                  
                  <span class="links">
                    
          
          
            
            
          
          
            
            
          
          
            <a href='https://shardingsphere.apache.org/community/en/'>ShardingSphere</a> > <a href='https://shardingsphere.apache.org/community/en/contribute/'>Get Involved</a> > New committer voting process
          
         
          
         
          
           
                  </span>
                </div>
                
              </div>
            </div>
            

        
          <div id="chapter">
        
        <div id="body-inner">
          

        


<nav id="TableOfContents">
  <ul>
    <li><a href="#voting-process-of-becoming-a-new-committer">Voting process of becoming a new committer</a></li>
  </ul>
</nav>

<h2 id="voting-process-of-becoming-a-new-committer">Voting process of becoming a new committer</h2>
<p><strong>1. Start the discussion and vote in @private. Only current PMC member could nominate.</strong></p>
<pre><code>Example：

To：private@shardingsphere.apache.org

Title： [VOTE] New committer:(nominee)

Content：

Hi, everyone

This is ^a formal vote^ about inviting (nominee)as our new committer. 
He/She really made an effort to improve ShardingSphere Parser and fix many issues. 
The following links will direct you to his/her work.

https://github.com/apache/shardingsphere/pull/6319
https://github.com/apache/shardingsphere/pull/6293
https://github.com/apache/shardingsphere/pull/6259
https://github.com/apache/shardingsphere/pull/6211

[^ means these words are subject to change in different case]
</code></pre><p><strong>2. Wait 3*24 hours to get vote result from community committers.</strong></p>
<p><strong>3. PMC sends vote result over email.</strong></p>
<pre><code>Example：

To: private@shardingsphere.apache.org

Title: [RESULT] [VOTE] New committer: (nominee)

Content:

Hi all PMCs, 

I am glad to receive your votes, and the voting result is,
6   +1 votes, 0   +/-1 votes, 0   -1 votes

Therefore, I will send the invitation to (nominee).
</code></pre><p><strong>4. (For PMC nomination) Send email to <a href="mailto:board@apache.org">board@apache.org</a> and ensure the <a href="mailto:private@shardingsphere.apache.org">private@shardingsphere.apache.org</a> is copied.</strong></p>
<p>After email sent, wait for 72 hours and ensure that there is no objection.</p>
<pre><code>To: board@apache.org

cc: private@shardingsphere.apache.org

Title: [NOTICE] (nominee) for ShardingSphere PMC

The Apache ShardingSphere project proposes to invite (nominee) to join the PMC.
The vote result is available here:
(Vote link here. The link should be a permalink from the https://lists.apache.org/ mail archive.)

Thank you,
(initiator)
</code></pre><p>Reference: <a href="https://www.apache.org/dev/pmc.html#newpmc">https://www.apache.org/dev/pmc.html#newpmc</a></p>
<p><strong>5. If the vote passes, send an offer to become a committer with @private CC’ed.</strong></p>
<pre><code>To: (nominee email address)

cc: private@shardingsphere.apache.org

Title Invitation to become ShardingSphere committer: (nominee)

Content:

Hello (nominee),

The ShardingSphere Project Management Committee (PMC) hereby offers you committer privileges to the project. These privileges are offered on the understanding that you'll use them reasonably and with common sense. We like to work on trust
rather than unnecessary constraints.
Being a committer enables you to more easily make changes without needing to go through the patch submission process.
Being a committer does not require you to participate any more than you already do. It does tend to make one even more committed.  You will probably find that you spend more time here.
Of course, you can decline and instead remain as a contributor, participating as you do now.
A. This personal invitation is a chance for you to accept or decline in private.  Either way, please let us know in reply to the private@shardingsphere.apache.org 
address only.
B. If you accept, the next step is to register an iCLA:
    1. Details of the iCLA and the forms are found through this link: http://www.apache.org/licenses/#clas

    2. Instructions for its completion and return to the Secretary of the ASF are found at http://www.apache.org/licenses/#submitting

    3. When you transmit the completed iCLA, request to notify the Apache ShardingSphere and choose a unique Apache id. Look to see if your preferred id is already taken at http://people.apache.org/committer-index.html        
This will allow the Secretary to notify the PMC when your iCLA has been recorded.
When recording of your iCLA is noticed, you will receive a follow-up message with the next steps for establishing you as a committer.

Best wishes,
(PMC)

</code></pre><p><strong>6. Nominee replies the invitation, including content like accept the offer and give thanks.</strong></p>
<p><strong>7. PMC replies the email.</strong></p>
<pre><code>Hi (nominee),

Welcome! Here are the next steps. After that we will make an announcement to the shardingsphere-dev list.

You need to send a Contributor License Agreement to the ASF. Normally you would send an Individual CLA. If you also make contributions done in work time or using work resources then see the Corporate CLA. Ask us if you have any issues. 
http://www.apache.org/licenses/#clas

You need to choose a preferred ASF user name and alternatives. In order to ensure it is available you can view a list of taken ids at
http://people.apache.org/committer-index.html
Please notify us when you have submitted the CLA and by what means you did so. This will enable us to monitor its progress.

We will arrange for your Apache user account when the CLA has been recorded.

After that is done, please make follow-up replies to the shardingsphere-dev list. We generally discuss everything there and keep the private@shardingsphere.apache.org list for occasional matters which must be private.

The developer section of the website describes the roles and provides other resources:
http://www.apache.org/foundation/how-it-works.html
http://www.apache.org/dev/

The incubator also has some useful information for new committers in incubating projects:
http://incubator.apache.org/guides/committer.html

Just as before you became a committer, participation in any ASF community requires adherence to the ASF Code of Conduct:
https://www.apache.org/foundation/policies/conduct.html

Here is the guideline for all of the ShardingSphere committers:
https://shardingsphere.apache.org/community/en/contribute/committer/
</code></pre><p><strong>8. New committer signs iCLA, this step refers to <a href="https://shardingsphere.apache.org/community/en/contribute/icla/">Sign ICLA Guide</a>.</strong></p>
<p><strong>9. New committer waits for secretary to create a new account.</strong></p>
<p><strong>10. (For PMC nomination) PMC adds new PMC in <a href="https://whimsy.apache.org/roster/committee/shardingsphere">roster</a>.</strong></p>
<p><strong>11. New committer could setup an account, refers to <a href="https://gitbox.apache.org/setup/">apache setup</a>.</strong></p>
<p><strong>12. PMC announces new committer in the community.</strong></p>
<pre><code>To: dev@shardingsphere.apache.org

Title: [ANNOUNCE] New committer: (nominee)

Content:

Hi community,

The Project Management Committee (PMC) for Apache ShardingSphere
has invited (nominee) to become a committer and we are pleased to announce that he has accepted.

(nominee) is active in ShardingSphere community, hope see your further interactions with the community! 

Thanks for your contributions.
</code></pre><p><strong>13. New Committer updates <a href="https://shardingsphere.apache.org/community/en/team/">Team</a> list.</strong></p>


<footer class=" footline" >
	
</footer>



</div> 

</div> 


</div>

<div id="navigation" >






    
        
        
    
    

        
        
            
        
        

        
            


    
        
        
    
    

        
        
        

        
            


    
        
            
            
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
        
    
    

        
        
        

        


        


        
            


    
        
            
            
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        
            


    
        
    
    

        
        
        

        


        








    <a class="nav nav-prev" href="https://shardingsphere.apache.org/community/en/contribute/icla/" title="Sign ICLA Guide"> <i class="fa fa-long-arrow-left fa-lg"></i> Previous</a>




    <a class="nav nav-next" href="https://shardingsphere.apache.org/community/en/powered-by/" title="Powered By ShardingSphere" style="margin-right: 0px;">Next<i class="fa fa-long-arrow-right fa-lg"></i></a>


</div>

</section>
</div>
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>

<script src="https://shardingsphere.apache.org/community/js/clipboard.min.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.min.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.jquery.min.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/jquery.sticky.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/featherlight.min.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/html5shiv-printshiv.min.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/highlight.pack.js?1660301679"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="https://shardingsphere.apache.org/community/js/modernizr.custom.71422.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/learn.js?1660301679"></script>
<script src="https://shardingsphere.apache.org/community/js/hugo-learn.js?1660301679"></script>
<script>
try{

function log(fileName, category, locale){
    window._hmt.push(['_trackEvent', 'document', 'download', locale ? 'PDF_'+locale : fileName]);

    gtag('event', 'Downloads', {
        'event_category' : locale ? 'PDF' : category,
        'event_label' : locale ? locale+'.pdf' : fileName
    });
}

$('.padding[href*=shardingsphere]').on('click', function(){
    var locale = /cn/.test(location.pathname) ?'cn':'en';
    log('','', locale)
})

function getFileName(str){
    var strs = str.split('/');
    return strs[strs.length - 1]
}

$('a[href$="src.zip"]').on('click', function(){
    log(getFileName($(this).attr('href')), "SRC")
})

$('a[href$="zip.asc"]').on('click', function(){
    log(getFileName($(this).attr('href')), "ASC")
})

$('a[href$="zip.sha512"]').on('click', function(){
    log(getFileName($(this).attr('href')), "SHA512")
})

$('a[href$="tar.gz.asc"]').on('click', function(){
    log(getFileName($(this).attr('href')), "ASC")
})

$('a[href$="tar.gz.sha512"]').on('click', function(){
    log(getFileName($(this).attr('href')), "SHA512")
})

$('a[href$="tar.gz"]').on('click', function(){
    log(getFileName($(this).attr('href')), "TAR")
})

}catch(ex){}
</script>


</body>
</html>

