| <!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="2023-06-08 18:34:29"> |
| |
| |
| <link rel="shortcut icon" href="https://shardingsphere.apache.org/document/current/img/favicon.png" type="image/x-icon" /> |
| |
| <title>Code of Conduct :: ShardingSphere</title> |
| |
| |
| <link href="https://shardingsphere.apache.org/community/css/nucleus.css?1686220469" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/font-awesome.min.css?1686220469" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/hybrid.css?1686220469" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/featherlight.min.css?1686220469" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/perfect-scrollbar.min.css?1686220469" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/auto-complete.css?1686220469" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/theme.css?1686220469" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/hugo-theme.css?1686220469" rel="stylesheet"> |
| |
| <link href="https://shardingsphere.apache.org/community/css/theme-white.css?1686220469" rel="stylesheet"> |
| |
| |
| <script src="https://shardingsphere.apache.org/community/js/jquery-2.x.min.js?1686220469"></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/involved/conduct/code/"> |
| <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/involved/conduct/code/" selected>English</option> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <option id="cn" value="/community/cn/involved/conduct/code/">简体中文</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?1686220469"></script> |
| <script type="text/javascript" src="https://shardingsphere.apache.org/community/js/auto-complete.js?1686220469"></script> |
| <script type="text/javascript"> |
| |
| var baseurl = "\/en"; |
| |
| </script> |
| <script type="text/javascript" src="https://shardingsphere.apache.org/community/js/search.js?1686220469"></script> |
| |
| |
| </div> |
| |
| <div class="highlightable"> |
| <div class="leftMenu"> |
| <ul class="topics"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/" title="Get Involved" class="dd-item |
| parent |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/"> |
| <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/involved/subscribe/" title="Subscribe Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/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/involved/contribute/" title="Contribute Guide" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/contribute/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| 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="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: 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="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> |
| Contribute Guide |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/contribute/contributor/" title="Contributor Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/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/involved/contribute/dev-env/" title="How to Set Up Your DEV Environment" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/contribute/dev-env/"> |
| <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/involved/contribute/document/" title="Documents Contribute Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/contribute/document/"> |
| <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 Contribute Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/conduct/" title="Contribution Conduct" class="dd-item |
| parent |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/"> |
| <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> |
| Contribution Conduct |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/conduct/issue/" title="Issue of Conduct" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/issue/"> |
| <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 of Conduct |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/conduct/code/" title="Code of Conduct" class="dd-item active"> |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/code/"> |
| <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/involved/conduct/document/" title="Document of Conduct" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/document/"> |
| <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 of Conduct |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/" title="Committer Guide" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| 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="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: 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="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> |
| Committer Guide |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/responsibilities/" title="Responsibilities & Routine" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/responsibilities/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Responsibilities & Routine |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/vote/" title="New committer voting process" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/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> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/icla/" title="Sign ICLA Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/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/involved/committer/2fa/" title="2FA" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/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> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/" title="Release Guide" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| 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="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: 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="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> |
| Release Guide |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/shardingsphere/" title="ShardingSphere Release Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/shardingsphere/"> |
| <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/involved/release/shardingsphere-on-cloud/" title="ShardingSphere on Cloud Release Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/shardingsphere-on-cloud/"> |
| <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 on Cloud Release Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/elasticjob/" title="ElasticJob Release Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/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/involved/release/elasticjob-ui/" title="ElasticJob UI Release Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/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> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </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/involved/conduct/code.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/involved/'>Get Involved</a> > <a href='https://shardingsphere.apache.org/community/en/involved/conduct/'>Contribution Conduct</a> > Code of Conduct |
| |
| |
| |
| |
| |
| |
| |
| |
| </span> |
| </div> |
| |
| </div> |
| </div> |
| |
| |
| |
| <div id="chapter"> |
| |
| <div id="body-inner"> |
| |
| |
| |
| |
| |
| <nav id="TableOfContents"> |
| <ul> |
| <li><a href="#development-guidelines">Development Guidelines</a></li> |
| <li><a href="#contributor-covenant-submitting-of-conduct">Contributor Covenant Submitting of Conduct</a></li> |
| <li><a href="#contributor-covenant-code-of-conduct">Contributor Covenant Code of Conduct</a></li> |
| <li><a href="#contributor-covenant-unit-test-of-conduct">Contributor Covenant Unit Test of Conduct</a></li> |
| <li><a href="#contributor-covenant-g4-of-conduct">Contributor Covenant G4 of Conduct</a></li> |
| <li><a href="#github-action-of-conduct">GitHub Action of Conduct</a></li> |
| </ul> |
| </nav> |
| |
| <p>The following code of conduct is based on full compliance with <a href="https://www.apache.org/foundation/policies/conduct.html">ASF CODE OF CONDUCT</a>.</p> |
| <h2 id="development-guidelines">Development Guidelines</h2> |
| <ul> |
| <li>Write codes with heart. Pursue clean, simplified and extremely elegant codes. Agree with concepts in <Refactoring: Improving the Design of Existing Code> and <Clean Code: A Handbook of Agile Software Craftsmanship>.</li> |
| <li>Be familiar with codes already had, to keep consistent with the style and use.</li> |
| <li>Highly reusable, no duplicated codes or configurations.</li> |
| <li>Delete codes out of use in time.</li> |
| </ul> |
| <h2 id="contributor-covenant-submitting-of-conduct">Contributor Covenant Submitting of Conduct</h2> |
| <ul> |
| <li>Conform to <code>Contributor Covenant Code of Conduct</code> below.</li> |
| <li>Make sure Maven build process success. Run <code>./mvnw clean install -B -T1C -Dmaven.javadoc.skip -Dmaven.jacoco.skip -e</code> command in shell to start Maven build process.</li> |
| <li>Make sure the test coverage rate is not lower than the master branch.</li> |
| <li>Careful consideration for each <code>pull request</code>; Small and frequent <code>pull request</code> with complete unit function is welcomed.</li> |
| <li>Through the uniform code style of spotless, execute the <code>mvn spotless:apply</code> formatted code.</li> |
| <li>If using IDEA, you can import the recommended <code>src/resources/code-style-idea.xml</code>.</li> |
| </ul> |
| <h2 id="contributor-covenant-code-of-conduct">Contributor Covenant Code of Conduct</h2> |
| <ul> |
| <li>Use linux line separators.</li> |
| <li>No meaningless blank lines. Please extract private methods to instead of blank lines if too long method body or different logic code fragments.</li> |
| <li>Use meaningful class, method and variable names, class and method name avoid to use abbreviation. Some variables could use abbreviation. |
| <ul> |
| <li>Variable <code>arguments</code> could abbreviate to <code>args</code>;</li> |
| <li>Variable <code>parameters</code> could abbreviate to <code>params</code>;</li> |
| <li>Variable <code>environment</code> could abbreviate to <code>env</code>;</li> |
| <li>Variable <code>properties</code> could abbreviate to <code>props</code>;</li> |
| <li>Variable <code>configuration</code> could abbreviate to <code>config</code>.</li> |
| </ul> |
| </li> |
| <li>Abbreviation composed less than 3 characters should be uppercase, more than 3 characters must use camel case naming rule. |
| <ul> |
| <li>Example for abbreviation composed less than 3 characters: SQL92Lexer, XMLTransfer, MySQLAdminExecutorCreator;</li> |
| <li>Example for abbreviation composed more than 3 characters: JdbcUrlAppender, YamlAgentConfigurationSwapper;</li> |
| <li>A variable composed of abbreviation should use lower camel case: mysqlAuthenticationMethod, sqlStatement, mysqlConfig.</li> |
| </ul> |
| </li> |
| <li>Except return an input parameter as result, returning variable should be named with <code>result</code>; Variables in the loop structure are named with <code>each</code>; Replace <code>each</code> with <code>entry</code> in map.</li> |
| <li>Exceptions when catch are named with <code>ex</code>; Exceptions when catch but do nothing are named with <code>ignored</code>.</li> |
| <li>Name property files with <code>Spinal Case</code>(a variant of <code>Snake Case</code> which uses hyphens <code>-</code> to separate words).</li> |
| <li>Split codes that need to add notes with it into small methods, which are explained with method names.</li> |
| <li>Have constants on the left and variable on the right in <code>=</code> and <code>equals</code> conditional expressions; Have variable on the left and constants on the right in <code>greater than</code> and <code>less than</code> conditional expressions.</li> |
| <li>Beside using same names as input parameters and global fields in assign statement, avoid using <code>this</code> modifier.</li> |
| <li>Design class as <code>final</code> class except abstract class for extend.</li> |
| <li>Make nested loop structures a new method.</li> |
| <li>Order of members definition and parameters should be consistent during classes and methods.</li> |
| <li>Use guard clauses in priority.</li> |
| <li>Minimize the access permission for classes and methods.</li> |
| <li>Private method should be just next to the method in which it is used; Multiple private methods should be in the same as the appearance order of original methods.</li> |
| <li>No <code>null</code> parameters or return values.</li> |
| <li>Replace constructors, getters, setter methods and log variable with lombok in priority.</li> |
| <li>Use <code>LinkedList</code> in priority. Use <code>ArrayList</code> for use index to get element only.</li> |
| <li>Use capacity based <code>Collection</code> such as <code>ArrayList</code>, <code>HashMap</code> must indicate initial capacity to avoid recalculate capacity.</li> |
| <li>Use English in all the logs and javadoc.</li> |
| <li>Include Javadoc, todo and fixme only in the comments.</li> |
| <li>Only <code>public</code> classes and methods need javadoc, the Javadoc for the user API and SPI needs to be written clearly and comprehensively, other methods, classes and override methods do not need javadoc.</li> |
| <li>Replace if else return and assign statement with ternary operator in priority.</li> |
| <li>Nested using ternary operator is forbidden.</li> |
| <li>Use forward semantics in priority for better understanding code logic in conditional expressions. For example: <code>if (null == param) {} else {}</code>.</li> |
| <li>Use concentrate <code>@SuppressWarnings("xxx")</code> instead of <code>@SuppressWarnings("all")</code>.</li> |
| <li>Avoid using Java Stream in hot methods, unless the performance of using Stream is better than using loop in that situation.</li> |
| <li>Utility class should be named in the form of <code>xxUtils</code>.</li> |
| </ul> |
| <h2 id="contributor-covenant-unit-test-of-conduct">Contributor Covenant Unit Test of Conduct</h2> |
| <ul> |
| <li>Test codes and production codes should follow the same kind of code of conduct.</li> |
| <li>Unit test should follow AIR (Automatic, Independent, Repeatable) principle. |
| <ul> |
| <li>Automatic: Unit test should run automatically, not interactively. Check test result manually and <code>System.out</code>, <code>log</code> are prohibited, use assert to check test results.</li> |
| <li>Independent: Call each other and sequence dependency during unit test cases are prohibited. Every test case should run independent.</li> |
| <li>Repeatable: Unit test case should not dependency external environment, they can run repeatable.</li> |
| </ul> |
| </li> |
| <li>Unit test should follow BCDE (Border, Correct, Design, Error) design principle. |
| <ul> |
| <li>Border: Border value test, test for loop border, special value and value sequence to get expect result.</li> |
| <li>Correct: Correct value test, test for correct value to get expect result.</li> |
| <li>Design: Design with production codes.</li> |
| <li>Error: Error value test, test for error input, exception to get expect result.</li> |
| </ul> |
| </li> |
| <li>Without particular reasons, test cases should be fully covered.</li> |
| <li>Test cases should be fully covered expect simply <code>getter /setter</code> methods, and declared static codes of SPI, such as: <code>getType / getOrder</code>.</li> |
| <li>Every test case need precised assertion, try not to use <code>not</code>, <code>containsString</code> to make assertions.</li> |
| <li>Environment preparation codes should be separate from test codes.</li> |
| <li>Only those that relate to <code>Mockito</code>, junit <code>Assertions</code>, hamcrest <code>CoreMatchers</code> and <code>MatcherAssert</code> can use static import.</li> |
| <li>Usage of assertion methods: for boolean type asserts, <code>assertTrue</code> and <code>assertFalse</code> should be used, <code>assertNull</code> and <code>assertNotNull</code> should be used to assert whether the assertion is null, and <code>assertThat</code> should be used for other scenarios.</li> |
| <li>Usage of assertion methods: |
| <ul> |
| <li>Use <code>assertTrue</code> and <code>assertFalse</code> for boolean value;</li> |
| <li>Use <code>assertNull</code> and <code>assertNotNull</code> for null value;</li> |
| <li>Use <code>assertThat</code> for other values.</li> |
| </ul> |
| </li> |
| <li>Actual values of test cases should be named <code>actualXXX</code>, expected values <code>expectedXXX</code>.</li> |
| <li>Class for test case and <code>@Test</code> annotation do not need javadoc.</li> |
| <li>Mockito <code>mockStatic</code> and <code>mockConstruction</code> methods must be used with try-with-resource or closed in the teardown method to avoid leaks.</li> |
| <li>Using <code>mock</code> should follow following specifications: |
| <ul> |
| <li>Using <code>mock</code> when unit tests need to connect to an environment;</li> |
| <li>Using <code>mock</code> when unit tests contain objects that are not easy to build, for example, objects that are more than two layers nested and unrelated to the test.</li> |
| <li>When mocking static methods or constructors, it is recommended to use the testing framework’s <code>AutoMockExtension</code> and <code>StaticMockSettings</code> to release resources automatically; If using Mockito’s <code>mockStatic</code> and <code>mockConstruction</code> methods, please use <code>try-with-resource</code> or close them in the cleanup method to avoid resource leaks.</li> |
| <li>When verifying only one invocation, there is no need to use <code>times(1)</code> parameter, please use the single-argument method of <code>verify</code>.</li> |
| </ul> |
| </li> |
| </ul> |
| <h2 id="contributor-covenant-g4-of-conduct">Contributor Covenant G4 of Conduct</h2> |
| <ul> |
| <li>Common Conduct |
| <ul> |
| <li>Every line cannot over <code>200</code> chars, guarantee every line have complete semantics.</li> |
| </ul> |
| </li> |
| <li>Lexer Conduct |
| <ul> |
| <li>Every rule should be in single line, no empty line between rules.</li> |
| <li>Rule of lexer name should capitalization. If name composite with more than one word, use <code>underline</code> to separate. Rule name of <code>DataType</code> and <code>Symbol</code> should end with <code>underline</code>. If rule name is conflicted with ANTLR’s keyword, should take an <code>underline</code> behind rule name.</li> |
| <li>For private rule in lexer should use <code>fragment</code>, rule with <code>fragment</code> should define behind of public rule which they served.</li> |
| <li>Common rule of lexer should put in file <code>Keyword.g4</code>, every database may have customized rule file by themselves. For example: <code>MySQLKeyword.g4</code>.</li> |
| </ul> |
| </li> |
| <li>Parser Conduct |
| <ul> |
| <li>After every rule finish, blank line should no indents.</li> |
| <li>No space before rule name definition. One space between <code>colon</code> and rule, <code>semicolon</code> should take a new line and keep indents (including blank lines) consistent with the previous one.</li> |
| <li>If a rule’s branch is over than <code>5</code>, every branch take a new line.</li> |
| <li>Rule name of parser should same with java variable’s camel case.</li> |
| <li>Define separate files for every SQL type, file name should consist of <code>database</code> + <code>SQL type</code> + <code>Statement</code>. For example: <code>MySQLDQLStatement.g4</code>.</li> |
| </ul> |
| </li> |
| </ul> |
| <h2 id="github-action-of-conduct">GitHub Action of Conduct</h2> |
| <ul> |
| <li>Workflow file name must end with <code>.yml</code>.</li> |
| <li>Workflow file name must consist with the lowercase of <code>triggerType-actionType</code>, for example: <code>nightly-check.yml</code>. Omit trigger type for pull_request, for example: <code>check.yml</code>.</li> |
| <li>Trigger type includes: pull_request (without prefix), nightly.</li> |
| <li>Action type includes: check, ci, e2e, build.</li> |
| <li><code>name</code> property in workflow file should be same with file name, Words separated by <code>-</code>, add space between <code>-</code> and words, first letter of every word should be capital, for example: <code>Nightly - Check</code>.</li> |
| <li><code>job</code> property in workflow should be unique in that workflow file.</li> |
| <li>When using <code>matrix</code> property, must add job parallelism limit to 5: <code>max-parallel: 5</code>.</li> |
| <li>Must set timeout for job, max timeout is 1 hour. For example: <code>timeout-minutes: 10</code>.</li> |
| </ul> |
| |
| |
| <footer class=" footline" > |
| |
| </footer> |
| |
| |
| |
| </div> |
| |
| </div> |
| |
| |
| </div> |
| |
| <div id="navigation" > |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <a class="nav nav-prev" href="https://shardingsphere.apache.org/community/en/involved/conduct/issue/" title="Issue of Conduct"> <i class="fa fa-long-arrow-left fa-lg"></i> Previous</a> |
| |
| |
| |
| |
| <a class="nav nav-next" href="https://shardingsphere.apache.org/community/en/involved/conduct/document/" title="Document of Conduct" 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?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.min.js?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.jquery.min.js?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/jquery.sticky.js?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/featherlight.min.js?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/html5shiv-printshiv.min.js?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/highlight.pack.js?1686220469"></script> |
| <script>hljs.initHighlightingOnLoad();</script> |
| <script src="https://shardingsphere.apache.org/community/js/modernizr.custom.71422.js?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/learn.js?1686220469"></script> |
| <script src="https://shardingsphere.apache.org/community/js/hugo-learn.js?1686220469"></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> |
| |