Note: Pull requests are welcome. For making major changes, please create an issue to first discuss the changes and then add them. Please make sure you add appropriate test cases for your major commits to the repo.
- Familiarize yourself with git commands
- Fork the group repository into your personal GitHub account
- Set up this project in IntellijIDEA
- Familiarize yourself with gradle and Travis CI
- Be well aware of the project scope and constraints
Main repository: Our group's repository (AY1920S1-CS2113T-F09-3/main)
Your fork: Your fork of the group's repository
Note: The steps provided here follow git CLI commands. If you are using Git GUIs like Source Tree, please make sure you follow steps that are equivalent to these commands.
- Clone your fork into your computer.
git clone 'your fork address'
- Add the main repository as upstream
git remote add upstream 'your main repo address'
Note: Dont push any commits directly to the the master of the main repository.
- Your work must address an open issue.
- Pull from upstream into your local repository's master.
git checkout master
git pull upstream master
- Create a branch from master and checkout to that branch
git checkout -b your-branch-name
- Add/delete/append the files that you want to. Remember to commit at regular intervals with proper commit messages.
- After finishing your work, merge your branch with upstream master.
git checkout your-branch-name
git fetch upstream master
git merge upstream/master
- Push your local branch to your fork
git push origin your-branch-name
- Go to GitHub. Locate your branch in your fork and create a pull request from it to the main repository master.
- Label your pull request appropriately.
- Your code would be automatically tested by Travis CI for errors.
- Add reviewers and wait for their reviews.
- If your pull request fails, dont close it. Just repeat steps 4 to 6.
- Else if you are pull request is approved, squash and merge. Again, write proper messages for the same.
- Tag your work done if required
git tag <extension>
- Push the tags to main repository.
git push upstream --tags
Adapted from Mohideen Imran Khan's CONTRIBUTING.md