*Hi Folks,*
We have prepared the following workflow for Mnemonic code contribution, please feel free to comment on it, Thanks. ========================================== *1) Configure git tool if behind a firewall. (One time setup)* https://gist.github.com/evantoli/f8c23a37eb3558ab8765 *2) Fork the following Mnemonic project to your own Github account if not yet. (One time setup)* https://github.com/apache/mnemonic Please refer to the following web page for project forking https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/fork-a-repo *3) Clone the forked Mnemonic project from your own Github account. (One time setup)* https://docs.github.com/en/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/cloning-a-repository $ git clone [email protected]:[your account id]/mnemonic.git *4) Configure a remote upstream from Github for upstream sync. (One time setup)* https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/configuring-a-remote-for-a-fork $ git remote add upstream https://github.com/apache/mnemonic.git *5) Setting your commit email address and name for local Mnemonic repo. (One time setup)* https://docs.github.com/en/free-pro-team@latest/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address $ cd mnemonic $ git config user.email "[your apache id]@ <[email protected]>apache.org" $ git config user.name "[your name]" *6) Sync your forked Mnemonic project from upstream (On demand)* https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork $ git fetch upstream $ git checkout master $ git merge upstream/master Please keep the master branch untouched, otherwise it cannot keep it exactly synced. $ git push *7) Take over an interested issue/task by clicking the “Start Progress” button in the Apache issue web portal* Project issue portal: https://issues.apache.org/jira/projects/MNEMONIC/ e.g. https://issues.apache.org/jira/browse/MNEMONIC-548 *8) Create a new branch for your selected issue/task* Please do step “Sync your forked Mnemonic project from upstream” first. $ git checkout master $ git checkout -b issue-[issue id] e.g. $ git checkout -b issue-548 *9) Apply patch files if any (On demand)* $ git apply [patch file] *10) Fix/implement the selected issue/task on the specific branch* Please ensure you are working on the create branch, e.g. issue-548, using the following command to confirm it $ git status *11) Stage your new code or code changes before stopping work on it (On demand)* $ git add [your changed/new files] *12) Rebase your local works from upstream if it takes a long time. (On demand)* Please do step “Sync your forked Mnemonic project from upstream” first. $ git rebase upstream/master if any conflict occurred, please refer to the following way to resolve it. https://docs.github.com/en/free-pro-team@latest/github/using-git/resolving-merge-conflicts-after-a-git-rebase *13) Commit your bugfix or feature code once the issue/task got addressed* Stage all your changed/new files first, please refer to the following step “Stage your new code or code changes before stopping work on it” $ git commit -s -m “MNEMONIC-[issue id]” e.g. $ git commit -s -m “MNEMONIC-548” *14) Verify your code changes again* $ git diff HEAD^.. *15) Push your new branch and commit to your own github repo.* $ git push -u origin *16) Submit a PR* https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request Visit the Mnemonic repo. in your own Github account, you can see a message about the new/changed branch, you can submit the PR via click the link in the message. *17) Once PR got submitted, Please click “Resolve Issue” button in Apache issue web portal* https://confluence.atlassian.com/adminjiraserver/working-with-workflows-938847362.html *18) Normally, wait for 2-5 calendar days for reviewers to take comments on the PR.* *19) Address all comments as possible.* *20) Once the PR got verified by reviewers, Please click “Close Issue” button in Apache issue web portal* ==================== *Best Regards* Gary On behalf of Mnemonic community
