Project: ShardingSphere (App Definition and Development / Database)
File: contributor.en.md

+++ title = "Contributor Guide" weight = 1 chapter = true +++ You can report a bug, submit a new function enhancement suggestion, or submit a pull request directly. Before submitting an issue, please go through a comprehensive search to make sure the problem cannot be solved just by searching. Check the to make sure the problem is not repeated. a new issue and choose the type of issue. Define the issue with a clear and descriptive title. Fill in necessary information according to the template. Choose a label after issue created, for example: bug, enhancement, discussion. Please pay attention for your issue, you may need provide more information during discussion. Prepare repository Go to and fork repository to your account. Clone repository to local machine. ```shell git clone https://github.com/(yourgithubname)/shardingsphere.git ``` Add ShardingSphere remote repository. ```shell cd shardingsphere git remote add apache https://github.com/apache/shardingsphere.git git remote -v ``` Build and install all modules, it'll install modules into Maven local repository cache, and also generate Java class files of parser from ANTLR grammar `.g4` files to prevent from compile error of parser on IDE. ```shell cd shardingsphere ./mvnw clean install -DskipITs -DskipTests -Prelease ``` When you pull the latest code from ShardingSphere and create new branch later, you might get similar compile error of parser again, then you could run this command again. Choose Issue Please choose the issue to be edited. If it is a new issue discovered or a new function enhancement to offer, please create an issue and set the right label for it. After choosing the relevant issue, please reply with a deadline to indicate that you are working on it. Find a mentor from the and he/she will give you feedback about the design and the implementation of function in time. Create Branch Switch to forked master branch, update local branch, then create a new branch. ```shell git checkout master git fetch apache git rebase apache/master git push origin master # optional git checkout -b issueNo ``` Notice We will merge PR using squash, commit log will be different with upstream if you use old branch. Coding Please obey the during the process of development and finish the check before submitting the pull request. push code to your fork repo. ```shell git add modified-file-names git commit -m 'commit log' git push origin issueNo ``` Submit Pull Request Send a pull request to the master branch. The mentor will do code review before discussing some details (including the design, the implementation and the performance) with you. The request will be merged into the branch of current development version after the edit is well enough. At last, congratulations on being an official contributor of ShardingSphere Delete Branch You can delete the remote branch (origin/issueNo) and the local branch (issueNo) associated with the remote branch (origin/issueNo) after the mentor merged the pull request into the master branch of ShardingSphere. ```shell git checkout master git branch -d issueNo git remote prune origin # If you delete branch on GitHub PR page, else you could delete origin branch with following command git push origin --delete issueNo ``` Notice: Please note that in order to show your id in the contributor list, don't forget the configurations below: ```shell git config --global user.name "username" git config --global user.email "username@mail.com" ```