The following steps should be followed when contributing work to this repository.
- Open a new issue in our repository.
- Fill out the details including the deliverable and grading scheme in the issue description.
- Track discussions such as design decisions and conversations in followup comments.
- Click "Submit new issue" at the bottom of the page
- You should complete your work in a separate branch and push it to the repository when it is ready for review.
- Click the "Pull requests" tab of our repository and clicke the "New pull request" button on the top right.
- Select the base and compare branches. For most cases the base branch should be "main" and the compare branch should be the branch you pushed.
- Edit the PR title with a short descriptive message. Note that this will be used as a commit message when merging the PR.
- Include a short description of what the main changes in the PR are and include any evaluation you did to verify it.
- Add reviewers in the "Reviewers" section on the right sidebar to notify people to look at your PR.
- Add a closing keyword to link an issue. For example "Fixes #<issue-number>". This should link the issue in the Development section once the PR is created
- Review a PR by clicking the "Files changed" tab of the PR.
- You can add review comments on specific lines by clicking the "+" button beside the line number.
- Submit your comments by clicking the "Review changes" button on the top right of the page.
- Resolving merge conflicts, comments and checks
- Merge conflicts can occur if the main branch is updated after the PR is opened and both the PR and the update in the main branch edits a file. This can be resolved in the PR UI or on your branch locally. These must be resolved before merging the PR.
- Review comments should be addressed with additional commits to the same branch as the PR so the change is visible to reviewers. Feel free to hide the comments once it has been resolved.
- If there are test failures (e.g. github checks), fix the tests with new commit to the same branch as the PR and push it so the checks can re-run.
- Once all checks have passed and all comments have been addressed and an approval is given, the PR can be closed.
- Assuming the PR is linked to an issue tracking the work item, the issue will automatically be closed once the PR is merged to main.
- I recommend choosing the "Squash and merge" option when merging the PR so that all commits are coalesced into one when merged to the main branch and keeps the commit history clean.