blob: 2ee6a3c4bbf183e3148744736cff383c62d8aff0 [file] [log] [blame]
(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{114:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return a})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return u}));var o=r(3),i=r(7),n=(r(0),r(144)),a={title:"Guide for Apache Submarine Committers"},c={unversionedId:"community/HowToCommit",id:"community/HowToCommit",isDocsHomePage:!1,title:"Guide for Apache Submarine Committers",description:"\x3c!--",source:"@site/docs/community/HowToCommit.md",slug:"/community/HowToCommit",permalink:"/docs/community/HowToCommit",editUrl:"https://github.com/apache/submarine/edit/master/website/docs/community/HowToCommit.md",version:"current",sidebar:"docs",previous:{title:"Apache Submarine Community",permalink:"/docs/community/README"},next:{title:"How To Contribute to Submarine",permalink:"/docs/community/contributing"}},s=[{value:"New committers",id:"new-committers",children:[]},{value:"Review",id:"review",children:[]},{value:"Reject",id:"reject",children:[]},{value:"Commit individual patches",id:"commit-individual-patches",children:[]},{value:"Adding Contributors role",id:"adding-contributors-role",children:[]}],m={toc:s};function u(e){var t=e.components,r=Object(i.a)(e,["components"]);return Object(n.b)("wrapper",Object(o.a)({},m,r,{components:t,mdxType:"MDXLayout"}),Object(n.b)("p",null,"This page contains Hadoop Core-specific guidelines for committers."),Object(n.b)("h2",{id:"new-committers"},"New committers"),Object(n.b)("p",null,"New committers are encouraged to first read Apache's generic committer documentation:"),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("a",{parentName:"li",href:"http://www.apache.org/dev/new-committers-guide.html"},"Apache New Committer Guide")),Object(n.b)("li",{parentName:"ul"},Object(n.b)("a",{parentName:"li",href:"http://www.apache.org/dev/committers.html"},"Apache Committer FAQ"))),Object(n.b)("p",null,"The first act of a new core committer is typically to add their name to the\ncredits page. This requires changing the site source in\n",Object(n.b)("a",{parentName:"p",href:"https://github.com/apache/submarine-site/blob/master/community/member.md"},"https://github.com/apache/submarine-site/blob/master/community/member.md"),". Once done,\nupdate the Submarine website as described\n",Object(n.b)("a",{parentName:"p",href:"https://github.com/apache/submarine-site/blob/asf-site/README.md"},"here"),"\n(TLDR; don't forget to regenerate the site with hugo, and commit the generated\nresults, too)."),Object(n.b)("h2",{id:"review"},"Review"),Object(n.b)("p",null,"Submarine committers should, as often as possible, attempt to review patches\nsubmitted by others. Ideally every submitted patch will get reviewed by a\ncommitter within a few days. If a committer reviews a patch they've not\nauthored, and believe it to be of sufficient quality, then they can commit the\npatch, otherwise the patch should be cancelled with a clear explanation for why\nit was rejected."),Object(n.b)("p",null,"The list of submitted patches can be found in the GitHub\n",Object(n.b)("a",{parentName:"p",href:"https://github.com/apache/submarine/pulls"},"Pull Requests")," page.\nCommitters should scan the list from top-to-bottom,\nlooking for patches that they feel qualified to review and possibly commit."),Object(n.b)("p",null,"For non-trivial changes, it is best to get another committer to review & approve\nyour own patches before commit."),Object(n.b)("h2",{id:"reject"},"Reject"),Object(n.b)("p",null,"Patches should be rejected which do not adhere to the guidelines in\n",Object(n.b)("a",{parentName:"p",href:"/docs/community/contributing"},"Contribution Guidelines"),". Committers should always be\npolite to contributors and try to instruct and encourage them to contribute\nbetter patches. If a committer wishes to improve an unacceptable patch, then it\nshould first be rejected, and a new patch should be attached by the committer\nfor review."),Object(n.b)("h2",{id:"commit-individual-patches"},"Commit individual patches"),Object(n.b)("p",null,"Submarine uses git for source code version control. The writable repo is at -\n",Object(n.b)("a",{parentName:"p",href:"https://gitbox.apache.org/repos/asf/submarine.git"},"https://gitbox.apache.org/repos/asf/submarine.git")),Object(n.b)("p",null,"It is strongly recommended to use the cicd script to merge the PRs.\nSee the instructions at\n",Object(n.b)("a",{parentName:"p",href:"https://github.com/apache/submarine/tree/master/dev-support/cicd"},"https://github.com/apache/submarine/tree/master/dev-support/cicd")),Object(n.b)("h2",{id:"adding-contributors-role"},"Adding Contributors role"),Object(n.b)("p",null,"There are three roles (Administrators, Committers, Contributors) in the project."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},"Contributors who have Contributors role can become assignee of the issues in the project."),Object(n.b)("li",{parentName:"ul"},"Committers who have Committers role can set arbitrary roles in addition to Contributors role."),Object(n.b)("li",{parentName:"ul"},"Committers who have Administrators role can edit or delete all comments, or even delete issues in addition to Committers role.")),Object(n.b)("p",null,"How to set roles"),Object(n.b)("ol",null,Object(n.b)("li",{parentName:"ol"},"Login to ASF JIRA"),Object(n.b)("li",{parentName:"ol"},"Go to the project page (e.g. ",Object(n.b)("a",{parentName:"li",href:"https://issues.apache.org/jira/browse/SUBMARINE"},"https://issues.apache.org/jira/browse/SUBMARINE")," )"),Object(n.b)("li",{parentName:"ol"},'Hit "Administration" tab'),Object(n.b)("li",{parentName:"ol"},'Hit "Roles" tab in left side'),Object(n.b)("li",{parentName:"ol"},"Add Administrators/Committers/Contributors role")))}u.isMDXComponent=!0},144:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return d}));var o=r(0),i=r.n(o);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,i=function(e,t){if(null==e)return{};var r,o,i={},n=Object.keys(e);for(o=0;o<n.length;o++)r=n[o],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)r=n[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var m=i.a.createContext({}),u=function(e){var t=i.a.useContext(m),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return i.a.createElement(m.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},p=i.a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,a=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),l=u(r),p=o,d=l["".concat(a,".").concat(p)]||l[p]||b[p]||n;return r?i.a.createElement(d,c(c({ref:t},m),{},{components:r})):i.a.createElement(d,c({ref:t},m))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,a=new Array(n);a[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var m=2;m<n;m++)a[m]=r[m];return i.a.createElement.apply(null,a)}return i.a.createElement.apply(null,r)}p.displayName="MDXCreateElement"}}]);